Compare commits

...

11 commits

Author SHA1 Message Date
ed bc24604a83 dl-button: skip folders (would give html) 2026-01-12 18:46:47 +00:00
ed 266489113a fix unlistc* for filevols 2026-01-12 18:06:05 +00:00
Toast d5a8a34bca
NixOS: misc module documentation improvements (#1194)
* nixos: use mkPackageOption instead of mkOption for the package option

This gets rid of a warning when trying to build a system with
documentation.nixos.includeAllModules enabled

* nixos: don't include package path in option descriptions

See https://github.com/9001/copyparty/pull/1193, this actually fixes the issue

* nixos: fix formatting of services.copyparty.volumes.<name>.access

List will now show up properly on the nixos manual!

* nixos: add or improve inline code blocks in option descriptions
2026-01-12 16:43:18 +01:00
Toast 9d223d6ca7
nixos: use mkPackageOption instead of mkOption (#1193)
This gets rid of a warning when trying to build a system with
documentation.nixos.includeAllModules enabled
2026-01-11 23:08:57 +00:00
ed caf831fc28 fix ipu nullmapping; closes #1191
regression added in v1.19.21 / 79e1078671
2026-01-11 17:10:16 +00:00
ed ae56f3bdae readme: rephrase -j0 advice 2026-01-11 16:52:19 +01:00
stackxp 25a8b96fd1
rcm: add rename, some fixes (#1184)
Signed-off-by: stackxp <170874486+stackxp@users.noreply.github.com>
2026-01-11 16:45:39 +01:00
ed 7357d46f43 http415 on failed transcode; closes #1179 2026-01-10 22:38:23 +00:00
ed 3aebfabd5c mtag: truncate stderr 2026-01-10 22:16:50 +00:00
ed 8914f0af70 docs: suggest modern ipa syntax (#1181) 2026-01-09 20:45:00 +00:00
ed a9ae6d5131 update pkgs to 1.20.1 2026-01-09 00:57:31 +00:00
32 changed files with 128 additions and 64 deletions

View file

@ -1730,7 +1730,7 @@ set upload rules using volflags, some examples:
* just to avoid additional complexity in up2k which is enough of a mess already * just to avoid additional complexity in up2k which is enough of a mess already
* `:c,lifetime=300` delete uploaded files when they become 5 minutes old * `:c,lifetime=300` delete uploaded files when they become 5 minutes old
you can also set transaction limits which apply per-IP and per-volume, but these assume `-j 1` (default) otherwise the limits will be off, for example `-j 4` would allow anywhere between 1x and 4x the limits you set depending on which processing node the client gets routed to you can also set transaction limits which apply per-IP and per-volume, but these assume `-j 1` (default) otherwise the limits will be messed up, for example `-j 4` would allow anywhere between 1x and 4x the limits you set depending on which processing node the client gets routed to
* `:c,maxn=250,3600` allows 250 files over 1 hour from each IP (tracked per-volume) * `:c,maxn=250,3600` allows 250 files over 1 hour from each IP (tracked per-volume)
* `:c,maxb=1g,300` allows 1 GiB total over 5 minutes from each IP (tracked per-volume) * `:c,maxb=1g,300` allows 1 GiB total over 5 minutes from each IP (tracked per-volume)
@ -2813,12 +2813,12 @@ below are some tweaks roughly ordered by usefulness:
* `--no-htp --hash-mt=0 --mtag-mt=1 --th-mt=1` minimizes the number of threads; can help in some eccentric environments (like the vscode debugger) * `--no-htp --hash-mt=0 --mtag-mt=1 --th-mt=1` minimizes the number of threads; can help in some eccentric environments (like the vscode debugger)
* when running on AlpineLinux or other musl-based distro, try mimalloc for higher performance (and twice as much RAM usage); `apk add mimalloc2` and run copyparty with env-var `LD_PRELOAD=/usr/lib/libmimalloc-secure.so.2` * when running on AlpineLinux or other musl-based distro, try mimalloc for higher performance (and twice as much RAM usage); `apk add mimalloc2` and run copyparty with env-var `LD_PRELOAD=/usr/lib/libmimalloc-secure.so.2`
* note that mimalloc requires special care when combined with prisonparty and/or bubbleparty/bubblewrap; you must give it access to `/proc` and `/sys` otherwise you'll encounter issues with FFmpeg (audio transcoding, thumbnails) * note that mimalloc requires special care when combined with prisonparty and/or bubbleparty/bubblewrap; you must give it access to `/proc` and `/sys` otherwise you'll encounter issues with FFmpeg (audio transcoding, thumbnails)
* `-j0` enables multiprocessing (actual multithreading), can reduce latency to `20+80/numCores` percent and generally improve performance in cpu-intensive workloads, for example: * `-j0` (usually *not* recommended) enables multiprocessing (actual multithreading), can reduce latency to `20+80/numCores` percent and generally improve performance in cpu-intensive workloads, for example:
* lots of connections (many users or heavy clients) * lots of connections (many users or heavy clients)
* simultaneous downloads and uploads saturating a 20gbps connection * simultaneous downloads and uploads saturating a 20gbps connection
* if `-e2d` is enabled, `-j2` gives 4x performance for directory listings; `-j4` gives 16x * if `-e2d` is enabled, `-j2` gives 4x performance for directory listings; `-j4` gives 16x
...however it also increases the server/filesystem/HDD load during uploads, and adds an overhead to internal communication, so it is usually a better idea to don't ...however it will probably *reduce* performance in most cases, since it also increases the server/filesystem/HDD load during uploads, and adds an overhead to internal communication, so keeping the default is generally best
* using [pypy](https://www.pypy.org/) instead of [cpython](https://www.python.org/) *can* be 70% faster for some workloads, but slower for many others * using [pypy](https://www.pypy.org/) instead of [cpython](https://www.python.org/) *can* be 70% faster for some workloads, but slower for many others
* and pypy can sometimes crash on startup with `-j0` (TODO make issue) * and pypy can sometimes crash on startup with `-j0` (TODO make issue)

View file

@ -69,11 +69,8 @@ in
options.services.copyparty = { options.services.copyparty = {
enable = mkEnableOption "web-based file manager"; enable = mkEnableOption "web-based file manager";
package = mkOption { package = mkPackageOption pkgs "copyparty" {
type = types.package; extraDescription = ''
default = pkgs.copyparty;
defaultText = "pkgs.copyparty";
description = ''
Package of the application to run, exposed for overriding purposes. Package of the application to run, exposed for overriding purposes.
''; '';
}; };
@ -82,7 +79,7 @@ in
type = types.bool; type = types.bool;
default = true; default = true;
description = '' description = ''
Make a shell script wrapper called 'copyparty-hash' with all options set here, Make a shell script wrapper called {command}`copyparty-hash` with all options set here,
that launches the hashing cli. that launches the hashing cli.
''; '';
}; };
@ -117,9 +114,9 @@ in
type = types.attrs; type = types.attrs;
description = '' description = ''
Global settings to apply. Global settings to apply.
Directly maps to values in the [global] section of the copyparty config. Directly maps to values in the `[global]` section of the copyparty config.
Cannot set "c" or "hist", those are set by this module. Cannot set "c" or "hist", those are set by this module.
See `${getExe cfg.package} --help` for more details. See {command}`copyparty --help` for more details.
''; '';
default = { default = {
i = "127.0.0.1"; i = "127.0.0.1";
@ -138,7 +135,7 @@ in
globalExtraConfig = mkOption { globalExtraConfig = mkOption {
type = types.str; type = types.str;
default = ""; default = "";
description = "Appended to the end of the [global] section verbatim. This is useful for flags which are used in a repeating manner (e.g. ipu: 255.255.255.1=user) which can't be repeated in the settings = {} attribute set."; description = "Appended to the end of the `[global]` section verbatim. This is useful for flags which are used in a repeating manner (e.g. `ipu: 255.255.255.1=user`) which can't be repeated in the settings = {} attribute set.";
}; };
accounts = mkOption { accounts = mkOption {
@ -201,21 +198,21 @@ in
Attribute list of permissions and the users to apply them to. Attribute list of permissions and the users to apply them to.
The key must be a string containing any combination of allowed permission: The key must be a string containing any combination of allowed permission:
"r" (read): list folder contents, download files * "r" (read): list folder contents, download files
"w" (write): upload files; need "r" to see the uploads * "w" (write): upload files; need "r" to see the uploads
"m" (move): move files and folders; need "w" at destination * "m" (move): move files and folders; need "w" at destination
"d" (delete): permanently delete files and folders * "d" (delete): permanently delete files and folders
"g" (get): download files, but cannot see folder contents * "g" (get): download files, but cannot see folder contents
"G" (upget): "get", but can see filekeys of their own uploads * "G" (upget): "get", but can see filekeys of their own uploads
"h" (html): "get", but folders return their index.html * "h" (html): "get", but folders return their index.html
"a" (admin): can see uploader IPs, config-reload * "a" (admin): can see uploader IPs, config-reload
For example: "rwmd" For example: "rwmd"
The value must be one of: The value must be one of:
an account name, defined in `accounts` * an account name, defined in `accounts`
a list of account names * a list of account names
"*", which means "any account" * "*", which means "any account"
''; '';
example = literalExpression '' example = literalExpression ''
{ {
@ -230,7 +227,7 @@ in
type = types.attrs; type = types.attrs;
description = '' description = ''
Attribute list of volume flags to apply. Attribute list of volume flags to apply.
See `${getExe cfg.package} --help-flags` for more details. See {command}`copyparty --help-flags` for more details.
''; '';
example = literalExpression '' example = literalExpression ''
{ {

View file

@ -3,7 +3,7 @@
# NOTE: You generally shouldn't use this PKGBUILD on Arch, as it is mainly for testing purposes. Install copyparty using pacman instead. # NOTE: You generally shouldn't use this PKGBUILD on Arch, as it is mainly for testing purposes. Install copyparty using pacman instead.
pkgname=copyparty pkgname=copyparty
pkgver="1.20.0" pkgver="1.20.1"
pkgrel=1 pkgrel=1
pkgdesc="File server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++" pkgdesc="File server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++"
arch=("any") arch=("any")
@ -24,7 +24,7 @@ optdepends=("ffmpeg: thumbnails for videos, images (slower) and audio, music tag
) )
source=("https://github.com/9001/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz") source=("https://github.com/9001/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz")
backup=("etc/${pkgname}/copyparty.conf" ) backup=("etc/${pkgname}/copyparty.conf" )
sha256sums=("a1fd3aab51f30435f07f1d128cf773262ee69a1554c9c32ea1e36d06438eb291") sha256sums=("4f513ca9e3d1c11a7bb4e1a8a925dda2449b9565e91f6ef7cbe10367fa4e2935")
build() { build() {
cd "${srcdir}/${pkgname}-${pkgver}/copyparty/web" cd "${srcdir}/${pkgname}-${pkgver}/copyparty/web"

View file

@ -2,7 +2,7 @@
pkgname=copyparty pkgname=copyparty
pkgver=1.20.0 pkgver=1.20.1
pkgrel=1 pkgrel=1
pkgdesc="File server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++" pkgdesc="File server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++"
arch=("any") arch=("any")
@ -21,7 +21,7 @@ optdepends=("ffmpeg: thumbnails for videos, images (slower) and audio, music tag
) )
source=("https://github.com/9001/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz") source=("https://github.com/9001/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz")
backup=("/etc/${pkgname}.d/init" ) backup=("/etc/${pkgname}.d/init" )
sha256sums=("a1fd3aab51f30435f07f1d128cf773262ee69a1554c9c32ea1e36d06438eb291") sha256sums=("4f513ca9e3d1c11a7bb4e1a8a925dda2449b9565e91f6ef7cbe10367fa4e2935")
build() { build() {
cd "${srcdir}/${pkgname}-${pkgver}/copyparty/web" cd "${srcdir}/${pkgname}-${pkgver}/copyparty/web"

View file

@ -1,5 +1,5 @@
{ {
"url": "https://github.com/9001/copyparty/releases/download/v1.20.0/copyparty-1.20.0.tar.gz", "url": "https://github.com/9001/copyparty/releases/download/v1.20.1/copyparty-1.20.1.tar.gz",
"version": "1.20.0", "version": "1.20.1",
"hash": "sha256-of06q1HzBDXwfx0SjPdzJi7mmhVUycMuoeNtBkOOspE=" "hash": "sha256-T1E8qePRwRp7tOGoqSXdokSblWXpH273y+EDZ/pOKTU="
} }

View file

@ -1829,7 +1829,7 @@ class AuthSrv(object):
if self.args.ipu and not self.args.have_idp_hdrs: if self.args.ipu and not self.args.have_idp_hdrs:
# syntax (CIDR=UNAME) is verified in load_ipu # syntax (CIDR=UNAME) is verified in load_ipu
zsl = [x.split("=", 1)[1] for x in self.args.ipu] zsl = [x.split("=", 1)[1] for x in self.args.ipu]
zsl = [x for x in zsl if x not in acct] zsl = [x for x in zsl if x and x not in acct]
if zsl: if zsl:
t = "ERROR: unknown users in ipu: %s" % (zsl,) t = "ERROR: unknown users in ipu: %s" % (zsl,)
self.log(t, 1) self.log(t, 1)

View file

@ -160,6 +160,7 @@ H_CONN_KEEPALIVE = "Connection: Keep-Alive"
H_CONN_CLOSE = "Connection: Close" H_CONN_CLOSE = "Connection: Close"
RSS_SORT = {"m": "mt", "u": "at", "n": "fn", "s": "sz"} RSS_SORT = {"m": "mt", "u": "at", "n": "fn", "s": "sz"}
ACODE2_FMT = set(["opus", "owa", "caf", "mp3", "flac", "wav"])
A_FILE = os.stat_result( A_FILE = os.stat_result(
(0o644, -1, -1, 1, 1000, 1000, 8, 0x39230101, 0x39230101, 0x39230101) (0o644, -1, -1, 1, 1000, 1000, 8, 0x39230101, 0x39230101, 0x39230101)
@ -5433,8 +5434,8 @@ class HttpCli(object):
if self.args.have_unlistc: if self.args.have_unlistc:
allvols = self.asrv.vfs.all_nodes allvols = self.asrv.vfs.all_nodes
rvol = [x for x in rvol if "unlistcr" not in allvols[x[1:-1]].flags] rvol = [x for x in rvol if "unlistcr" not in allvols[x.strip("/")].flags]
wvol = [x for x in wvol if "unlistcw" not in allvols[x[1:-1]].flags] wvol = [x for x in wvol if "unlistcw" not in allvols[x.strip("/")].flags]
fmt = self.uparam.get("ls", "") fmt = self.uparam.get("ls", "")
if not fmt and self.ua.startswith(("curl/", "fetch")): if not fmt and self.ua.startswith(("curl/", "fetch")):
@ -6686,6 +6687,8 @@ class HttpCli(object):
if th_fmt == "p": if th_fmt == "p":
raise Pebkac(404) raise Pebkac(404)
elif th_fmt in ACODE2_FMT:
raise Pebkac(415)
return self.tx_ico(rem) return self.tx_ico(rem)

View file

@ -352,6 +352,7 @@ HTTPCODE = {
411: "Length Required", 411: "Length Required",
412: "Precondition Failed", 412: "Precondition Failed",
413: "Payload Too Large", 413: "Payload Too Large",
415: "Unsupported Media Type",
416: "Requested Range Not Satisfiable", 416: "Requested Range Not Satisfiable",
422: "Unprocessable Entity", 422: "Unprocessable Entity",
423: "Locked", 423: "Locked",
@ -3656,7 +3657,11 @@ def retchk(
t = "error {} from [{}]".format(t, c) t = "error {} from [{}]".format(t, c)
if serr: if serr:
t += "\n" + serr if len(serr) > 8192:
zs = "%s\n[ ...TRUNCATED... ]\n%s\n[ NOTE: full msg was %d chars ]"
serr = zs % (serr[:4096], serr[-4096:].rstrip(), len(serr))
serr = serr.replace("\n", "\nstderr: ")
t += "\nstderr: " + serr
if logger: if logger:
logger(t, color) logger(t, color)

View file

@ -269,6 +269,7 @@ if (1)
"cdt_ask": "when scrolling to the bottom,$Ninstead of loading more files,$Nask what to do", "cdt_ask": "when scrolling to the bottom,$Ninstead of loading more files,$Nask what to do",
"cdt_hsort": "how many sorting rules (&lt;code&gt;,sorthref&lt;/code&gt;) to include in media-URLs. Setting this to 0 will also ignore sorting-rules included in media links when clicking them", "cdt_hsort": "how many sorting rules (&lt;code&gt;,sorthref&lt;/code&gt;) to include in media-URLs. Setting this to 0 will also ignore sorting-rules included in media links when clicking them",
"cdt_ren": "enable custom right-click menu, you can still access the regular menu by pressing the shift key and right-clicking", "cdt_ren": "enable custom right-click menu, you can still access the regular menu by pressing the shift key and right-clicking",
"cdt_rdb": "show the regular right-click menu when the custom one is already open and right-clicking again",
"tt_entree": "show navpane (directory tree sidebar)$NHotkey: B", "tt_entree": "show navpane (directory tree sidebar)$NHotkey: B",
"tt_detree": "show breadcrumbs$NHotkey: B", "tt_detree": "show breadcrumbs$NHotkey: B",
@ -339,6 +340,7 @@ if (1)
"mm_eunk": "Unknown Errol", "mm_eunk": "Unknown Errol",
"mm_e404": "Could not play audio; error 404: File not found.", "mm_e404": "Could not play audio; error 404: File not found.",
"mm_e403": "Could not play audio; error 403: Access denied.\n\nTry pressing F5 to reload, maybe you got logged out", "mm_e403": "Could not play audio; error 403: Access denied.\n\nTry pressing F5 to reload, maybe you got logged out",
"mm_e415": "Could not play audio; error 415: File transcoding failed; check server logs.",
"mm_e500": "Could not play audio; error 500: Check server logs.", "mm_e500": "Could not play audio; error 500: Check server logs.",
"mm_e5xx": "Could not play audio; server error ", "mm_e5xx": "Could not play audio; server error ",
"mm_nof": "not finding any more audio files nearby", "mm_nof": "not finding any more audio files nearby",
@ -358,6 +360,7 @@ if (1)
"f_anota": "only {0} of the {1} items were selected;\nto select the full folder, first scroll to the bottom", "f_anota": "only {0} of the {1} items were selected;\nto select the full folder, first scroll to the bottom",
"f_dls": 'the file links in the current folder have\nbeen changed into download links', "f_dls": 'the file links in the current folder have\nbeen changed into download links',
"f_dl_nd": 'skipping folder (use zip/tar download instead):\n',
"f_partial": "To safely download a file which is currently being uploaded, please click the file which has the same filename, but without the <code>.PARTIAL</code> file extension. Please press CANCEL or Escape to do this.\n\nPressing OK / Enter will ignore this warning and continue downloading the <code>.PARTIAL</code> scratchfile instead, which will almost definitely give you corrupted data.", "f_partial": "To safely download a file which is currently being uploaded, please click the file which has the same filename, but without the <code>.PARTIAL</code> file extension. Please press CANCEL or Escape to do this.\n\nPressing OK / Enter will ignore this warning and continue downloading the <code>.PARTIAL</code> scratchfile instead, which will almost definitely give you corrupted data.",
@ -649,7 +652,7 @@ if (1)
"rc_ply": "play", "rc_ply": "play",
"rc_pla": "play as audio", "rc_pla": "play as audio",
"rc_txt": "open in textfile viewer", "rc_txt": "open in textfile viewer",
"rc_md": "open in text editor", "rc_md": "open in markdown viewer",
"rc_dl": "download", "rc_dl": "download",
"rc_zip": "download as archive", "rc_zip": "download as archive",
"rc_cpl": "copy link", "rc_cpl": "copy link",
@ -657,6 +660,7 @@ if (1)
"rc_cut": "cut", "rc_cut": "cut",
"rc_cpy": "copy", "rc_cpy": "copy",
"rc_pst": "paste", "rc_pst": "paste",
"rc_rnm": "rename",
"rc_nfo": "new folder", "rc_nfo": "new folder",
"rc_nfi": "new file", "rc_nfi": "new file",
"rc_sal": "select all", "rc_sal": "select all",
@ -989,7 +993,7 @@ ebi('op_cfg').innerHTML = (
' </div>\n' + ' </div>\n' +
'</div>\n' + '</div>\n' +
'<div><h3>' + L.cl_keytype + '</h3><div><select id="key_notation"></select></div></div>\n' + '<div><h3>' + L.cl_keytype + '</h3><div><select id="key_notation"></select></div></div>\n' +
(!MOBILE ? '<div><h3>' + L.cl_rcm + '</h3><div><a id="ren" class="tgl btn" href="#" tt="' + L.cdt_ren + '">enable</a></div></div>' : '') + (!MOBILE ? '<div><h3>' + L.cl_rcm + '</h3><div><a id="ren" class="tgl btn" href="#" tt="' + L.cdt_ren + '">enable</a><a id="rdb" class="tgl btn" href="#" tt="' + L.cdt_rdb + '">double</a></div></div>' : '') +
'<div><h3>' + L.cl_hiddenc + ' &nbsp;' + (MOBILE ? '<a href="#" id="hcolsh">' + L.cl_hidec + '</a> / ' : '') + '<a href="#" id="hcolsr">' + L.cl_reset + '</a></h3><div id="hcols"></div></div>' '<div><h3>' + L.cl_hiddenc + ' &nbsp;' + (MOBILE ? '<a href="#" id="hcolsh">' + L.cl_hidec + '</a> / ' : '') + '<a href="#" id="hcolsr">' + L.cl_reset + '</a></h3><div id="hcols"></div></div>'
); );
@ -1033,13 +1037,12 @@ ebi('rcm').innerHTML = (
'<a href="#" id="rzip">' + L.rc_zip + '</a>' '<a href="#" id="rzip">' + L.rc_zip + '</a>'
: '') + : '') +
'<div id="rs2" class="sep"></div>' + '<div id="rs2" class="sep"></div>' +
(has(perms, "move") ? (have_del ? '<a href="#" id="rdel">' + L.rc_del + '</a>' : '') +
'<a href="#" id="rdel">' + L.rc_del + '</a>' + (have_mv ? '<a href="#" id="rcut">' + L.rc_cut + '</a>' : '') +
'<a href="#" id="rcut">' + L.rc_cut + '</a>'
: '') +
'<a href="#" id="rcpy">' + L.rc_cpy + '</a>' + '<a href="#" id="rcpy">' + L.rc_cpy + '</a>' +
(has(perms, "write") ? (has(perms, "write") ?
'<a href="#" id="rpst">' + L.rc_pst + '</a>' + '<a href="#" id="rpst">' + L.rc_pst + '</a>' +
(have_mv ? '<a href="#" id="rrnm">' + L.rc_rnm + '</a>' : '') +
'<div id="rs3" class="sep"></div>' + '<div id="rs3" class="sep"></div>' +
'<a href="#" id="rnfo">' + L.rc_nfo + '</a>' + '<a href="#" id="rnfo">' + L.rc_nfo + '</a>' +
'<a href="#" id="rnfi">' + L.rc_nfi + '</a>' '<a href="#" id="rnfi">' + L.rc_nfi + '</a>'
@ -3281,6 +3284,7 @@ function evau_error(e) {
var em = '' + eplaya.error.message, var em = '' + eplaya.error.message,
mfile = '\n\nFile: «' + uricom_dec(eplaya.src.split('/').pop()) + '»', mfile = '\n\nFile: «' + uricom_dec(eplaya.src.split('/').pop()) + '»',
e500 = L.mm_e500, e500 = L.mm_e500,
e415 = L.mm_e415,
e404 = L.mm_e404, e404 = L.mm_e404,
e403 = L.mm_e403; e403 = L.mm_e403;
@ -3293,6 +3297,9 @@ function evau_error(e) {
if (em.startsWith('404: ')) if (em.startsWith('404: '))
err = e404; err = e404;
if (em.startsWith('415: '))
err = e415;
if (em.startsWith('500: ')) if (em.startsWith('500: '))
err = e500; err = e500;
@ -3309,6 +3316,7 @@ function evau_error(e) {
err = this.status == 403 ? e403 : err = this.status == 403 ? e403 :
this.status == 404 ? e404 : this.status == 404 ? e404 :
this.status == 415 ? e415 :
this.status == 500 ? e500 : this.status == 500 ? e500 :
L.mm_e5xx + this.status; L.mm_e5xx + this.status;
@ -8496,9 +8504,13 @@ var msel = (function () {
for (var a = 0, aa = links.length; a < aa; a++) { for (var a = 0, aa = links.length; a < aa; a++) {
var qhref = links[a].getAttribute('href'), var qhref = links[a].getAttribute('href'),
href = qhref.split('?')[0].replace(/\/$/, ""), href = qhref.split('?')[0],
item = {}; item = {};
if (href.endsWith('/')) {
href = href.slice(0, -1);
item.isd = true;
}
item.id = links[a].getAttribute('id'); item.id = links[a].getAttribute('id');
item.sel = clgot(links[a].closest('tr'), 'sel'); item.sel = clgot(links[a].closest('tr'), 'sel');
item.vp = href.indexOf('/') !== -1 ? href : vbase + href; item.vp = href.indexOf('/') !== -1 ? href : vbase + href;
@ -8661,6 +8673,9 @@ var msel = (function () {
ev(e); ev(e);
var sel = r.getsel(); var sel = r.getsel();
for (var a = 0; a < sel.length; a++) for (var a = 0; a < sel.length; a++)
if (sel[a].isd)
toast.warn(7, L.f_dl_nd + esc(sel[a].vp));
else
dl_file(sel[a].vp + sel[a].q); dl_file(sel[a].vp + sel[a].q);
}; };
r.render = function () { r.render = function () {
@ -9474,9 +9489,11 @@ var rcm = (function () {
return {enabled: false} return {enabled: false}
var r = { var r = {
enabled: true enabled: true,
double: false
}; };
bcfg_bind(r, 'enabled', 'ren', true); bcfg_bind(r, 'enabled', 'ren', true);
bcfg_bind(r, 'double', 'rdb', false);
var menu = ebi('rcm'); var menu = ebi('rcm');
var nsFile = { var nsFile = {
@ -9550,7 +9567,7 @@ var rcm = (function () {
case 'ply': selFile.type == 'gf' ? thegrid.imshow(selFile.relpath) : play('f-' + selFile.id); break; case 'ply': selFile.type == 'gf' ? thegrid.imshow(selFile.relpath) : play('f-' + selFile.id); break;
case 'pla': play('f-' + selFile.id); break; case 'pla': play('f-' + selFile.id); break;
case 'txt': location = '?doc=' + selFile.relpath; break; case 'txt': location = '?doc=' + selFile.relpath; break;
case 'md': location = selFile.path + '?v'; break; case 'md': location = selFile.path + (has(selFile.path, '?') ? '&v' : '?v'); break;
case 'cpl': cliptxt(selFile.url, function() {toast.ok(2, L.clipped)}); break; case 'cpl': cliptxt(selFile.url, function() {toast.ok(2, L.clipped)}); break;
case 'dl': ebi('seldl').click(); break; case 'dl': ebi('seldl').click(); break;
case 'zip': ebi('selzip').click(); break; case 'zip': ebi('selzip').click(); break;
@ -9561,6 +9578,7 @@ var rcm = (function () {
fileman.paste(); fileman.paste();
fileman.clip = []; fileman.clip = [];
break; break;
case 'rnm': fileman.rename(); break;
case 'nfo': mktemp(true); break; case 'nfo': mktemp(true); break;
case 'nfi': mktemp(); break; case 'nfi': mktemp(); break;
case 'sal': case 'sal':
@ -9587,8 +9605,8 @@ var rcm = (function () {
selFile.elem = file; selFile.elem = file;
selFile.url = file.children[1].firstChild.href; selFile.url = file.children[1].firstChild.href;
selFile.path = basenames(selFile.url).split('?')[0]; selFile.path = basenames(selFile.url).replace(/(&|\?)v/, '');
selFile.relpath = selFile.path.split('/').slice(-1)[0]; selFile.relpath = selFile.path.split('/').slice(-1)[0].split("?")[0];
if (noq_href(file.children[1].firstChild).endsWith("/")) if (noq_href(file.children[1].firstChild).endsWith("/"))
selFile.type = "dir"; selFile.type = "dir";
else { else {
@ -9598,6 +9616,7 @@ var rcm = (function () {
} }
} }
} }
console.log(selFile);
msel.selui(); msel.selui();
var has_sel = msel.getsel().length; var has_sel = msel.getsel().length;
@ -9608,7 +9627,7 @@ var rcm = (function () {
clmod(ebi('rpla'), 'hide', selFile.type != 'gf'); clmod(ebi('rpla'), 'hide', selFile.type != 'gf');
clmod(ebi('rtxt'), 'hide', !selFile.id); clmod(ebi('rtxt'), 'hide', !selFile.id);
clmod(ebi('rs1'), 'hide', !selFile.path); clmod(ebi('rs1'), 'hide', !selFile.path);
clmod(ebi('rmd'), 'hide', !selFile.id || selFile.path.slice(-3) != '.md'); clmod(ebi('rmd'), 'hide', !selFile.id || selFile.relpath.slice(-3) != ".md");
clmod(ebi('rcpl'), 'hide', !selFile.path); clmod(ebi('rcpl'), 'hide', !selFile.path);
clmod(ebi('rdl'), 'hide', !has_sel); clmod(ebi('rdl'), 'hide', !has_sel);
clmod(ebi('rzip'), 'hide', !has_sel); clmod(ebi('rzip'), 'hide', !has_sel);
@ -9617,7 +9636,9 @@ var rcm = (function () {
clmod(ebi('rdel'), 'hide', !has_sel); clmod(ebi('rdel'), 'hide', !has_sel);
clmod(ebi('rcpy'), 'hide', !has_sel); clmod(ebi('rcpy'), 'hide', !has_sel);
clmod(ebi('rpst'), 'hide', !has_clip); clmod(ebi('rpst'), 'hide', !has_clip);
clmod(ebi('rs3'), 'hide', !has_sel || !has_clip); clmod(ebi('rrnm'), 'hide', !has_sel);
clmod(ebi('rs3'), 'hide', !has_sel);
clmod(ebi('rs4'), 'hide', !has_sel && !has(perms, "write"));
menu.style.left = x + 5 + 'px'; menu.style.left = x + 5 + 'px';
menu.style.top = y + 5 + 'px'; menu.style.top = y + 5 + 'px';
@ -9637,10 +9658,14 @@ var rcm = (function () {
} }
ebi('wrap').oncontextmenu = function(e) { ebi('wrap').oncontextmenu = function(e) {
if (!r.enabled || e.shiftKey || menu.style.display) {
r.hide(true); r.hide(true);
if (!r.enabled || e.shiftKey || (r.double && menu.style.display)) {
return true; return true;
} }
if (selFile.elem && !selFile.no_dsel) {
clmod(selFile.elem, "sel", false);
msel.selui();
}
ev(e); ev(e);
var gfile = thegrid.en && e.target && e.target.closest('#ggrid > a'); var gfile = thegrid.en && e.target && e.target.closest('#ggrid > a');
show(xscroll() + e.clientX, yscroll() + e.clientY, gfile || e.target, gfile); show(xscroll() + e.clientX, yscroll() + e.clientY, gfile || e.target, gfile);

View file

@ -334,6 +334,7 @@ Ls.chi = {
"mm_eunk": "未知错误", "mm_eunk": "未知错误",
"mm_e404": "无法播放音频;错误 404文件未找到。", "mm_e404": "无法播放音频;错误 404文件未找到。",
"mm_e403": "无法播放音频;错误 403访问被拒绝。\n\n尝试按 F5 重新加载,也许你已被注销", "mm_e403": "无法播放音频;错误 403访问被拒绝。\n\n尝试按 F5 重新加载,也许你已被注销",
"mm_e415": "无法播放音频;错误 415文件转码失败检查服务器日志。", //m
"mm_e500": "无法播放音频;错误 500检查服务器日志。", //m "mm_e500": "无法播放音频;错误 500检查服务器日志。", //m
"mm_e5xx": "无法播放音频;服务器错误", "mm_e5xx": "无法播放音频;服务器错误",
"mm_nof": "附近找不到更多音频文件", "mm_nof": "附近找不到更多音频文件",
@ -353,6 +354,7 @@ Ls.chi = {
"f_anota": "仅选择了 {0} 个项目,共 {1} 个;\n要选择整个文件夹请先滚动到底部", //m "f_anota": "仅选择了 {0} 个项目,共 {1} 个;\n要选择整个文件夹请先滚动到底部", //m
"f_dls": '当前文件夹中的文件链接已\n更改为下载链接', "f_dls": '当前文件夹中的文件链接已\n更改为下载链接',
"f_dl_nd": '跳过文件夹(请改用 zip/tar 下载):\n', //m
"f_partial": "要安全下载正在上传的文件,请点击没有 <code>.PARTIAL</code> 文件扩展名的同名文件。请按取消或 Escape 执行此操作。\n\n按 确定 / Enter 将忽略此警告并继续下载 <code>.PARTIAL</code> 临时文件,这几乎肯定会导致数据损坏。", "f_partial": "要安全下载正在上传的文件,请点击没有 <code>.PARTIAL</code> 文件扩展名的同名文件。请按取消或 Escape 执行此操作。\n\n按 确定 / Enter 将忽略此警告并继续下载 <code>.PARTIAL</code> 临时文件,这几乎肯定会导致数据损坏。",

View file

@ -338,6 +338,7 @@ Ls.cze = {
"mm_eunk": "Neznámá chyba", "mm_eunk": "Neznámá chyba",
"mm_e404": "Nelze přehrát audio; chyba 404: Soubor nenalezen.", "mm_e404": "Nelze přehrát audio; chyba 404: Soubor nenalezen.",
"mm_e403": "Nelze přehrát audio; chyba 403: Přístup odepřen.\n\nZkuste stisknout F5 pro obnovení, možná jste se odhlásili", "mm_e403": "Nelze přehrát audio; chyba 403: Přístup odepřen.\n\nZkuste stisknout F5 pro obnovení, možná jste se odhlásili",
"mm_e415": "Nelze přehrát audio; chyba 415: Převod souboru selhal; zkontrolujte logy serveru.", //m
"mm_e500": "Nelze přehrát audio; chyba 500: Zkontrolujte logy serveru.", "mm_e500": "Nelze přehrát audio; chyba 500: Zkontrolujte logy serveru.",
"mm_e5xx": "Nelze přehrát audio; chyba serveru ", "mm_e5xx": "Nelze přehrát audio; chyba serveru ",
"mm_nof": "žádné další audio soubory v okolí nenalezeny", "mm_nof": "žádné další audio soubory v okolí nenalezeny",
@ -357,6 +358,7 @@ Ls.cze = {
"f_anota": "pouze {0} z {1} položek bylo vybráno;\npro výběr celé složky nejprve přejděte na konec", "f_anota": "pouze {0} z {1} položek bylo vybráno;\npro výběr celé složky nejprve přejděte na konec",
"f_dls": 'odkazy na soubory v aktuální složce byly\nzměněny na odkazy ke stažení', "f_dls": 'odkazy na soubory v aktuální složce byly\nzměněny na odkazy ke stažení',
"f_dl_nd": 'přeskakuje se složka (místo toho použijte stažení zip/tar):\n', //m
"f_partial": "Pro bezpečné stažení souboru, který se aktuálně nahrává, klikněte prosím na soubor se stejným názvem, ale bez přípony <code>.PARTIAL</code>. Stiskněte prosím Zrušit nebo Escape.\n\nStisknutím OK / Enter ignorujete toto varování a pokračujete ve stahování <code>.PARTIAL</code> dočasného souboru, což téměř jistě vyústí jako poškozená data.", "f_partial": "Pro bezpečné stažení souboru, který se aktuálně nahrává, klikněte prosím na soubor se stejným názvem, ale bez přípony <code>.PARTIAL</code>. Stiskněte prosím Zrušit nebo Escape.\n\nStisknutím OK / Enter ignorujete toto varování a pokračujete ve stahování <code>.PARTIAL</code> dočasného souboru, což téměř jistě vyústí jako poškozená data.",

View file

@ -334,6 +334,7 @@ Ls.deu = {
"mm_eunk": "Unbekannter Fehler", "mm_eunk": "Unbekannter Fehler",
"mm_e404": "Konnte Datei nicht abspielen; Fehler 404: Datei nicht gefunden.", "mm_e404": "Konnte Datei nicht abspielen; Fehler 404: Datei nicht gefunden.",
"mm_e403": "Konnte Datei nicht abspielen; Fehler 403: Zugriff verweigert.\n\nDrücke F5 zum Neuladen, vielleicht wurdest du abgemeldet", "mm_e403": "Konnte Datei nicht abspielen; Fehler 403: Zugriff verweigert.\n\nDrücke F5 zum Neuladen, vielleicht wurdest du abgemeldet",
"mm_e415": "Konnte Datei nicht abspielen; Fehler 415: Umwandlung der Datei fehlgeschlagen; Serverlogs prüfen.", //m
"mm_e500": "Konnte Datei nicht abspielen; Fehler 500: Prüfe die Serverlogs.", "mm_e500": "Konnte Datei nicht abspielen; Fehler 500: Prüfe die Serverlogs.",
"mm_e5xx": "Konnte Datei nicht abspielen; Server Fehler ", "mm_e5xx": "Konnte Datei nicht abspielen; Server Fehler ",
"mm_nof": "finde keine weiteren Audiodateien in der Nähe", "mm_nof": "finde keine weiteren Audiodateien in der Nähe",
@ -353,6 +354,7 @@ Ls.deu = {
"f_anota": "nur {0} der {1} Elemente wurden ausgewählt;\num den gesamten Ordner auszuwählen, zuerst nach unten scrollen", "f_anota": "nur {0} der {1} Elemente wurden ausgewählt;\num den gesamten Ordner auszuwählen, zuerst nach unten scrollen",
"f_dls": 'die Dateilinks im aktuellen Ordner wurden\nin Downloadlinks geändert', "f_dls": 'die Dateilinks im aktuellen Ordner wurden\nin Downloadlinks geändert',
"f_dl_nd": 'ordner wird übersprungen (bitte zip/tar-download verwenden):\n', //m
"f_partial": "Um eine Datei sicher herunterzuladen, die gerade hochgeladen wird, klicke bitte die Datei mit dem gleichen Namen, aber ohne die <code>.PARTIAL</code>-Endung. Bitte drücke Abbrechen oder Escape, um dies zu tun.\n\nWenn du auf OK / Eingabe drückst, ignorierst du diese Warnung und lädst die <code>.PARTIAL</code>-Datei herunter, die ziemlich sicher beschädigte Daten enthält.", "f_partial": "Um eine Datei sicher herunterzuladen, die gerade hochgeladen wird, klicke bitte die Datei mit dem gleichen Namen, aber ohne die <code>.PARTIAL</code>-Endung. Bitte drücke Abbrechen oder Escape, um dies zu tun.\n\nWenn du auf OK / Eingabe drückst, ignorierst du diese Warnung und lädst die <code>.PARTIAL</code>-Datei herunter, die ziemlich sicher beschädigte Daten enthält.",

View file

@ -334,6 +334,7 @@ Ls.epo = {
"mm_eunk": "Nekonata eraro", "mm_eunk": "Nekonata eraro",
"mm_e404": "Ne povas ludi aŭdiaĵon; eraro 404: Dosiero ne trovita.", "mm_e404": "Ne povas ludi aŭdiaĵon; eraro 404: Dosiero ne trovita.",
"mm_e403": "Ne povas ludi aŭdiaĵon; eraro 403: Atingo malpermesita.\n\nKlopodu reŝargi paĝon per klavo F5, eble via seanco senvalidiĝis", "mm_e403": "Ne povas ludi aŭdiaĵon; eraro 403: Atingo malpermesita.\n\nKlopodu reŝargi paĝon per klavo F5, eble via seanco senvalidiĝis",
"mm_e415": "Ne povas ludi aŭdiaĵon; eraro 415: Transkodigo de dosiero malsukcesis; rigardu la protokolojn de servilo.", //m
"mm_e500": "Ne povas ludi aŭdiaĵon; eraro 500: Rigardu la protokolojn de servilo.", "mm_e500": "Ne povas ludi aŭdiaĵon; eraro 500: Rigardu la protokolojn de servilo.",
"mm_e5xx": "Ne povas ludi aŭdiaĵon; servila eraro ", "mm_e5xx": "Ne povas ludi aŭdiaĵon; servila eraro ",
"mm_nof": "neniuj aŭdio-dosieroj trovitaj proksime", "mm_nof": "neniuj aŭdio-dosieroj trovitaj proksime",
@ -353,6 +354,7 @@ Ls.epo = {
"f_anota": "nur {0} de {1} eroj estis elektita;\nrulumi al la malsupro por elekti la tutan dosierujon", "f_anota": "nur {0} de {1} eroj estis elektita;\nrulumi al la malsupro por elekti la tutan dosierujon",
"f_dls": 'la ligiloj de dosieroj en ĉi tiu dosierujo estis\nanstataŭigitaj per elŝuto-ligiloj', "f_dls": 'la ligiloj de dosieroj en ĉi tiu dosierujo estis\nanstataŭigitaj per elŝuto-ligiloj',
"f_dl_nd": 'preterlasante dosierujon (uzu zip/tar-elŝuton anstataŭe):\n', //m
"f_partial": "Por sendifekta elŝuto de nune-alŝutata dosiero, elektu dosieron kun sama nomo, sed sen etendaĵo <code>.PARTIAL</code>. Bonvolu uzi la butonon \"Rezigni\" aŭ klavon ESK por fari tion.\n\nSe vi uzas OK / Enter, la provizora dosiero <code>.PARTIAL</code> estos elŝutita, kiu tre probable enhavas nekompletajn datumojn.", "f_partial": "Por sendifekta elŝuto de nune-alŝutata dosiero, elektu dosieron kun sama nomo, sed sen etendaĵo <code>.PARTIAL</code>. Bonvolu uzi la butonon \"Rezigni\" aŭ klavon ESK por fari tion.\n\nSe vi uzas OK / Enter, la provizora dosiero <code>.PARTIAL</code> estos elŝutita, kiu tre probable enhavas nekompletajn datumojn.",

View file

@ -334,6 +334,7 @@ Ls.fin = {
"mm_eunk": "Tuntematon virhe", "mm_eunk": "Tuntematon virhe",
"mm_e404": "Kappaletta ei voitu toistaa; virhe 404: Tiedostoa ei löydy.", "mm_e404": "Kappaletta ei voitu toistaa; virhe 404: Tiedostoa ei löydy.",
"mm_e403": "Kappaletta ei voitu toistaa; virhe 403: Pääsy kielletty.\n\nKokeile painaa F5 päivittääksesi, ehkä kirjauduit ulos", "mm_e403": "Kappaletta ei voitu toistaa; virhe 403: Pääsy kielletty.\n\nKokeile painaa F5 päivittääksesi, ehkä kirjauduit ulos",
"mm_e415": "Kappaletta ei voitu toistaa; virhe 415: Tiedoston muunnos epäonnistui; tarkista palvelinlokit.", //m
"mm_e500": "Kappaletta ei voitu toistaa; virhe 500: Tarkista palvelinlokit.", "mm_e500": "Kappaletta ei voitu toistaa; virhe 500: Tarkista palvelinlokit.",
"mm_e5xx": "Kappaletta ei voitu toistaa; palvelinvirhe ", "mm_e5xx": "Kappaletta ei voitu toistaa; palvelinvirhe ",
"mm_nof": "ei löydy enempää äänitiedostoja lähistöltä", "mm_nof": "ei löydy enempää äänitiedostoja lähistöltä",
@ -353,6 +354,7 @@ Ls.fin = {
"f_anota": "vain {0} / {1} kohdetta valittiin;\nvalitaksesi koko hakemiston, vieritä ensin loppuun", "f_anota": "vain {0} / {1} kohdetta valittiin;\nvalitaksesi koko hakemiston, vieritä ensin loppuun",
"f_dls": 'nykyisen hakemiston tiedostolinkit on\nvaihdettu latauslinkeiksi', "f_dls": 'nykyisen hakemiston tiedostolinkit on\nvaihdettu latauslinkeiksi',
"f_dl_nd": 'ohitetaan kansio (käytä zip/tar-latausta sen sijaan):\n', //m
"f_partial": "Ladataksesi turvallisesti tiedoston joka on parhaillaan latautumassa, klikkaa tiedostoa jolla on sama nimi mutta ilman <code>.PARTIAL</code> päätettä. Paina PERUUTA tai Escape tehdäksesi tämän.\n\nOK / Enter painaminen sivuuttaa tämän varoituksen ja jatkaa <code>.PARTIAL</code> väliaikaistiedoston lataamista, mikä todennäköisesti antaa sinulle vioittunutta dataa.", "f_partial": "Ladataksesi turvallisesti tiedoston joka on parhaillaan latautumassa, klikkaa tiedostoa jolla on sama nimi mutta ilman <code>.PARTIAL</code> päätettä. Paina PERUUTA tai Escape tehdäksesi tämän.\n\nOK / Enter painaminen sivuuttaa tämän varoituksen ja jatkaa <code>.PARTIAL</code> väliaikaistiedoston lataamista, mikä todennäköisesti antaa sinulle vioittunutta dataa.",

View file

@ -334,6 +334,7 @@ Ls.fra = {
"mm_eunk": "Erreur inconnue", "mm_eunk": "Erreur inconnue",
"mm_e404": "Impossible de lire l'audio ; erreur 404 : fichier introuvable.", "mm_e404": "Impossible de lire l'audio ; erreur 404 : fichier introuvable.",
"mm_e403": "Impossible de lire l'audio ; erreur 403 : accès refusé.\n\nEssayez d'appuyer sur F5 pour recharger, peut-être que vous avez été déconnecté", "mm_e403": "Impossible de lire l'audio ; erreur 403 : accès refusé.\n\nEssayez d'appuyer sur F5 pour recharger, peut-être que vous avez été déconnecté",
"mm_e415": "Impossible de lire l'audio ; erreur 415 : échec de la conversion du fichier ; vérifiez les journaux du serveur.", //m
"mm_e500": "Impossible de lire l'audio ; erreur 500 : vérifiez les journaux du serveur.", "mm_e500": "Impossible de lire l'audio ; erreur 500 : vérifiez les journaux du serveur.",
"mm_e5xx": "Impossible de lire l'audio ; erreur serveur ", "mm_e5xx": "Impossible de lire l'audio ; erreur serveur ",
"mm_nof": "Pas d'autres fichiers audio trouvés par ici", "mm_nof": "Pas d'autres fichiers audio trouvés par ici",
@ -353,6 +354,7 @@ Ls.fra = {
"f_anota": "seulement {0} des {1} elements sont selectioné;\npour selectioner le dossier entier, fait défiler jusqu'au fond", "f_anota": "seulement {0} des {1} elements sont selectioné;\npour selectioner le dossier entier, fait défiler jusqu'au fond",
"f_dls": 'le lien de fichier dans le répertoire actuel\nà été changé en lien de téléchargement', "f_dls": 'le lien de fichier dans le répertoire actuel\nà été changé en lien de téléchargement',
"f_dl_nd": 'dossier ignoré (utilisez le téléchargement zip/tar à la place):\n', //m
"f_partial": "Pour télécharger de façon sécurisée un fichier qui est entrain de se faire téléverser, cliquez sur le fichier qui a le même nom, mais sans l'extension de fichier <code>.PARTIAL</code>. Choisissez ANNULER ou appuiez sur la touche Échap pour faire cela.\n\nAppuyer sur OK / Entrée ignorera cet avertissement et continuera à télécharger le fichier temporaire <code>.PARTIAL</code> à la place, ce qui donnera presque certainement des données corrompues.", "f_partial": "Pour télécharger de façon sécurisée un fichier qui est entrain de se faire téléverser, cliquez sur le fichier qui a le même nom, mais sans l'extension de fichier <code>.PARTIAL</code>. Choisissez ANNULER ou appuiez sur la touche Échap pour faire cela.\n\nAppuyer sur OK / Entrée ignorera cet avertissement et continuera à télécharger le fichier temporaire <code>.PARTIAL</code> à la place, ce qui donnera presque certainement des données corrompues.",

View file

@ -334,6 +334,7 @@ Ls.grc = {
"mm_eunk": "Άγνωστο σφάλμα", "mm_eunk": "Άγνωστο σφάλμα",
"mm_e404": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 404: Το αρχείο δεν βρέθηκε.", "mm_e404": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 404: Το αρχείο δεν βρέθηκε.",
"mm_e403": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 403: Άρνηση πρόσβασης.\n\nΔοκίμασε F5 για επαναφόρτωση, ίσως να έχεις αποσυνδεθεί", "mm_e403": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 403: Άρνηση πρόσβασης.\n\nΔοκίμασε F5 για επαναφόρτωση, ίσως να έχεις αποσυνδεθεί",
"mm_e415": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 415: Απέτυχε η μετατροπή αρχείου; έλεγξε τα logs του διακομιστή.", //m
"mm_e500": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 500: Έλεγξε τα logs του διακομιστή.", "mm_e500": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα 500: Έλεγξε τα logs του διακομιστή.",
"mm_e5xx": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα διακομιστή", "mm_e5xx": "Αδύνατη η αναπαραγωγή ήχου; σφάλμα διακομιστή",
"mm_nof": "δεν βρέθηκαν άλλα αρχεία ήχου τριγύρω", "mm_nof": "δεν βρέθηκαν άλλα αρχεία ήχου τριγύρω",
@ -353,6 +354,7 @@ Ls.grc = {
"f_anota": "μόνο {0} από τα {1} αντικείμενα επιλέχθηκαν;\nγια να επιλέξεις ολόκληρο το φάκελο, κύλησε πρώτα μέχρι κάτω", "f_anota": "μόνο {0} από τα {1} αντικείμενα επιλέχθηκαν;\nγια να επιλέξεις ολόκληρο το φάκελο, κύλησε πρώτα μέχρι κάτω",
"f_dls": 'οι σύνδεσμοι αρχείων στον τρέχοντα φάκελο έχουν\nμετατραπεί σε συνδέσμους λήψης', "f_dls": 'οι σύνδεσμοι αρχείων στον τρέχοντα φάκελο έχουν\nμετατραπεί σε συνδέσμους λήψης',
"f_dl_nd": 'παράλειψη φακέλου (χρησιμοποιήστε λήψη zip/tar αντί γι αυτό):\n', //m
"f_partial": "Για να κατεβάσεις με ασφάλεια ένα αρχείο που ανεβαίνει, κλίκαρε το αρχείο με το ίδιο όνομα, αλλά χωρίς την κατάληξη <code>.PARTIAL</code>. Πάτα Άκυρο ή Escape για να σταματήσεις.\n\nΠάτα Εντάξει / Enter αν αγνοείς την προειδοποίηση και κατέβασε το <code>.PARTIAL</code> αρχείο, που σχεδόν σίγουρα θα είναι κατεστραμμένο.", "f_partial": "Για να κατεβάσεις με ασφάλεια ένα αρχείο που ανεβαίνει, κλίκαρε το αρχείο με το ίδιο όνομα, αλλά χωρίς την κατάληξη <code>.PARTIAL</code>. Πάτα Άκυρο ή Escape για να σταματήσεις.\n\nΠάτα Εντάξει / Enter αν αγνοείς την προειδοποίηση και κατέβασε το <code>.PARTIAL</code> αρχείο, που σχεδόν σίγουρα θα είναι κατεστραμμένο.",

View file

@ -334,6 +334,7 @@ Ls.ita = {
"mm_eunk": "Errore Sconosciuto", "mm_eunk": "Errore Sconosciuto",
"mm_e404": "Non è stato possibile riprodurre audio; errore 404: File non trovato.", "mm_e404": "Non è stato possibile riprodurre audio; errore 404: File non trovato.",
"mm_e403": "Non è stato possibile riprodurre audio; errore 403: Accesso negato.\n\nProva a premere F5 per ricaricare, forse sei stato disconnesso", "mm_e403": "Non è stato possibile riprodurre audio; errore 403: Accesso negato.\n\nProva a premere F5 per ricaricare, forse sei stato disconnesso",
"mm_e415": "Non è stato possibile riprodurre audio; errore 415: Conversione del file non riuscita; controlla i log del server.", //m
"mm_e500": "Non è stato possibile riprodurre audio; errore 500: Controlla i log del server.", "mm_e500": "Non è stato possibile riprodurre audio; errore 500: Controlla i log del server.",
"mm_e5xx": "Non è stato possibile riprodurre audio; errore server ", "mm_e5xx": "Non è stato possibile riprodurre audio; errore server ",
"mm_nof": "non trovo altri file audio nelle vicinanze", "mm_nof": "non trovo altri file audio nelle vicinanze",
@ -353,6 +354,7 @@ Ls.ita = {
"f_anota": "solo {0} dei {1} elementi sono stati selezionati;\nper selezionare l'intera cartella, prima scorri fino in fondo", "f_anota": "solo {0} dei {1} elementi sono stati selezionati;\nper selezionare l'intera cartella, prima scorri fino in fondo",
"f_dls": 'i link dei file nella cartella corrente sono stati\ncambiati in link di download', "f_dls": 'i link dei file nella cartella corrente sono stati\ncambiati in link di download',
"f_dl_nd": 'cartella ignorata (usa invece il download zip/tar):\n', //m
"f_partial": "Per scaricare in sicurezza un file che è attualmente in fase di caricamento, clicca il file che ha lo stesso nome, ma senza l'estensione <code>.PARTIAL</code>. Premi ANNULLA o Escape per farlo.\n\nPremendo OK / Invio ignorerai questo avviso e continuerai a scaricare il file <code>.PARTIAL</code> scratch, che quasi sicuramente ti darà dati corrotti.", "f_partial": "Per scaricare in sicurezza un file che è attualmente in fase di caricamento, clicca il file che ha lo stesso nome, ma senza l'estensione <code>.PARTIAL</code>. Premi ANNULLA o Escape per farlo.\n\nPremendo OK / Invio ignorerai questo avviso e continuerai a scaricare il file <code>.PARTIAL</code> scratch, che quasi sicuramente ti darà dati corrotti.",

View file

@ -334,6 +334,7 @@ Ls.jpn = {
"mm_eunk": "不明なエラー", "mm_eunk": "不明なエラー",
"mm_e404": "オーディオを再生できませんでした。エラー404: ファイルが見つかりません。", "mm_e404": "オーディオを再生できませんでした。エラー404: ファイルが見つかりません。",
"mm_e403": "オーディオを再生できませんでした。エラー403: アクセス拒否。\n\nF5キーを押してリロードしてみてください。ログアウトしている可能性があります。", "mm_e403": "オーディオを再生できませんでした。エラー403: アクセス拒否。\n\nF5キーを押してリロードしてみてください。ログアウトしている可能性があります。",
"mm_e415": "オーディオを再生できませんでした。エラー415: ファイルの変換に失敗しました。サーバーログを確認してください。", //m
"mm_e500": "オーディオを再生できませんでした。エラー500: サーバーログを確認してください。", "mm_e500": "オーディオを再生できませんでした。エラー500: サーバーログを確認してください。",
"mm_e5xx": "オーディオを再生できませんでした。サーバーエラー ", "mm_e5xx": "オーディオを再生できませんでした。サーバーエラー ",
"mm_nof": "近くにオーディオファイルが見つかりません", "mm_nof": "近くにオーディオファイルが見つかりません",
@ -353,6 +354,7 @@ Ls.jpn = {
"f_anota": "{1}件のアイテムのうち {0}件が選択されました;\nフォルダ全体を選択するには、まず一番下までスクロールします", "f_anota": "{1}件のアイテムのうち {0}件が選択されました;\nフォルダ全体を選択するには、まず一番下までスクロールします",
"f_dls": '現在のフォルダ内のファイルリンクは\nダウンロードリンクに変更されました', "f_dls": '現在のフォルダ内のファイルリンクは\nダウンロードリンクに変更されました',
"f_dl_nd": 'フォルダーをスキップしています(代わりに zip/tar ダウンロードを使用してください):\n', //m
"f_partial": "現在アップロード中のファイルを安全にダウンロードするには、同じファイル名で<code>.PARTIAL</code>拡張子がないファイルをクリックしてください。これを行うにはキャンセルまたはEscキーを押してください。\n\nOK / Enter を押すとこの警告は無視され、代わりに<code>.PARTIAL</code>スクラッチファイルのダウンロードが続行されますが、ほとんどの場合データが破損することになります。", "f_partial": "現在アップロード中のファイルを安全にダウンロードするには、同じファイル名で<code>.PARTIAL</code>拡張子がないファイルをクリックしてください。これを行うにはキャンセルまたはEscキーを押してください。\n\nOK / Enter を押すとこの警告は無視され、代わりに<code>.PARTIAL</code>スクラッチファイルのダウンロードが続行されますが、ほとんどの場合データが破損することになります。",

View file

@ -334,6 +334,7 @@ Ls.kor = {
"mm_eunk": "알 수 없는 오류", "mm_eunk": "알 수 없는 오류",
"mm_e404": "오디오를 재생할 수 없습니다; 오류 404: 파일을 찾을 수 없습니다.", "mm_e404": "오디오를 재생할 수 없습니다; 오류 404: 파일을 찾을 수 없습니다.",
"mm_e403": "오디오를 재생할 수 없습니다; 오류 403: 접근이 거부되었습니다.\n\nF5를 눌러 새로고침 해보세요, 로그아웃되었을 수 있습니다", "mm_e403": "오디오를 재생할 수 없습니다; 오류 403: 접근이 거부되었습니다.\n\nF5를 눌러 새로고침 해보세요, 로그아웃되었을 수 있습니다",
"mm_e415": "오디오를 재생할 수 없습니다; 오류 415: 파일 변환에 실패했습니다; 서버 로그를 확인하세요.", //m
"mm_e500": "오디오를 재생할 수 없습니다; 오류 500: 서버 로그를 확인하세요.", "mm_e500": "오디오를 재생할 수 없습니다; 오류 500: 서버 로그를 확인하세요.",
"mm_e5xx": "오디오를 재생할 수 없습니다; 서버 오류 ", "mm_e5xx": "오디오를 재생할 수 없습니다; 서버 오류 ",
"mm_nof": "주변에서 더 이상 오디오 파일을 찾을 수 없습니다", "mm_nof": "주변에서 더 이상 오디오 파일을 찾을 수 없습니다",
@ -353,6 +354,7 @@ Ls.kor = {
"f_anota": "{1}개 항목 중 {0}개만 선택되었습니다.\n전체 폴더를 선택하려면 먼저 맨 아래로 스크롤하세요.", "f_anota": "{1}개 항목 중 {0}개만 선택되었습니다.\n전체 폴더를 선택하려면 먼저 맨 아래로 스크롤하세요.",
"f_dls": '현재 폴더의 파일 링크가\n다운로드 링크로 변경되었습니다', "f_dls": '현재 폴더의 파일 링크가\n다운로드 링크로 변경되었습니다',
"f_dl_nd": '폴더를 건너뜁니다 (대신 zip/tar 다운로드를 사용하세요):\n', //m
"f_partial": "현재 업로드 중인 파일을 안전하게 다운로드하려면, 파일 이름이 같지만 <code>.PARTIAL</code> 확장자가 없는 파일을 클릭하세요. 이 경고를 무시하려면 \"취소\" 또는 ESC를 누르세요.\n\n\"확인\"/Enter를 누르면 이 경고를 무시하고 <code>.PARTIAL</code> 임시 파일을 계속 다운로드하며, 이 경우 거의 확실히 손상된 데이터를 받게 됩니다.", "f_partial": "현재 업로드 중인 파일을 안전하게 다운로드하려면, 파일 이름이 같지만 <code>.PARTIAL</code> 확장자가 없는 파일을 클릭하세요. 이 경고를 무시하려면 \"취소\" 또는 ESC를 누르세요.\n\n\"확인\"/Enter를 누르면 이 경고를 무시하고 <code>.PARTIAL</code> 임시 파일을 계속 다운로드하며, 이 경우 거의 확실히 손상된 데이터를 받게 됩니다.",

View file

@ -334,6 +334,7 @@ Ls.nld = {
"mm_eunk": "Onbekende fout", "mm_eunk": "Onbekende fout",
"mm_e404": "Kan audio niet afspelen; fout 404: Bestand niet gevonden..", "mm_e404": "Kan audio niet afspelen; fout 404: Bestand niet gevonden..",
"mm_e403": "Kan audio niet afspelen; fout 403: Toegang geweigerd.\n\nProbeer op F5 te drukken om opnieuw te laden, misschien ben je uitgelogd", "mm_e403": "Kan audio niet afspelen; fout 403: Toegang geweigerd.\n\nProbeer op F5 te drukken om opnieuw te laden, misschien ben je uitgelogd",
"mm_e415": "Kan geen audio afspelen; fout 415: Bestandsconversie mislukt; controleer serverlogs.", //m
"mm_e500": "Kan geen audio afspelen; fout 500: Controleer serverlogs.", "mm_e500": "Kan geen audio afspelen; fout 500: Controleer serverlogs.",
"mm_e5xx": "Kan geen audio afspelen; serverfout ", "mm_e5xx": "Kan geen audio afspelen; serverfout ",
"mm_nof": "Geen audiobestanden meer vinden in de buurt", "mm_nof": "Geen audiobestanden meer vinden in de buurt",
@ -353,6 +354,7 @@ Ls.nld = {
"f_anota": "Alleen {0} van de {1} items zijn geselecteerd;\nom de volledige map te selecteren, scrol je eerst naar beneden", "f_anota": "Alleen {0} van de {1} items zijn geselecteerd;\nom de volledige map te selecteren, scrol je eerst naar beneden",
"f_dls": 'de bestandslinks in de huidige map zijn veranderd in downloadlinks', "f_dls": 'de bestandslinks in de huidige map zijn veranderd in downloadlinks',
"f_dl_nd": 'map wordt overgeslagen (gebruik in plaats daarvan zip/tar-download):\n', //m
"f_partial": "Om een bestand dat momenteel wordt geüpload veilig te downloaden, klikt u op het bestand met dezelfde bestandsnaam, maar zonder de bestandsextensie <code>.PARTIAL</code>. Druk op Annuleren of Escape om dit te doen.\n\nAls u op OK / Enter drukt, wordt deze waarschuwing genegeerd en gaat u verder met het downloaden van het gedeeltelijke <code>.PARTIAL</code> scratchbestand, waardoor u vrijwel zeker beschadigde gegevens krijgt.", "f_partial": "Om een bestand dat momenteel wordt geüpload veilig te downloaden, klikt u op het bestand met dezelfde bestandsnaam, maar zonder de bestandsextensie <code>.PARTIAL</code>. Druk op Annuleren of Escape om dit te doen.\n\nAls u op OK / Enter drukt, wordt deze waarschuwing genegeerd en gaat u verder met het downloaden van het gedeeltelijke <code>.PARTIAL</code> scratchbestand, waardoor u vrijwel zeker beschadigde gegevens krijgt.",

View file

@ -331,6 +331,7 @@ Ls.nno = {
"mm_eunk": "Ukjent feil", "mm_eunk": "Ukjent feil",
"mm_e404": "Avspeling feilet: Fil ikkje funnet.", "mm_e404": "Avspeling feilet: Fil ikkje funnet.",
"mm_e403": "Avspeling feilet: Høve nekta.\n\nKanskje du blei logget ut?\nPrøv å trykk F5 for å laste sida på nytt.", "mm_e403": "Avspeling feilet: Høve nekta.\n\nKanskje du blei logget ut?\nPrøv å trykk F5 for å laste sida på nytt.",
"mm_e415": "Avspeling feilet: Kunne ikkje konvertere fila, sjekk serverloggen.",
"mm_e500": "Avspeling feilet: Rusk i maskineriet, sjekk serverloggen.", "mm_e500": "Avspeling feilet: Rusk i maskineriet, sjekk serverloggen.",
"mm_e5xx": "Avspeling feilet: ", "mm_e5xx": "Avspeling feilet: ",
"mm_nof": "finn ikkje flere songer i nærheita", "mm_nof": "finn ikkje flere songer i nærheita",
@ -350,6 +351,7 @@ Ls.nno = {
"f_anota": "kun {0} av totalt {1} element blei markert;\nfor å velje alt må du bla åt bunnen av mappa først", "f_anota": "kun {0} av totalt {1} element blei markert;\nfor å velje alt må du bla åt bunnen av mappa først",
"f_dls": 'lenkane i denne mappa er no\nomgjort åt nedlastingsknappar', "f_dls": 'lenkane i denne mappa er no\nomgjort åt nedlastingsknappar',
"f_dl_nd": 'hoppar over mappe (bruk zip/tar-nedlasting i staden):\n',
"f_partial": "For å laste ned ei fil som enda ikkje er ferdig opplasta, klikk på filen som har same filnamn som denne, men uten <code>.PARTIAL</code> på slutten. Da vil serveren passe på at nedlastinga går bra. Derfor anbefalast det sterkt å trykkje AVBRYT eller Escape-tasten.\n\nViss du verkelig ønskjer å laste ned denne <code>.PARTIAL</code>-filen på ein ukontrollert måte, trykk OK / Enter for å ignorere denne advarselen. Slik vil du høgst sannsynleg motta korrupt data.", "f_partial": "For å laste ned ei fil som enda ikkje er ferdig opplasta, klikk på filen som har same filnamn som denne, men uten <code>.PARTIAL</code> på slutten. Da vil serveren passe på at nedlastinga går bra. Derfor anbefalast det sterkt å trykkje AVBRYT eller Escape-tasten.\n\nViss du verkelig ønskjer å laste ned denne <code>.PARTIAL</code>-filen på ein ukontrollert måte, trykk OK / Enter for å ignorere denne advarselen. Slik vil du høgst sannsynleg motta korrupt data.",

View file

@ -331,6 +331,7 @@ Ls.nor = {
"mm_eunk": "Ukjent feil", "mm_eunk": "Ukjent feil",
"mm_e404": "Avspilling feilet: Fil ikke funnet.", "mm_e404": "Avspilling feilet: Fil ikke funnet.",
"mm_e403": "Avspilling feilet: Tilgang nektet.\n\nKanskje du ble logget ut?\nPrøv å trykk F5 for å laste siden på nytt.", "mm_e403": "Avspilling feilet: Tilgang nektet.\n\nKanskje du ble logget ut?\nPrøv å trykk F5 for å laste siden på nytt.",
"mm_e415": "Avspilling feilet: Kunne ikke konvertere filen, sjekk serverloggen.",
"mm_e500": "Avspilling feilet: Rusk i maskineriet, sjekk serverloggen.", "mm_e500": "Avspilling feilet: Rusk i maskineriet, sjekk serverloggen.",
"mm_e5xx": "Avspilling feilet: ", "mm_e5xx": "Avspilling feilet: ",
"mm_nof": "finner ikke flere sanger i nærheten", "mm_nof": "finner ikke flere sanger i nærheten",
@ -350,6 +351,7 @@ Ls.nor = {
"f_anota": "kun {0} av totalt {1} elementer ble markert;\nfor å velge alt må du bla til bunnen av mappen først", "f_anota": "kun {0} av totalt {1} elementer ble markert;\nfor å velge alt må du bla til bunnen av mappen først",
"f_dls": 'linkene i denne mappen er nå\nomgjort til nedlastningsknapper', "f_dls": 'linkene i denne mappen er nå\nomgjort til nedlastningsknapper',
"f_dl_nd": 'hopper over mappe (bruk zip/tar-nedlasting i stedet):\n',
"f_partial": "For å laste ned en fil som enda ikke er ferdig opplastet, klikk på filen som har samme filnavn som denne, men uten <code>.PARTIAL</code> på slutten. Da vil serveren passe på at nedlastning går bra. Derfor anbefales det sterkt å trykke AVBRYT eller Escape-tasten.\n\nHvis du virkelig ønsker å laste ned denne <code>.PARTIAL</code>-filen på en ukontrollert måte, trykk OK / Enter for å ignorere denne advarselen. Slik vil du høyst sannsynlig motta korrupt data.", "f_partial": "For å laste ned en fil som enda ikke er ferdig opplastet, klikk på filen som har samme filnavn som denne, men uten <code>.PARTIAL</code> på slutten. Da vil serveren passe på at nedlastning går bra. Derfor anbefales det sterkt å trykke AVBRYT eller Escape-tasten.\n\nHvis du virkelig ønsker å laste ned denne <code>.PARTIAL</code>-filen på en ukontrollert måte, trykk OK / Enter for å ignorere denne advarselen. Slik vil du høyst sannsynlig motta korrupt data.",

View file

@ -337,6 +337,7 @@ Ls.pol = {
"mm_eunk": "Nieznany błąd", "mm_eunk": "Nieznany błąd",
"mm_e404": "Nie można odtworzyć; błąd 404: Nie znaleziono pliku.", "mm_e404": "Nie można odtworzyć; błąd 404: Nie znaleziono pliku.",
"mm_e403": "Nie można odtworzyć; błąd 403: Odmowa dostępu.\n\nSpróbuj przeładować stronę (F5), może cię wylogowało", "mm_e403": "Nie można odtworzyć; błąd 403: Odmowa dostępu.\n\nSpróbuj przeładować stronę (F5), może cię wylogowało",
"mm_e415": "Nie można odtworzyć; błąd 415: Konwersja pliku nie powiodła się; sprawdź logi serwera.", //m
"mm_e500": "Nie można odtworzyć; błąd 500: Sprawdź logi serwera.", "mm_e500": "Nie można odtworzyć; błąd 500: Sprawdź logi serwera.",
"mm_e5xx": "Nie można odtworzyć; błąd serwera", "mm_e5xx": "Nie można odtworzyć; błąd serwera",
"mm_nof": "nie znaleziono więcej plików audio", "mm_nof": "nie znaleziono więcej plików audio",
@ -356,6 +357,7 @@ Ls.pol = {
"f_anota": "{0} z {1} elementów zostało wybranych;\naby pokazać cały folder, zjedź na dół", "f_anota": "{0} z {1} elementów zostało wybranych;\naby pokazać cały folder, zjedź na dół",
"f_dls": 'linki do plików w aktualnym folderze\nzostały zmienione w linki pobierania', "f_dls": 'linki do plików w aktualnym folderze\nzostały zmienione w linki pobierania',
"f_dl_nd": 'pomijanie folderu (użyj zamiast tego pobierania zip/tar):\n', //m
"f_partial": "Aby bezpiecznie pobrać plik, który aktualnie jest przesyłany, wybierz plik o tej samej nazwie, lecz bez rozszerzenia <code>.PARTIAL</code>. Żeby to zrobić, naciśnij ANULUJ lub klawisz ESC.\n\nWciśnięcie OK / Enter zignoruje to ostrzeżenie i pobierze plik tymczasowy <code>.PARTIAL</code>, który prawie z pewnością będzie zepsuty", "f_partial": "Aby bezpiecznie pobrać plik, który aktualnie jest przesyłany, wybierz plik o tej samej nazwie, lecz bez rozszerzenia <code>.PARTIAL</code>. Żeby to zrobić, naciśnij ANULUJ lub klawisz ESC.\n\nWciśnięcie OK / Enter zignoruje to ostrzeżenie i pobierze plik tymczasowy <code>.PARTIAL</code>, który prawie z pewnością będzie zepsuty",

View file

@ -334,6 +334,7 @@ Ls.por = {
"mm_eunk": "Erro Desconhecido", "mm_eunk": "Erro Desconhecido",
"mm_e404": "Não foi possível reproduzir áudio; erro 404: Arquivo não encontrado.", "mm_e404": "Não foi possível reproduzir áudio; erro 404: Arquivo não encontrado.",
"mm_e403": "Não foi possível reproduzir áudio; erro 403: Acesso negado.\n\nTente pressionar F5 para recarregar, talvez você tenha saído da conta", "mm_e403": "Não foi possível reproduzir áudio; erro 403: Acesso negado.\n\nTente pressionar F5 para recarregar, talvez você tenha saído da conta",
"mm_e415": "Não foi possível reproduzir áudio; erro 415: Falha na conversão do ficheiro; verifique os logs do servidor.", //m
"mm_e500": "Não foi possível reproduzir áudio; erro 500: Verifique os logs do servidor.", "mm_e500": "Não foi possível reproduzir áudio; erro 500: Verifique os logs do servidor.",
"mm_e5xx": "Não foi possível reproduzir áudio; erro do servidor ", "mm_e5xx": "Não foi possível reproduzir áudio; erro do servidor ",
"mm_nof": "não encontrando mais arquivos de áudio por perto", "mm_nof": "não encontrando mais arquivos de áudio por perto",
@ -353,6 +354,7 @@ Ls.por = {
"f_anota": "apenas {0} dos {1} itens foram selecionados;\npara selecionar a pasta inteira, primeiro role para o final", "f_anota": "apenas {0} dos {1} itens foram selecionados;\npara selecionar a pasta inteira, primeiro role para o final",
"f_dls": 'os links de arquivo na pasta atual foram\nalterados para links de download', "f_dls": 'os links de arquivo na pasta atual foram\nalterados para links de download',
"f_dl_nd": 'a ignorar pasta (use o download zip/tar em vez disso):\n', //m
"f_partial": "Para baixar com segurança um arquivo que está sendo enviado, por favor, clique no arquivo que tem o mesmo nome, mas sem a extensão <code>.PARTIAL</code>. Por favor, pressione CANCELAR ou Escape para fazer isso.\n\nPressionar OK / Enter irá ignorar este aviso e continuar baixando o arquivo temporário <code>.PARTIAL</code>, o que quase certamente lhe dará dados corrompidos.", "f_partial": "Para baixar com segurança um arquivo que está sendo enviado, por favor, clique no arquivo que tem o mesmo nome, mas sem a extensão <code>.PARTIAL</code>. Por favor, pressione CANCELAR ou Escape para fazer isso.\n\nPressionar OK / Enter irá ignorar este aviso e continuar baixando o arquivo temporário <code>.PARTIAL</code>, o que quase certamente lhe dará dados corrompidos.",

View file

@ -334,6 +334,7 @@ Ls.rus = {
"mm_eunk": "Неопознанная ошибка", "mm_eunk": "Неопознанная ошибка",
"mm_e404": "Не удалось воспроизвести аудио; ошибка 404: Файл не найден.", "mm_e404": "Не удалось воспроизвести аудио; ошибка 404: Файл не найден.",
"mm_e403": "Не удалось воспроизвести аудио; ошибка 403: Доступ запрещён.\n\nПопробуйте перезагрузить страницу, возможно, ваша сессия истекла", "mm_e403": "Не удалось воспроизвести аудио; ошибка 403: Доступ запрещён.\n\nПопробуйте перезагрузить страницу, возможно, ваша сессия истекла",
"mm_e415": "Не удалось воспроизвести аудио; ошибка 415: Сбой преобразования файла; проверьте логи сервера.", //m
"mm_e500": "Не удалось воспроизвести аудио; ошибка 500: Проверьте логи сервера.", "mm_e500": "Не удалось воспроизвести аудио; ошибка 500: Проверьте логи сервера.",
"mm_e5xx": "Не удалось воспроизвести аудио; ошибка сервера ", "mm_e5xx": "Не удалось воспроизвести аудио; ошибка сервера ",
"mm_nof": "больше аудио-файлов не найдено", "mm_nof": "больше аудио-файлов не найдено",
@ -353,6 +354,7 @@ Ls.rus = {
"f_anota": "только {0} из {1} файлов было выделено;\nчтобы выделить всё папку, отмотайте до низа", "f_anota": "только {0} из {1} файлов было выделено;\nчтобы выделить всё папку, отмотайте до низа",
"f_dls": 'ссылки на файлы в данной папке были\nзаменены ссылками на скачивание', "f_dls": 'ссылки на файлы в данной папке были\nзаменены ссылками на скачивание',
"f_dl_nd": 'пропуск папки (используйте загрузку zip/tar вместо этого):\n', //m
"f_partial": "Чтобы безопасно скачать файл, который в текущий момент загружается, нажмите на файл с таким же названием, но без расширения <code>.PARTIAL</code>. Пожалуйста, нажмите Отмена или ESC, чтобы сделать это.\n\nПри нажатии OK / Enter, вы скачаете этот временный файл, который с огромной вероятностью содержит лишь неполные данные.", "f_partial": "Чтобы безопасно скачать файл, который в текущий момент загружается, нажмите на файл с таким же названием, но без расширения <code>.PARTIAL</code>. Пожалуйста, нажмите Отмена или ESC, чтобы сделать это.\n\nПри нажатии OK / Enter, вы скачаете этот временный файл, который с огромной вероятностью содержит лишь неполные данные.",

View file

@ -333,6 +333,7 @@ Ls.spa = {
"mm_eunk": "Error desconocido", "mm_eunk": "Error desconocido",
"mm_e404": "No se pudo reproducir el audio; error 404: Archivo no encontrado.", "mm_e404": "No se pudo reproducir el audio; error 404: Archivo no encontrado.",
"mm_e403": "No se pudo reproducir el audio; error 403: Acceso denegado.\n\nIntenta pulsar F5 para recargar, quizás se cerró tu sesión", "mm_e403": "No se pudo reproducir el audio; error 403: Acceso denegado.\n\nIntenta pulsar F5 para recargar, quizás se cerró tu sesión",
"mm_e415": "No se pudo reproducir el audio; error 415: Falló la conversión del archivo; revisa los registros del servidor.", //m
"mm_e500": "No se pudo reproducir el audio; error 500: Revisa los registros del servidor.", "mm_e500": "No se pudo reproducir el audio; error 500: Revisa los registros del servidor.",
"mm_e5xx": "No se pudo reproducir el audio; error del servidor ", "mm_e5xx": "No se pudo reproducir el audio; error del servidor ",
"mm_nof": "no se encuentran más archivos de audio cerca", "mm_nof": "no se encuentran más archivos de audio cerca",
@ -352,6 +353,7 @@ Ls.spa = {
"f_anota": "solo {0} de los {1} elementos fueron seleccionados;\npara seleccionar la carpeta completa, primero desplázate hasta el final", "f_anota": "solo {0} de los {1} elementos fueron seleccionados;\npara seleccionar la carpeta completa, primero desplázate hasta el final",
"f_dls": "los enlaces a archivos en la carpeta actual se han\nconvertido en enlaces de descarga", "f_dls": "los enlaces a archivos en la carpeta actual se han\nconvertido en enlaces de descarga",
"f_dl_nd": 'omitiendo carpeta (use la descarga zip/tar en su lugar):\n', //m
"f_partial": "Para descargar de forma segura un archivo que se está subiendo actualmente, por favor haz clic en el archivo con el mismo nombre, pero sin la extensión <code>.PARTIAL</code>. Por favor, pulsa CANCELAR o Escape para hacer esto.\n\nPulsar ACEPTAR o Intro ignorará esta advertencia y continuará descargando el archivo temporal <code>.PARTIAL</code>, lo que casi con toda seguridad te dará datos corruptos.", "f_partial": "Para descargar de forma segura un archivo que se está subiendo actualmente, por favor haz clic en el archivo con el mismo nombre, pero sin la extensión <code>.PARTIAL</code>. Por favor, pulsa CANCELAR o Escape para hacer esto.\n\nPulsar ACEPTAR o Intro ignorará esta advertencia y continuará descargando el archivo temporal <code>.PARTIAL</code>, lo que casi con toda seguridad te dará datos corruptos.",

View file

@ -334,6 +334,7 @@ Ls.swe = {
"mm_eunk": "Okänt Fel", "mm_eunk": "Okänt Fel",
"mm_e404": "Kunde inte spela upp ljudfil; fel 404: Filen hittades inte.", "mm_e404": "Kunde inte spela upp ljudfil; fel 404: Filen hittades inte.",
"mm_e403": "Kunde inte spela upp ljudfil; fel 403: Åtkomst nekad.\n\nProva att ladda om sidan med F5, du kanske blev utloggad", "mm_e403": "Kunde inte spela upp ljudfil; fel 403: Åtkomst nekad.\n\nProva att ladda om sidan med F5, du kanske blev utloggad",
"mm_e415": "Kunde inte spela upp ljudfil; fel 415: Filkonvertering misslyckades; kolla serverloggen.", //m
"mm_e500": "Kunde inte spela upp ljudfil; fel 500: Kolla serverloggen.", "mm_e500": "Kunde inte spela upp ljudfil; fel 500: Kolla serverloggen.",
"mm_e5xx": "Kunde inte spela upp ljudfil; serverfel ", "mm_e5xx": "Kunde inte spela upp ljudfil; serverfel ",
"mm_nof": "hittade inga fler låtar i närheten", "mm_nof": "hittade inga fler låtar i närheten",
@ -353,6 +354,7 @@ Ls.swe = {
"f_anota": "endast {0} av {1} objekt valdes;\nför att välja hela mappen, skrolla först till botten av vyn", "f_anota": "endast {0} av {1} objekt valdes;\nför att välja hela mappen, skrolla först till botten av vyn",
"f_dls": 'fillänkarna i den öppna mappen har\nbytts till nedladdningslänkar', "f_dls": 'fillänkarna i den öppna mappen har\nbytts till nedladdningslänkar',
"f_dl_nd": 'hoppar över mapp (använd zip/tar-nedladdning istället):\n', //m
"f_partial": "För att säkert ladda ner en fil som för tillfället laddas upp, vänligen klicka på filen som har samma filnamn men utan <code>.PARTIAL</code>-filändelsen. Vänligen tryck Avbryt eller Escape för att göra detta.\n\nOm du bortser från denna varning och trycker OK eller Enter kommer den tillfälliga <code>.PARTIAL</code>-filen istället att laddas ner, vilket är nästan garanterat att ge dig korrumperad data.", "f_partial": "För att säkert ladda ner en fil som för tillfället laddas upp, vänligen klicka på filen som har samma filnamn men utan <code>.PARTIAL</code>-filändelsen. Vänligen tryck Avbryt eller Escape för att göra detta.\n\nOm du bortser från denna varning och trycker OK eller Enter kommer den tillfälliga <code>.PARTIAL</code>-filen istället att laddas ner, vilket är nästan garanterat att ge dig korrumperad data.",

View file

@ -334,6 +334,7 @@ Ls.tur = {
"mm_eunk": "Bilinmeyen Hata", "mm_eunk": "Bilinmeyen Hata",
"mm_e404": "Ses oynatılamadı; hata 404: Dosya bulunamadı.", "mm_e404": "Ses oynatılamadı; hata 404: Dosya bulunamadı.",
"mm_e403": "Ses oynatılamadı; hata 403: Erişim reddedildi.\n\nYeniden yüklemek için F5 tuşuna basın, oturumunuz kapanmış olabilir.", "mm_e403": "Ses oynatılamadı; hata 403: Erişim reddedildi.\n\nYeniden yüklemek için F5 tuşuna basın, oturumunuz kapanmış olabilir.",
"mm_e415": "Ses oynatılamadı; hata 415: Dosya dönüştürme başarısız oldu; sunucu günlüklerini kontrol edin.", //m
"mm_e500": "Ses oynatılamadı; hata 500: Sunucu günlüklerini kontrol edin.", "mm_e500": "Ses oynatılamadı; hata 500: Sunucu günlüklerini kontrol edin.",
"mm_e5xx": "Ses oynatılamadı; sunucu hatası ", "mm_e5xx": "Ses oynatılamadı; sunucu hatası ",
"mm_nof": "yakınlarda başka ses dosyası bulunamadı", "mm_nof": "yakınlarda başka ses dosyası bulunamadı",
@ -353,6 +354,7 @@ Ls.tur = {
"f_anota": "{1} dosyadan sadece {0} tanesi seçildi;\nTüm klasörü seçmek için önce en alta kaydırın.", "f_anota": "{1} dosyadan sadece {0} tanesi seçildi;\nTüm klasörü seçmek için önce en alta kaydırın.",
"f_dls": 'bu klasördeki dosya linkleri\nindirme linklerine dönüştürüldü', "f_dls": 'bu klasördeki dosya linkleri\nindirme linklerine dönüştürüldü',
"f_dl_nd": 'klasör atlanıyor (bunun yerine zip/tar indirmesini kullanın):\n', //m
"f_partial": "Mevcutta yüklenen bir dosyayı güvenli bir şekilde indirmek için lütfen aynı adlı ama <code>.PARTIAL</code> uzantısına sahip olmayan dosyaya tıklayın. Lütfen bunu yapmak için İPTAL veya Esc tuşuna basın.\n\nTamam / Enter tuşuna basmak, bu uyarıyı yok sayacak ve bunun yerine <code>.PARTIAL</code> geçici dosyasını indirmeye devam edecektir ki bu da elinize bozuk veriler sunacaktır.", "f_partial": "Mevcutta yüklenen bir dosyayı güvenli bir şekilde indirmek için lütfen aynı adlı ama <code>.PARTIAL</code> uzantısına sahip olmayan dosyaya tıklayın. Lütfen bunu yapmak için İPTAL veya Esc tuşuna basın.\n\nTamam / Enter tuşuna basmak, bu uyarıyı yok sayacak ve bunun yerine <code>.PARTIAL</code> geçici dosyasını indirmeye devam edecektir ki bu da elinize bozuk veriler sunacaktır.",

View file

@ -334,6 +334,7 @@ Ls.ukr = {
"mm_eunk": "Невідома помилка", "mm_eunk": "Невідома помилка",
"mm_e404": "Не вдалося відтворити аудіо; помилка 404: Файл не знайдено.", "mm_e404": "Не вдалося відтворити аудіо; помилка 404: Файл не знайдено.",
"mm_e403": "Не вдалося відтворити аудіо; помилка 403: Доступ заборонено.\n\nСпробуйте натиснути F5 для перезавантаження, можливо, ви вийшли з системи", "mm_e403": "Не вдалося відтворити аудіо; помилка 403: Доступ заборонено.\n\nСпробуйте натиснути F5 для перезавантаження, можливо, ви вийшли з системи",
"mm_e415": "Не вдалося відтворити аудіо; помилка 415: Не вдалося перетворити файл; перевірте логи сервера.", //m
"mm_e500": "Не вдалося відтворити аудіо; помилка 500: Перевірте логи сервера.", "mm_e500": "Не вдалося відтворити аудіо; помилка 500: Перевірте логи сервера.",
"mm_e5xx": "Не вдалося відтворити аудіо; помилка сервера ", "mm_e5xx": "Не вдалося відтворити аудіо; помилка сервера ",
"mm_nof": "не знаходжу більше аудіо файлів поблизу", "mm_nof": "не знаходжу більше аудіо файлів поблизу",
@ -353,6 +354,7 @@ Ls.ukr = {
"f_anota": "лише {0} з {1} елементів було вибрано;\nщоб вибрати всю папку, спочатку прокрутіть до низу", "f_anota": "лише {0} з {1} елементів було вибрано;\nщоб вибрати всю папку, спочатку прокрутіть до низу",
"f_dls": 'посилання на файли в поточній папці були\nзмінені на посилання для завантаження', "f_dls": 'посилання на файли в поточній папці були\nзмінені на посилання для завантаження',
"f_dl_nd": 'пропуск папки (скористайтеся завантаженням zip/tar замість цього):\n', //m
"f_partial": "Щоб безпечно завантажити файл, який зараз завантажується, будь ласка, клацніть на файл, який має таке саме ім'я, але без розширення <code>.PARTIAL</code>. Будь ласка, натисніть Скасувати або Escape, щоб зробити це.\n\nНатиснення Гаразд / Enter проігнорує це попередження і продовжить завантаження <code>.PARTIAL</code> робочого файлу замість цього, що майже напевно дасть вам пошкоджені дані.", "f_partial": "Щоб безпечно завантажити файл, який зараз завантажується, будь ласка, клацніть на файл, який має таке саме ім'я, але без розширення <code>.PARTIAL</code>. Будь ласка, натисніть Скасувати або Escape, щоб зробити це.\n\nНатиснення Гаразд / Enter проігнорує це попередження і продовжить завантаження <code>.PARTIAL</code> робочого файлу замість цього, що майже напевно дасть вам пошкоджені дані.",

View file

@ -112,7 +112,6 @@ Ls.vie = {
"ot_search": "tìm kiếm các tệp theo thuộc tính, đường dẫn / tên, tag nhạc hoặc bất kỳ sự kết hợp nào của chúng$N$N&lt;code&gt;foo bar&lt;/code&gt; = phải chứa cả «foo» và «bar»,$N&lt;code&gt;foo -bar&lt;/code&gt; = phải chứa «foo» nhưng không chứa «bar»,$N&lt;code&gt;^yana .opus$&lt;/code&gt; = bắt đầu bằng «yana» và là tệp «opus»$N&lt;code&gt;&quot;try unite&quot;&lt;/code&gt; = chứa chính xác «try unite»$N$Nđịnh dạng ngày là iso-8601, như$N&lt;code&gt;2009-12-31&lt;/code&gt; hoặc &lt;code&gt;2020-09-12 23:30:00&lt;/code&gt;", "ot_search": "tìm kiếm các tệp theo thuộc tính, đường dẫn / tên, tag nhạc hoặc bất kỳ sự kết hợp nào của chúng$N$N&lt;code&gt;foo bar&lt;/code&gt; = phải chứa cả «foo» và «bar»,$N&lt;code&gt;foo -bar&lt;/code&gt; = phải chứa «foo» nhưng không chứa «bar»,$N&lt;code&gt;^yana .opus$&lt;/code&gt; = bắt đầu bằng «yana» và là tệp «opus»$N&lt;code&gt;&quot;try unite&quot;&lt;/code&gt; = chứa chính xác «try unite»$N$Nđịnh dạng ngày là iso-8601, như$N&lt;code&gt;2009-12-31&lt;/code&gt; hoặc &lt;code&gt;2020-09-12 23:30:00&lt;/code&gt;",
"ot_unpost": "unpost: xoá các tệp đã tải lên gần đây hoặc huỷ những tệp đang tải dở", "ot_unpost": "unpost: xoá các tệp đã tải lên gần đây hoặc huỷ những tệp đang tải dở",
"ot_bup": "bup: trình tải lên cơ bản, hỗ trợ cả Netscape 4.0", "ot_bup": "bup: trình tải lên cơ bản, hỗ trợ cả Netscape 4.0",
"ot_mkdir": "mkdir: tạo thư mục mới", "ot_mkdir": "mkdir: tạo thư mục mới",
@ -198,13 +197,10 @@ Ls.vie = {
"ul_flagblk": "tệp đã được thêm vào hàng chờ</b><br>tuy vậy đang có một tiến trình up2k đang chạy ở một tab khác<br>vui lòng đợi cho đến khi tiến trình đó hoàn tất hoặc bị hủy", "ul_flagblk": "tệp đã được thêm vào hàng chờ</b><br>tuy vậy đang có một tiến trình up2k đang chạy ở một tab khác<br>vui lòng đợi cho đến khi tiến trình đó hoàn tất hoặc bị hủy",
"ul_btnlk": "cài đặt của máy chủ đã khóa tùy chọn ở trạng thái này", "ul_btnlk": "cài đặt của máy chủ đã khóa tùy chọn ở trạng thái này",
"udt_up": "Tải lên", "udt_up": "Tải lên",
"udt_srch": "Tìm kiếm", "udt_srch": "Tìm kiếm",
"udt_drop": "thả vào đây", "udt_drop": "thả vào đây",
"u_nav_m": '<h6>chọn phương thức tải lên</h6><code>Enter</code> = Tệp (một hoặc nhiều)\n<code>ESC</code> = Một thư mục (kèm thư mục con)', "u_nav_m": '<h6>chọn phương thức tải lên</h6><code>Enter</code> = Tệp (một hoặc nhiều)\n<code>ESC</code> = Một thư mục (kèm thư mục con)',
"u_nav_b": '<a href="#" id="modal-ok">Tệp</a><a href="#" id="modal-ng">Một thư mục</a>', "u_nav_b": '<a href="#" id="modal-ok">Tệp</a><a href="#" id="modal-ng">Một thư mục</a>',
@ -347,6 +343,7 @@ Ls.vie = {
"mm_eunk": "Lỗi không xác định", "mm_eunk": "Lỗi không xác định",
"mm_e404": "Không thể phát âm thanh; lỗi 404: Không tìm thấy tệp.", "mm_e404": "Không thể phát âm thanh; lỗi 404: Không tìm thấy tệp.",
"mm_e403": "Không thể phát âm thanh; lỗi 403: Từ chối truy cập.\n\nThử nhấn F5 để tải lại, có thể bạn đã đăng xuất", "mm_e403": "Không thể phát âm thanh; lỗi 403: Từ chối truy cập.\n\nThử nhấn F5 để tải lại, có thể bạn đã đăng xuất",
"mm_e415": "Không thể phát âm thanh; lỗi 415: Chuyển đổi tệp thất bại; kiểm tra nhật ký máy chủ.", //m
"mm_e500": "Không thể phát âm thanh; lỗi 500: Kiểm tra nhật ký máy chủ.", "mm_e500": "Không thể phát âm thanh; lỗi 500: Kiểm tra nhật ký máy chủ.",
"mm_e5xx": "Không thể phát âm thanh; lỗi máy chủ ", "mm_e5xx": "Không thể phát âm thanh; lỗi máy chủ ",
"mm_nof": "không tìm thấy thêm tệp âm thanh nào gần đó", "mm_nof": "không tìm thấy thêm tệp âm thanh nào gần đó",
@ -354,6 +351,7 @@ Ls.vie = {
"mm_scank": "Đã tìm thấy bài nhạc tiếp theo:", "mm_scank": "Đã tìm thấy bài nhạc tiếp theo:",
"mm_uncache": "đã xoá bộ nhớ đệm; tất cả bài nhạc sẽ được tải lại khi phát tiếp", "mm_uncache": "đã xoá bộ nhớ đệm; tất cả bài nhạc sẽ được tải lại khi phát tiếp",
"mm_hnf": "bài nhạc này không còn tồn tại nữa", "mm_hnf": "bài nhạc này không còn tồn tại nữa",
"im_hnf": "hình ảnh này không còn tồn tại nữa", "im_hnf": "hình ảnh này không còn tồn tại nữa",
"f_empty": 'thư mục này trống', "f_empty": 'thư mục này trống',
@ -365,6 +363,7 @@ Ls.vie = {
"f_anota": "chỉ {0} trong {1} tệp được chọn;\nđể chọn toàn bộ thư mục, trước tiên hãy kéo xuống cuối", "f_anota": "chỉ {0} trong {1} tệp được chọn;\nđể chọn toàn bộ thư mục, trước tiên hãy kéo xuống cuối",
"f_dls": 'những đường dẫn đến tệp trong thư mục này\nđã được chuyển thành đường dẫn tải trực tiếp', "f_dls": 'những đường dẫn đến tệp trong thư mục này\nđã được chuyển thành đường dẫn tải trực tiếp',
"f_dl_nd": 'bỏ qua thư mục (hãy dùng tải zip/tar thay thế):\n', //m
"f_partial": "Để tải an toàn một tệp đang được tải lên, hãy bấm vào tệp có cùng tên nhưng *không* có phần mở rộng <code>.PARTIAL</code>. Hãy nhấn CANCEL hoặc Escape để thực hiện.\n\nNếu nhấn OK / Enter, cảnh báo sẽ bị bỏ qua và bạn sẽ tải tệp tạm <code>.PARTIAL</code> thay vào đó, gần như chắc chắn dẫn đến dữ liệu bị hỏng.", "f_partial": "Để tải an toàn một tệp đang được tải lên, hãy bấm vào tệp có cùng tên nhưng *không* có phần mở rộng <code>.PARTIAL</code>. Hãy nhấn CANCEL hoặc Escape để thực hiện.\n\nNếu nhấn OK / Enter, cảnh báo sẽ bị bỏ qua và bạn sẽ tải tệp tạm <code>.PARTIAL</code> thay vào đó, gần như chắc chắn dẫn đến dữ liệu bị hỏng.",
@ -378,7 +377,6 @@ Ls.vie = {
"fc_emore": "hãy chọn ít nhất một mục để cắt", "fc_emore": "hãy chọn ít nhất một mục để cắt",
"fcp_emore": "hãy chọn ít nhất một mục để sao chép vào bảng nhớ tạm", "fcp_emore": "hãy chọn ít nhất một mục để sao chép vào bảng nhớ tạm",
"fs_sc": "chia sẻ thư mục hiện tại", "fs_sc": "chia sẻ thư mục hiện tại",
"fs_ss": "chia sẻ các tệp đã chọn", "fs_ss": "chia sẻ các tệp đã chọn",
"fs_just1d": "bạn không thể chọn nhiều hơn một thư mục,\nhoặc trộn tệp và thư mục trong cùng một lựa chọn", "fs_just1d": "bạn không thể chọn nhiều hơn một thư mục,\nhoặc trộn tệp và thư mục trong cùng một lựa chọn",
@ -420,7 +418,6 @@ Ls.vie = {
"fr_efail": "đổi tên thất bại:\n", "fr_efail": "đổi tên thất bại:\n",
"fr_nchg": "{0} tên mới đã bị chỉnh sửa do <code>win</code> và/hoặc <code>no /</code>\n\nTiếp tục với các tên đã chỉnh sửa?", "fr_nchg": "{0} tên mới đã bị chỉnh sửa do <code>win</code> và/hoặc <code>no /</code>\n\nTiếp tục với các tên đã chỉnh sửa?",
"fd_ok": "hoàn tất xoá", "fd_ok": "hoàn tất xoá",
"fd_err": "xoá gặp lỗi:\n", "fd_err": "xoá gặp lỗi:\n",
"fd_none": "không xóa được mục nào; có thể bị chặn bởi cấu hình máy chủ (xbd)?", "fd_none": "không xóa được mục nào; có thể bị chặn bởi cấu hình máy chủ (xbd)?",
@ -460,7 +457,6 @@ Ls.vie = {
"nmd_i1": "hãy thêm cả phần mở rộng tệp bạn muốn, ví dụ <code>.md</code>", "nmd_i1": "hãy thêm cả phần mở rộng tệp bạn muốn, ví dụ <code>.md</code>",
"nmd_i2": "bạn chỉ có thể tạo tệp <code>.md</code> vì bạn không có quyền xóa", "nmd_i2": "bạn chỉ có thể tạo tệp <code>.md</code> vì bạn không có quyền xóa",
"tv_load": "Đang tải tài liệu văn bản:\n\n{0}\n\n{1}% ({2} / {3} MiB)", "tv_load": "Đang tải tài liệu văn bản:\n\n{0}\n\n{1}% ({2} / {3} MiB)",
"tv_xe1": "không thể tải tệp văn bản:\n\nlỗi ", "tv_xe1": "không thể tải tệp văn bản:\n\nlỗi ",
"tv_xe2": "404, không tìm thấy tệp", "tv_xe2": "404, không tìm thấy tệp",
@ -478,9 +474,6 @@ Ls.vie = {
"tvt_ctail": "giải mã màu terminal (ansi escape codes)\">🌈", "tvt_ctail": "giải mã màu terminal (ansi escape codes)\">🌈",
"tvt_ntail": "giới hạn scrollback (số byte văn bản được giữ trong bộ nhớ)", "tvt_ntail": "giới hạn scrollback (số byte văn bản được giữ trong bộ nhớ)",
"m3u_add1": "đã thêm 1 bài vào danh sách phát m3u", "m3u_add1": "đã thêm 1 bài vào danh sách phát m3u",
"m3u_addn": "đã thêm {0} bài vào danh sách phát m3u", "m3u_addn": "đã thêm {0} bài vào danh sách phát m3u",
"m3u_clip": "danh sách phát m3u đã được chép vào bảng nhớ tạm\n\nbạn nên tạo một tệp văn bản mới tên bất kỳ.m3u rồi dán nội dung danh sách phát vào đó để có thể phát được", "m3u_clip": "danh sách phát m3u đã được chép vào bảng nhớ tạm\n\nbạn nên tạo một tệp văn bản mới tên bất kỳ.m3u rồi dán nội dung danh sách phát vào đó để có thể phát được",
@ -524,7 +517,6 @@ Ls.vie = {
"s_t1": "tag chứa &nbsp; (^=bắt đầu, kết thúc=$)", "s_t1": "tag chứa &nbsp; (^=bắt đầu, kết thúc=$)",
"s_a1": "thuộc tính metadata cụ thể", "s_a1": "thuộc tính metadata cụ thể",
"md_eshow": "không thể tải", "md_eshow": "không thể tải",
"md_off": "[📜<em>readme</em>] đã tắt trong [⚙️] -- tài liệu bị ẩn", "md_off": "[📜<em>readme</em>] đã tắt trong [⚙️] -- tài liệu bị ẩn",
@ -576,7 +568,6 @@ Ls.vie = {
"un_busy": "đang xóa {0} tệp...", "un_busy": "đang xóa {0} tệp...",
"un_clip": "{0} liên kết đã chép vào bảng nhớ tạm", "un_clip": "{0} liên kết đã chép vào bảng nhớ tạm",
"u_https1": "bạn nên", "u_https1": "bạn nên",
"u_https2": "chuyển sang https", "u_https2": "chuyển sang https",
"u_https3": "để có hiệu suất tốt hơn", "u_https3": "để có hiệu suất tốt hơn",

View file

@ -12,6 +12,8 @@
# p: 3939 # listen on another port # p: 3939 # listen on another port
# ipa: 10.89. # only allow connections from 10.89.* # ipa: 10.89. # only allow connections from 10.89.*
# ipa: 172.16.4.0/23 # ...or only 172.16.4.* and 172.16.5.*
# ipa: lan # ...or allow LAN only; reject internet IPs
# df: 16 # stop accepting uploads if less than 16 GB free disk space # df: 16 # stop accepting uploads if less than 16 GB free disk space
# ver # show copyparty version in the controlpanel # ver # show copyparty version in the controlpanel
# grid # show thumbnails/grid-view by default # grid # show thumbnails/grid-view by default

View file

@ -363,6 +363,7 @@ Ls.hmn = {
"mm_eunk": "Unknown Errol", "mm_eunk": "Unknown Errol",
"mm_e404": "Could not play audio; error 404: File not found.", "mm_e404": "Could not play audio; error 404: File not found.",
"mm_e403": "Could not play audio; error 403: Access denied.\n\nTry pressing F5 to reload, maybe you got logged out", "mm_e403": "Could not play audio; error 403: Access denied.\n\nTry pressing F5 to reload, maybe you got logged out",
"mm_e415": "Could not play audio; error 415: File transcoding failed; check server logs.",
"mm_e500": "Could not play audio; error 500: Check server logs.", "mm_e500": "Could not play audio; error 500: Check server logs.",
"mm_e5xx": "Could not play audio; server error ", "mm_e5xx": "Could not play audio; server error ",
"mm_nof": "not finding any more audio files nearby", "mm_nof": "not finding any more audio files nearby",