diff --git a/.gitignore b/.gitignore index b7b533b4..b70c56b7 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,6 @@ scripts/docker/*.err # nix build output link result + +# IDEA config +.idea/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index edc53c69..a067404f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,13 +6,13 @@ but please: -# do not use AI / LMM when writing code +# do not use AI / LLM when writing code copyparty is 100% organic, free-range, human-written software! > โ you are now entering a no-copilot zone -the *only* place where LMM/AI *may* be accepted is for [localization](https://github.com/9001/copyparty/tree/hovudstraum/docs/rice#translations) if you are fluent and have confirmed that the translation is accurate. +the *only* place where LLM/AI *may* be accepted is for [localization](https://github.com/9001/copyparty/tree/hovudstraum/docs/rice#translations) if you are fluent and have confirmed that the translation is accurate. sorry for the harsh tone, but this is important to me ๐ diff --git a/README.md b/README.md index 8f470a50..e93e4282 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,9 @@ made in Norway ๐ณ๐ด * [upload events](#upload-events) - the older, more powerful approach ([examples](./bin/mtag/)) * [handlers](#handlers) - redefine behavior with plugins ([examples](./bin/handlers/)) * [ip auth](#ip-auth) - autologin based on IP range (CIDR) + * [restrict to ip](#restrict-to-ip) - limit a user to certain IP ranges (CIDR) * [identity providers](#identity-providers) - replace copyparty passwords with oauth and such + * [generic header auth](#generic-header-auth) - other ways to auth by header * [user-changeable passwords](#user-changeable-passwords) - if permitted, users can change their own passwords * [using the cloud as storage](#using-the-cloud-as-storage) - connecting to an aws s3 bucket and similar * [hiding from google](#hiding-from-google) - tell search engines you don't wanna be indexed @@ -110,6 +112,7 @@ made in Norway ๐ณ๐ด * [packages](#packages) - the party might be closer than you think * [arch package](#arch-package) - `pacman -S copyparty` (in [arch linux extra](https://archlinux.org/packages/extra/any/copyparty/)) * [fedora package](#fedora-package) - does not exist yet + * [homebrew formulae](#homebrew-formulae) - `brew install copyparty ffmpeg` * [nix package](#nix-package) - `nix profile install github:9001/copyparty` * [nixos module](#nixos-module) * [browser support](#browser-support) - TLDR: yes @@ -139,6 +142,7 @@ made in Norway ๐ณ๐ด * [copyparty.exe](#copypartyexe) - download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) (win8+) or [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) (win7+) * [zipapp](#zipapp) - another emergency alternative, [copyparty.pyz](https://github.com/9001/copyparty/releases/latest/download/copyparty.pyz) * [install on android](#install-on-android) +* [install on iOS](#install-on-iOS) * [reporting bugs](#reporting-bugs) - ideas for context to include, and where to submit them * [devnotes](#devnotes) - for build instructions etc, see [./docs/devnotes.md](./docs/devnotes.md) @@ -153,6 +157,7 @@ just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/ * or if you cannot install python, you can use [copyparty.exe](#copypartyexe) instead * or install [on arch](#arch-package) โฑ [on NixOS](#nixos-module) โฑ [through nix](#nix-package) * or if you are on android, [install copyparty in termux](#install-on-android) +* or maybe an iPhone or iPad? [install in a-Shell on iOS](#install-on-iOS) * or maybe you have a [synology nas / dsm](./docs/synology-dsm.md) * or if you have [uv](https://docs.astral.sh/uv/) installed, run `uv tool run copyparty` * or if your computer is messed up and nothing else works, [try the pyz](#zipapp) @@ -239,7 +244,7 @@ also see [comparison to similar software](./docs/versus.md) * โ [upnp / zeroconf / mdns / ssdp](#zeroconf) * โ [event hooks](#event-hooks) / script runner * โ [reverse-proxy support](https://github.com/9001/copyparty#reverse-proxy) - * โ cross-platform (Windows, Linux, Macos, Android, FreeBSD, arm32/arm64, ppc64le, s390x, risc-v/riscv64) + * โ cross-platform (Windows, Linux, Macos, Android, iOS, FreeBSD, arm32/arm64, ppc64le, s390x, risc-v/riscv64) * upload * โ basic: plain multipart, ie6 support * โ [up2k](#uploading): js, resumable, multithreaded @@ -262,10 +267,11 @@ also see [comparison to similar software](./docs/versus.md) * โ play video files as audio (converted on server) * โ create and play [m3u8 playlists](#playlists) * โ image gallery with webm player - * โ [textfile browser](#textfile-viewer) with syntax hilighting + * โ [textfile browser](#textfile-viewer) with syntax highlighting * โ realtime streaming of growing files (logfiles and such) * โ [thumbnails](#thumbnails) * โ ...of images using Pillow, pyvips, or FFmpeg + * โ ...of RAW images using rawpy * โ ...of videos using FFmpeg * โ ...of audio (spectrograms) using FFmpeg * โ cache eviction (max-age; maybe max-size eventually) @@ -512,6 +518,8 @@ examples: * replacing the `g` permission with `wg` would let anonymous users upload files, but not see the required filekey to access it * replacing the `g` permission with `wG` would let anonymous users upload files, receiving a working direct link in return +if you want to grant access to all users who are logged in, the group `acct` will always contain all known users, so for example `-v /mnt/music:music:r,@acct` + anyone trying to bruteforce a password gets banned according to `--ban-pw`; default is 24h ban for 9 failed attempts in 1 hour and if you want to use config files instead of commandline args (good!) then here's the same examples as a configfile; save it as `foobar.conf` and use it like this: `python copyparty-sfx.py -c foobar.conf` @@ -537,6 +545,7 @@ and if you want to use config files instead of commandline args (good!) then her accs: r: u1, u2 # only these accounts can read, r: @g1 # (exactly the same, just with a group instead) + r: @acct # (alternatively, ALL users who are logged in) rw: u3 # and only u3 can read-write [/inc] @@ -563,6 +572,8 @@ for example `-v /mnt::r -v /var/empty:web/certs:r` mounts the server folder `/mn the example config file right above this section may explain this better; the first volume `/` is mapped to `/srv` which means http://127.0.0.1:3923/music would try to read `/srv/music` on the server filesystem, but since there's another volume at `/music` mapped to `/mnt/music` then it'll go to `/mnt/music` instead +> โน๏ธ this also works for single files, because files can also be volumes + ## dotfiles @@ -825,7 +836,7 @@ the up2k UI is the epitome of polished intuitive experiences: * `[๐]` switch between upload and [file-search](#file-search) mode * ignore `[๐]` if you add files by dragging them into the browser -and then theres the tabs below it, +and then there's the tabs below it, * `[ok]` is the files which completed successfully * `[ng]` is the ones that failed / got rejected (already exists, ...) * `[done]` shows a combined list of `[ok]` and `[ng]`, chronological order @@ -1057,7 +1068,7 @@ plays almost every audio format there is (if the server has FFmpeg installed fo the following audio formats are usually always playable, even without FFmpeg: `aac|flac|m4a|mp3|ogg|opus|wav` -some hilights: +some highlights: * OS integration; control playback from your phone's lockscreen ([windows](https://user-images.githubusercontent.com/241032/233213022-298a98ba-721a-4cf1-a3d4-f62634bc53d5.png) // [iOS](https://user-images.githubusercontent.com/241032/142711926-0700be6c-3e31-47b3-9928-53722221f722.png) // [android](https://user-images.githubusercontent.com/241032/233212311-a7368590-08c7-4f9f-a1af-48ccf3f36fad.png)) * shows the audio waveform in the seekbar * not perfectly gapless but can get really close (see settings + eq below); good enough to enjoy gapless albums as intended @@ -1288,6 +1299,12 @@ print a qr-code [(screenshot)](https://user-images.githubusercontent.com/241032/ * `--qrl lootbox/?pw=hunter2` appends to the url, linking to the `lootbox` folder with password `hunter2` * `--qrz 1` forces 1x zoom instead of autoscaling to fit the terminal size * 1x may render incorrectly on some terminals/fonts, but 2x should always work +* `--qr-pin 1` makes the qr-code stick to the bottom of the console (never scrolls away) +* `--qr-file qr.txt:1:2` writes a small qr-code to `qr.txt` +* `--qr-file qr.txt:2:2` writes a big qr-code to `qr.txt` +* `--qr-file qr.svg:1:2` writes a vector-graphics qr-code to `qr.svg` +* `--qr-file qr.png:8:4:333333:ffcc55` writes an 8x-magnified yellow-on-gray `qr.png` +* `--qr-file qr.png:8:4::ffffff` writes an 8x-magnified white-on-transparent `qr.png` it uses the server hostname if [mdns](#mdns) is enabled, otherwise it'll use your external ip (default route) unless `--qri` specifies a specific ip-prefix or domain @@ -1311,6 +1328,16 @@ some recommended FTP / FTPS clients; `wark` = example password: * https://rclone.org/ does FTPS with `tls=false explicit_tls=true` * `lftp -u k,wark -p 3921 127.0.0.1 -e ls` * `lftp -u k,wark -p 3990 127.0.0.1 -e 'set ssl:verify-certificate no; ls'` +* `curl ftp://127.0.0.1:3921/` (plaintext ftp) +* `curl --ssl-reqd ftp://127.0.0.1:3990/` (encrypted ftps) + +config file example, which restricts FTP to only use ports 3921 and 12000-12099 so all of those ports must be opened in your firewall: + +```yaml +[global] + ftp: 3921 + ftp-pr: 12000-12099 +``` ## webdav server @@ -1406,6 +1433,7 @@ and some minor issues, * win10 onwards does not allow connecting anonymously / without accounts * python3 only * slow (the builtin webdav support in windows is 5x faster, and rclone-webdav is 30x faster) + * those numbers are specifically for copyparty's smb-server (because it sucks); other smb-servers should be similar to webdav known client bugs: * on win7 only, `--smb1` is much faster than smb2 (default) because it keeps rescanning folders on smb2 @@ -1892,6 +1920,20 @@ repeat the option to map additional subnets **be careful with this one!** if you have a reverseproxy, then you definitely want to make sure you have [real-ip](#real-ip) configured correctly, and it's probably a good idea to nullmap the reverseproxy's IP just in case; so if your reverseproxy is sending requests from `172.24.27.9` then that would be `--ipu=172.24.27.9/32=` +### restrict to ip + +limit a user to certain IP ranges (CIDR) , using the global-option `--ipr` + +for example, if the user `spartacus` should get rejected if they're not connecting from an IP that starts with `192.168.123` or `172.16`, then you can either specify `--ipr=192.168.123.0/24,172.16.0.0/16=spartacus` as a commandline option, or put this in a config file: + +```yaml +[global] + ipr: 192.168.123.0/24,172.16.0.0/16=spartacus +``` + +repeat the option to map additional users + + ## identity providers replace copyparty passwords with oauth and such @@ -1900,6 +1942,10 @@ you can disable the built-in password-based login system, and instead replace it * the regular config-defined users will be used as a fallback for requests which don't include a valid (trusted) IdP username header + * `--auth-ord` configured auth precedence, for example to allow overriding the IdP with a copyparty password + +* the login/logout links/buttons can be replaced with links to your IdP with `--idp-login` and `--idp-logout` , for example `--idp-login /idp/login/?redir={dst}` will expand `{dst}` to the page the user was on when clicking Login + * if your IdP-server is slow, consider `--idp-cookie` and let requests with the cookie `cppws` bypass the IdP; experimental sessions-based feature added for a party some popular identity providers are [Authelia](https://www.authelia.com/) (config-file based) and [authentik](https://goauthentik.io/) (GUI-based, more complex) @@ -1911,6 +1957,20 @@ a more complete example of the copyparty configuration options [look like this]( but if you just want to let users change their own passwords, then you probably want [user-changeable passwords](#user-changeable-passwords) instead +### generic header auth + +other ways to auth by header + +if you have a middleware which adds a header with a user identifier, for example tailscale's `Tailscale-User-Login: alice.m@forest.net` then you can automatically auth as `alice` by defining that mapping with `--idp-hm-usr '^Tailscale-User-Login^alice.m@forest.net^alice'` or the following config file: + +```yaml +[global] + idp-hm-usr: ^Tailscale-User-Login^alice.m@forest.net^alice +``` + +repeat the whole `idp-hm-usr` option to add more mappings + + ## user-changeable passwords if permitted, users can change their own passwords in the control-panel @@ -2126,7 +2186,7 @@ when connecting the reverse-proxy to `127.0.0.1` instead (the basic and/or old-f in summary, `haproxy > caddy > traefik > nginx > apache > lighttpd`, and use uds when possible (traefik does not support it yet) -* if these results are bullshit because my config exampels are bad, please submit corrections! +* if these results are bullshit because my config examples are bad, please submit corrections! ## permanent cloudflare tunnel @@ -2262,6 +2322,7 @@ buggy feature? rip it out by setting any of the following environment variables | `PRTY_NO_SQLITE` | disable all database-related functionality (file indexing, metadata indexing, most file deduplication logic) | | `PRTY_NO_TLS` | disable native HTTPS support; if you still want to accept HTTPS connections then TLS must now be terminated by a reverse-proxy | | `PRTY_NO_TPOKE` | disable systemd-tmpfilesd avoider | +| `PRTY_UNSAFE_STATE` | allow storing secrets into emergency-fallback locations | example: `PRTY_NO_IFADDR=1 python3 copyparty-sfx.py` @@ -2297,6 +2358,15 @@ after installing, start either the system service or the user service and naviga does not exist yet; there are rumours that it is being packaged! keep an eye on this space... +## homebrew formulae + +`brew install copyparty ffmpeg` -- https://formulae.brew.sh/formula/copyparty + +should work on all macs (both intel and apple silicon) and all relevant macos versions + +the homebrew package is maintained by the homebrew team (thanks!) + + ## nix package `nix profile install github:9001/copyparty` @@ -2310,7 +2380,7 @@ some recommended dependencies are enabled by default; [override the package](htt ## nixos module -for this setup, you will need a [flake-enabled](https://nixos.wiki/wiki/Flakes) installation of NixOS. +for [flake-enabled](https://nixos.wiki/wiki/Flakes) installations of NixOS: ```nix { @@ -2337,6 +2407,33 @@ for this setup, you will need a [flake-enabled](https://nixos.wiki/wiki/Flakes) } ``` +if you don't use a flake in your configuration, you can use other dependency management tools like [npins](https://github.com/andir/npins), [niv](https://github.com/nmattia/niv), or even plain [`fetchTarball`](https://nix.dev/manual/nix/stable/language/builtins#builtins-fetchTarball), like so: + +```nix +{ pkgs, ... }: + +let + # npins example, adjust for your setup. copyparty should be a path to the downloaded repo + # for niv, just replace the npins folder import with the sources.nix file + copyparty = (import ./npins).copyparty; + + # or with fetchTarball: + copyparty = fetchTarball "https://github.com/9001/copyparty/archive/hovudstraum.tar.gz"; +in + +{ + # load the copyparty NixOS module + imports = [ "${copyparty}/contrib/nixos/modules/copyparty.nix" ]; + + # add the copyparty overlay to expose the package to the module + nixpkgs.overlays = [ (import "${copyparty}/contrib/package/nix/overlay.nix") ]; + # (optional) install the package globally + environment.systemPackages = [ pkgs.copyparty ]; + # configure the copyparty module + services.copyparty.enable = true; +} +``` + copyparty on NixOS is configured via `services.copyparty` options, for example: ```nix services.copyparty = { @@ -2523,11 +2620,20 @@ sync folders to/from copyparty NOTE: full bidirectional sync, like what [nextcloud](https://docs.nextcloud.com/server/latest/user_manual/sv/files/desktop_mobile_sync.html) and [syncthing](https://syncthing.net/) does, will never be supported! Only single-direction sync (server-to-client, or client-to-server) is possible with copyparty +* if you want bidirectional sync, then copyparty and syncthing *should* be entirely safe to combine; they should be able to collaborate on the same folders without causing any trouble for eachother. Many people do this, and there have been no issues so far. But, if you *do* encounter any problems, please [file a copyparty bug](https://github.com/9001/copyparty/issues/new/choose) and I'll try to help -- just keep in mind I've never used syncthing before :-) + the commandline uploader [u2c.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy) with `--dr` is the best way to sync a folder to copyparty; verifies checksums and does files in parallel, and deletes unexpected files on the server after upload has finished which makes file-renames really cheap (it'll rename serverside and skip uploading) +if you want to sync with `u2c.py` then: +* the `e2dsa` option (either globally or volflag) must be enabled on the server for the volumes you're syncing into +* ...but DON'T enable global-options `no-hash` or `no-idx` (or volflags `nohash` / `noidx`), or at least make sure they are configured so they do not affect anything you are syncing into +* ...and u2c needs the delete-permission, so either `rwd` at minimum, or just `A` which is the same as `rwmd.a` + * quick reminder that `a` and `A` are different permissions, and `.` is very useful for sync + alternatively there is [rclone](./docs/rclone.md) which allows for bidirectional sync and is *way* more flexible (stream files straight from sftp/s3/gcs to copyparty, ...), although there is no integrity check and it won't work with files over 100 MiB if copyparty is behind cloudflare * starting from rclone v1.63, rclone is faster than u2c.py on low-latency connections + * but this is only true for the initial upload; u2c will be faster for periodic syncing ## mount as drive @@ -2569,6 +2675,8 @@ there is no iPhone app, but the following shortcuts are almost as good: * can download links and rehost the target file on copyparty (see first comment inside the shortcut) * pics become lowres if you share from gallery to shortcut, so better to launch the shortcut and pick stuff from there +if you want to run the copyparty server on your iPhone or iPad, see [install on iOS](#install-on-iOS) + # performance @@ -2792,9 +2900,10 @@ enable [music tags](#metadata-from-audio-files): enable [thumbnails](#thumbnails) of... * **images:** `Pillow` and/or `pyvips` and/or `ffmpeg` (requires py2.7 or py3.5+) * **videos/audio:** `ffmpeg` and `ffprobe` somewhere in `$PATH` -* **HEIF pictures:** `pyvips` or `ffmpeg` or `pyheif-pillow-opener` (requires Linux or a C compiler) +* **HEIF pictures:** `pyvips` or `ffmpeg` or `pillow-heif` * **AVIF pictures:** `pyvips` or `ffmpeg` or `pillow-avif-plugin` or pillow v11.3+ * **JPEG XL pictures:** `pyvips` or `ffmpeg` +* **RAW images:** `rawpy`, plus one of `pyvips` or `Pillow` (for some formats) enable sending [zeromq messages](#zeromq) from event-hooks: `pyzmq` @@ -2825,9 +2934,10 @@ set any of the following environment variables to disable its associated optiona | `PRTY_NO_PIL` | disable all [Pillow](https://pypi.org/project/pillow/)-based thumbnail support; will fallback to libvips or ffmpeg | | `PRTY_NO_PILF` | disable Pillow `ImageFont` text rendering, used for folder thumbnails | | `PRTY_NO_PIL_AVIF` | disable Pillow avif support (internal and/or [plugin](https://pypi.org/project/pillow-avif-plugin/)) | -| `PRTY_NO_PIL_HEIF` | disable 3rd-party Pillow plugin for [HEIF support](https://pypi.org/project/pyheif-pillow-opener/) | +| `PRTY_NO_PIL_HEIF` | disable 3rd-party Pillow plugin for [HEIF support](https://pypi.org/project/pillow-heif/) | | `PRTY_NO_PIL_WEBP` | disable use of native webp support in Pillow | | `PRTY_NO_PSUTIL` | do not use [psutil](https://pypi.org/project/psutil/) for reaping stuck hooks and plugins on Windows | +| `PRTY_NO_RAW` | disable all [rawpy](https://pypi.org/project/rawpy/)-based thumbnail support for RAW images | | `PRTY_NO_VIPS` | disable all [libvips](https://pypi.org/project/pyvips/)-based thumbnail support; will fallback to Pillow or ffmpeg | example: `PRTY_NO_PIL=1 python3 copyparty-sfx.py` @@ -2900,6 +3010,27 @@ if you want thumbnails (photos+videos) and you're okay with spending another 132 * or if you want to use `vips` for photo-thumbs instead, `pkg install libvips && python -m pip install --user -U wheel && python -m pip install --user -U pyvips && (cd /data/data/com.termux/files/usr/lib/; ln -s libgobject-2.0.so{,.0}; ln -s libvips.so{,.42})` +# install on iOS + +first install one of the following: +* [a-Shell mini](https://apps.apple.com/us/app/a-shell-mini/id1543537943) gives you the essential features +* [a-Shell](https://apps.apple.com/us/app/a-shell/id1473805438) also enables audio transcoding and better thubmnails + +and then copypaste the following command into `a-Shell`: + +```sh +curl https://github.com/9001/copyparty/raw/refs/heads/hovudstraum/contrib/setup-ashell.sh | sh +``` + +what this does: +* creates a basic [config file](#accounts-and-volumes) named `cpc` which you can edit with `vim cpc` +* adds the command `cpp` to launch copyparty with that config file + +known issues: +* cannot run in the background; it needs to be on-screen to accept connections / uploads / downloads +* the best way to exit copyparty is to swipe away the app + + # reporting bugs ideas for context to include, and where to submit them diff --git a/bin/README.md b/bin/README.md index fd94172f..1fef13f4 100644 --- a/bin/README.md +++ b/bin/README.md @@ -1,7 +1,7 @@ # [`u2c.py`](u2c.py) * command-line up2k client [(webm)](https://ocv.me/stuff/u2cli.webm) * file uploads, file-search, autoresume of aborted/broken uploads -* sync local folder to server +* [sync local folder to server](https://github.com/9001/copyparty/#folder-sync) * generally faster than browsers * if something breaks just restart it diff --git a/bin/bubbleparty.sh b/bin/bubbleparty.sh index 2e6aab3e..564546ee 100755 --- a/bin/bubbleparty.sh +++ b/bin/bubbleparty.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # usage: ./bubbleparty.sh ./copyparty-sfx.py .... bwrap \ --unshare-all \ @@ -9,7 +9,7 @@ bwrap \ --dev-bind /dev /dev \ --dir /tmp \ --dir /var \ - --bind $(pwd) $(pwd) \ + --bind "$(pwd)" "$(pwd)" \ --share-net \ --die-with-parent \ --file 11 /etc/passwd \ diff --git a/bin/dbtool.py b/bin/dbtool.py index ff92fca3..12e3d535 100755 --- a/bin/dbtool.py +++ b/bin/dbtool.py @@ -8,7 +8,7 @@ import sqlite3 import argparse DB_VER1 = 3 -DB_VER2 = 5 +DB_VER2 = 6 BY_PATH = None NC = None @@ -39,7 +39,7 @@ def ls(db): print(f"{nfiles} files") print(f"{ntags} tags\n") - print("number of occurences for each tag,") + print("number of occurrences for each tag,") print(" 'x' = file has no tags") print(" 't:mtp' = the mtp flag (file not mtp processed yet)") print() diff --git a/bin/handlers/redirect.py b/bin/handlers/redirect.py index 07b91d0c..fde29454 100644 --- a/bin/handlers/redirect.py +++ b/bin/handlers/redirect.py @@ -46,7 +46,7 @@ def main(cli, vn, rem): # uncomment one of these: send_http_302_temporary_redirect(cli, new_path) - #send_http_301_permanent_redirect(cli, new_path) - #send_errorpage_with_redirect_link(cli, new_path) + # send_http_301_permanent_redirect(cli, new_path) + # send_errorpage_with_redirect_link(cli, new_path) return "true" diff --git a/bin/hooks/notify.py b/bin/hooks/notify.py index 6e5dda86..bc12269d 100755 --- a/bin/hooks/notify.py +++ b/bin/hooks/notify.py @@ -9,7 +9,7 @@ from plyer import notification _ = r""" show os notification on upload; works on windows, linux, macos, android -depdencies: +dependencies: windows: python3 -m pip install --user -U plyer linux: python3 -m pip install --user -U plyer macos: python3 -m pip install --user -U plyer pyobjus diff --git a/bin/hooks/wget.py b/bin/hooks/wget.py index ad0c71c0..1f5a824b 100755 --- a/bin/hooks/wget.py +++ b/bin/hooks/wget.py @@ -66,7 +66,7 @@ def main(): try: sp.check_call(cmd) except: - t = "-- FAILED TO DONWLOAD " + name + t = "-- FAILED TO DOWNLOAD " + name print(f"{t}\n", end="") open(t, "wb").close() diff --git a/bin/mtag/guestbook-read.py b/bin/mtag/guestbook-read.py index 704addbe..e9119903 100755 --- a/bin/mtag/guestbook-read.py +++ b/bin/mtag/guestbook-read.py @@ -7,7 +7,7 @@ example copyparty config to use this: --urlform save,get -vsrv/hello:hello:w:c,e2ts,mtp=guestbook=t10,ad,p,bin/mtag/guestbook-read.py:mte=+guestbook explained: - for realpath srv/hello (served at /hello), write-only for eveyrone, + for realpath srv/hello (served at /hello), write-only for everyone, enable file analysis on upload (e2ts), use mtp plugin "bin/mtag/guestbook-read.py" to provide metadata tag "guestbook", do this on all uploads regardless of extension, diff --git a/bin/mtag/guestbook.py b/bin/mtag/guestbook.py index 437289b6..84f8fa53 100644 --- a/bin/mtag/guestbook.py +++ b/bin/mtag/guestbook.py @@ -11,7 +11,7 @@ example copyparty config to use this: --urlform save,get -vsrv/hello:hello:w:c,e2ts,mtp=xgb=ebin,t10,ad,p,bin/mtag/guestbook.py:mte=+xgb explained: - for realpath srv/hello (served at /hello),write-only for eveyrone, + for realpath srv/hello (served at /hello),write-only for everyone, enable file analysis on upload (e2ts), use mtp plugin "bin/mtag/guestbook.py" to provide metadata tag "xgb", do this on all uploads with the file extension "bin", diff --git a/bin/mtag/wget.py b/bin/mtag/wget.py index 26a1fa45..d706052b 100644 --- a/bin/mtag/wget.py +++ b/bin/mtag/wget.py @@ -84,7 +84,7 @@ def main(): # on success, delete the .bin file which contains the URL os.unlink(fp) except: - open("-- FAILED TO DONWLOAD " + name, "wb").close() + open("-- FAILED TO DOWNLOAD " + name, "wb").close() os.unlink(tfn) print(url) diff --git a/bin/partyfuse.py b/bin/partyfuse.py index da7ce54e..0d88caca 100755 --- a/bin/partyfuse.py +++ b/bin/partyfuse.py @@ -6,8 +6,8 @@ __copyright__ = 2019 __license__ = "MIT" __url__ = "https://github.com/9001/copyparty/" -S_VERSION = "2.0" -S_BUILD_DT = "2024-10-01" +S_VERSION = "2.1" +S_BUILD_DT = "2025-09-06" """ mount a copyparty server (local or remote) as a filesystem @@ -99,7 +99,7 @@ except: elif MACOS: libfuse = "install https://osxfuse.github.io/" else: - libfuse = "apt install libfuse3-3\n modprobe fuse" + libfuse = "apt install libfuse2\n modprobe fuse" m = """\033[33m could not import fuse; these may help: @@ -359,7 +359,7 @@ class Gateway(object): def sendreq(self, meth, path, headers, **kwargs): tid = get_tid() if self.password: - headers["Cookie"] = "=".join(["cppwd", self.password]) + headers["PW"] = self.password try: c = self.getconn(tid) @@ -902,9 +902,7 @@ class CPPF(Operations): return ret def _readdir(self, path, fh=None): - path = path.strip("/") - dbg("readdir %r [%s]", path, fh) - + dbg("dircache miss") ret = self.gw.listdir(path) if not self.n_dircache: return ret @@ -914,11 +912,17 @@ class CPPF(Operations): self.dircache.append(cn) self.clean_dircache() - # import pprint; pprint.pprint(ret) return ret def readdir(self, path, fh=None): - return [".", ".."] + list(self._readdir(path, fh)) + dbg("readdir %r [%s]", path, fh) + path = path.strip("/") + cn = self.get_cached_dir(path) + if cn: + ret = cn.data + else: + ret = self._readdir(path, fh) + return [".", ".."] + list(ret) def read(self, path, length, offset, fh=None): req_max = 1024 * 1024 * 8 @@ -993,7 +997,6 @@ class CPPF(Operations): if cn: dents = cn.data else: - dbg("cache miss") dents = self._readdir(dirpath) try: @@ -1141,10 +1144,15 @@ def main(): if WINDOWS: examples.append("http://192.168.1.69:3923/music/ M:") + epi = "example:" + ex_pre + ex_pre.join(examples) + epi += """\n +NOTE: if server has --usernames enabled, then password is "username:password" +""" + ap = argparse.ArgumentParser( formatter_class=TheArgparseFormatter, description="mount a copyparty server as a local filesystem -- " + ver, - epilog="example:" + ex_pre + ex_pre.join(examples), + epilog=epi, ) # fmt: off ap.add_argument("base_url", type=str, help="remote copyparty URL to mount") diff --git a/bin/prisonparty.sh b/bin/prisonparty.sh index d495c833..403f1588 100755 --- a/bin/prisonparty.sh +++ b/bin/prisonparty.sh @@ -141,7 +141,7 @@ chmod 777 "$jail/tmp" # create a dev -(cd $jail; mkdir -p dev; cd dev +(cd "$jail"; mkdir -p dev; cd dev [ -e null ] || mknod -m 666 null c 1 3 [ -e zero ] || mknod -m 666 zero c 1 5 [ -e random ] || mknod -m 444 random c 1 8 diff --git a/bin/u2c.py b/bin/u2c.py index e92c1e4e..aec03918 100755 --- a/bin/u2c.py +++ b/bin/u2c.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 from __future__ import print_function, unicode_literals -S_VERSION = "2.11" -S_BUILD_DT = "2025-05-18" +S_VERSION = "2.13" +S_BUILD_DT = "2025-09-05" """ u2c.py: upload to copyparty @@ -10,7 +10,7 @@ u2c.py: upload to copyparty https://github.com/9001/copyparty/blob/hovudstraum/bin/u2c.py - dependencies: no -- supports python 2.6, 2.7, and 3.3 through 3.12 +- supports python 2.6, 2.7, and 3.3 through 3.14 - if something breaks just try again and it'll autoresume """ @@ -590,9 +590,10 @@ def undns(url): def _scd(err, top): """non-recursive listing of directory contents, along with stat() info""" + top_ = os.path.join(top, b"") with os.scandir(top) as dh: for fh in dh: - abspath = os.path.join(top, fh.name) + abspath = top_ + fh.name try: yield [abspath, fh.stat()] except Exception as ex: @@ -601,8 +602,9 @@ def _scd(err, top): def _lsd(err, top): """non-recursive listing of directory contents, along with stat() info""" + top_ = os.path.join(top, b"") for name in os.listdir(top): - abspath = os.path.join(top, name) + abspath = top_ + name try: yield [abspath, os.stat(abspath)] except Exception as ex: @@ -677,7 +679,7 @@ def walkdirs(err, tops, excl): yield stop, ap[len(stop) :].lstrip(sep), inf else: d, n = top.rsplit(sep, 1) - yield d, n, os.stat(top) + yield d or b"/", n, os.stat(top) # mostly from copyparty/util.py @@ -1527,10 +1529,10 @@ def main(): # fmt: off ap = app = argparse.ArgumentParser(formatter_class=APF, description="copyparty up2k uploader / filesearch tool " + ver, epilog=""" -NOTE: -source file/folder selection uses rsync syntax, meaning that: +NOTE: source file/folder selection uses rsync syntax, meaning that: "foo" uploads the entire folder to URL/foo/ "foo/" uploads the CONTENTS of the folder into URL/ +NOTE: if server has --usernames enabled, then password is "username:password" """) ap.add_argument("url", type=unicode, help="server url, including destination folder") diff --git a/contrib/nginx/copyparty.conf b/contrib/nginx/copyparty.conf index 121e52ab..f0d382cc 100644 --- a/contrib/nginx/copyparty.conf +++ b/contrib/nginx/copyparty.conf @@ -31,7 +31,7 @@ # generate the list of permitted IP ranges like so: # (curl -s https://www.cloudflare.com/ips-v{4,6} | sed 's/^/allow /; s/$/;/'; echo; echo "deny all;") > /etc/nginx/cloudflare-only.conf # -# and then enable it below by uncomenting the cloudflare-only.conf line +# and then enable it below by uncommenting the cloudflare-only.conf line # # ====================================================================== diff --git a/contrib/nixos/modules/copyparty.nix b/contrib/nixos/modules/copyparty.nix index 994b2575..1f8242df 100644 --- a/contrib/nixos/modules/copyparty.nix +++ b/contrib/nixos/modules/copyparty.nix @@ -50,6 +50,7 @@ let configStr = '' ${mkSection "global" cfg.settings} + ${cfg.globalExtraConfig} ${mkSection "accounts" (accountsWithPlaceholders cfg.accounts)} ${concatStringsSep "\n" (mapAttrsToList mkVolume cfg.volumes)} ''; @@ -131,6 +132,12 @@ in ''; }; + globalExtraConfig = mkOption { + type = types.str; + 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."; + }; + accounts = mkOption { type = types.attrsOf ( types.submodule ( @@ -373,3 +380,4 @@ in } ); } + diff --git a/contrib/package/arch/PKGBUILD b/contrib/package/arch/PKGBUILD index e5896fd7..a83a6698 100644 --- a/contrib/package/arch/PKGBUILD +++ b/contrib/package/arch/PKGBUILD @@ -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. pkgname=copyparty -pkgver="1.19.0" +pkgver="1.19.8" pkgrel=1 pkgdesc="File server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++" arch=("any") @@ -23,7 +23,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") backup=("etc/${pkgname}/copyparty.conf" ) -sha256sums=("179b027d51e4fe7ebdab2b18c07475d52c57e2ce69256292b157a8efacd82118") +sha256sums=("3143ba5216c8d4cf1fbc58fa08c6ecef955de04b5e34b3910ab0b71cffec88ef") build() { cd "${srcdir}/${pkgname}-${pkgver}/copyparty/web" diff --git a/contrib/package/makedeb-mpr/PKGBUILD b/contrib/package/makedeb-mpr/PKGBUILD index 645623c0..d1512976 100644 --- a/contrib/package/makedeb-mpr/PKGBUILD +++ b/contrib/package/makedeb-mpr/PKGBUILD @@ -2,7 +2,7 @@ pkgname=copyparty -pkgver=1.19.0 +pkgver=1.19.8 pkgrel=1 pkgdesc="File server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++" arch=("any") @@ -20,7 +20,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") backup=("/etc/${pkgname}.d/init" ) -sha256sums=("179b027d51e4fe7ebdab2b18c07475d52c57e2ce69256292b157a8efacd82118") +sha256sums=("3143ba5216c8d4cf1fbc58fa08c6ecef955de04b5e34b3910ab0b71cffec88ef") build() { cd "${srcdir}/${pkgname}-${pkgver}/copyparty/web" diff --git a/contrib/package/nix/copyparty/default.nix b/contrib/package/nix/copyparty/default.nix index 28d733ab..22ae5bcd 100644 --- a/contrib/package/nix/copyparty/default.nix +++ b/contrib/package/nix/copyparty/default.nix @@ -1,10 +1,10 @@ { lib, - stdenv, - makeWrapper, + buildPythonApplication, fetchurl, util-linux, python, + setuptools, jinja2, impacket, pyopenssl, @@ -15,6 +15,10 @@ pyzmq, ffmpeg, mutagen, + pyftpdlib, + magic, + partftpy, + fusepy, # for partyfuse # use argon2id-hashed passwords in config files (sha2 is always available) withHashedPasswords ? true, @@ -40,12 +44,21 @@ # send ZeroMQ messages from event-hooks withZeroMQ ? true, + # enable FTP server + withFTP ? true, + # enable FTPS support in the FTP server withFTPS ? false, + # enable TFTP server + withTFTP ? false, + # samba/cifs server; dangerous and buggy, enable if you really need it withSMB ? false, + # enables filetype detection for nameless uploads + withMagic ? false, + # extra packages to add to the PATH extraPackages ? [ ], @@ -58,14 +71,23 @@ let pinData = lib.importJSON ./pin.json; - pyEnv = python.withPackages ( - ps: - with ps; + runtimeDeps = ([ util-linux ] ++ extraPackages ++ lib.optional withMediaProcessing ffmpeg); +in +buildPythonApplication { + pname = "copyparty"; + inherit (pinData) version; + src = fetchurl { + inherit (pinData) url hash; + }; + dependencies = [ jinja2 + fusepy ] ++ lib.optional withSMB impacket + ++ lib.optional withFTP pyftpdlib ++ lib.optional withFTPS pyopenssl + ++ lib.optional withTFTP partftpy ++ lib.optional withCertgen cfssl ++ lib.optional withThumbnails pillow ++ lib.optional withFastThumbnails pyvips @@ -73,25 +95,14 @@ let ++ lib.optional withBasicAudioMetadata mutagen ++ lib.optional withHashedPasswords argon2-cffi ++ lib.optional withZeroMQ pyzmq - ++ (extraPythonPackages ps) - ); + ++ lib.optional withMagic magic + ++ (extraPythonPackages python.pkgs); + makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath runtimeDeps}" ]; - runtimeDeps = ([ util-linux ] ++ extraPackages ++ lib.optional withMediaProcessing ffmpeg); -in -stdenv.mkDerivation { - pname = "copyparty"; - inherit (pinData) version; - src = fetchurl { - inherit (pinData) url hash; - }; - nativeBuildInputs = [ makeWrapper ]; - dontUnpack = true; - installPhase = '' - install -Dm755 $src $out/share/copyparty-sfx.py - makeWrapper ${pyEnv.interpreter} $out/bin/copyparty \ - --prefix PATH : ${lib.makeBinPath runtimeDeps} \ - --add-flag $out/share/copyparty-sfx.py - ''; + pyproject = true; + build-system = [ + setuptools + ]; meta = { description = "Turn almost any device into a file server"; longDescription = '' @@ -101,8 +112,7 @@ stdenv.mkDerivation { homepage = "https://github.com/9001/copyparty"; changelog = "https://github.com/9001/copyparty/releases/tag/v${pinData.version}"; license = lib.licenses.mit; - inherit (python.meta) platforms; mainProgram = "copyparty"; - sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; + sourceProvenance = [ lib.sourceTypes.fromSource ]; }; } diff --git a/contrib/package/nix/copyparty/pin.json b/contrib/package/nix/copyparty/pin.json index c0d8c68a..5ec6e679 100644 --- a/contrib/package/nix/copyparty/pin.json +++ b/contrib/package/nix/copyparty/pin.json @@ -1,5 +1,5 @@ { - "url": "https://github.com/9001/copyparty/releases/download/v1.19.0/copyparty-sfx.py", - "version": "1.19.0", - "hash": "sha256-9A+zPtkVtUuGHB/JJV3fhVtJderLUGxHqvuJQz0/1+Q=" + "url": "https://github.com/9001/copyparty/releases/download/v1.19.8/copyparty-1.19.8.tar.gz", + "version": "1.19.8", + "hash": "sha256-MUO6UhbI1M8fvFj6CMbs75Vd4EteNLORCrC3HP/siO8=" } \ No newline at end of file diff --git a/contrib/package/nix/copyparty/update.py b/contrib/package/nix/copyparty/update.py index 363773c0..90542d2e 100755 --- a/contrib/package/nix/copyparty/update.py +++ b/contrib/package/nix/copyparty/update.py @@ -11,14 +11,14 @@ import base64 import json import hashlib import sys -import re +import tarfile from pathlib import Path OUTPUT_FILE = Path("pin.json") -TARGET_ASSET = "copyparty-sfx.py" +TARGET_ASSET = lambda version: f"copyparty-{version}.tar.gz" HASH_TYPE = "sha256" LATEST_RELEASE_URL = "https://api.github.com/repos/9001/copyparty/releases/latest" -DOWNLOAD_URL = lambda version: f"https://github.com/9001/copyparty/releases/download/v{version}/{TARGET_ASSET}" +DOWNLOAD_URL = lambda version: f"https://github.com/9001/copyparty/releases/download/v{version}/{TARGET_ASSET(version)}" def get_formatted_hash(binary): @@ -29,11 +29,13 @@ def get_formatted_hash(binary): return f"{HASH_TYPE}-{encoded_hash}" -def version_from_sfx(binary): - result = re.search(b'^VER = "(.*)"$', binary, re.MULTILINE) - if result: - return result.groups(1)[0].decode("ascii") +def version_from_tar_gz(path): + with tarfile.open(path) as tarball: + release_name = tarball.getmembers()[0].name + prefix = "copyparty-" + if release_name.startswith(prefix): + return release_name.replace(prefix, "") raise ValueError("version not found in provided file") @@ -42,7 +44,7 @@ def remote_release_pin(): response = requests.get(LATEST_RELEASE_URL).json() version = response["tag_name"].lstrip("v") - asset_info = [a for a in response["assets"] if a["name"] == TARGET_ASSET][0] + asset_info = [a for a in response["assets"] if a["name"] == TARGET_ASSET(version)][0] download_url = asset_info["browser_download_url"] asset = requests.get(download_url) formatted_hash = get_formatted_hash(asset.content) @@ -52,10 +54,9 @@ def remote_release_pin(): def local_release_pin(path): - asset = path.read_bytes() - version = version_from_sfx(asset) + version = version_from_tar_gz(path) download_url = DOWNLOAD_URL(version) - formatted_hash = get_formatted_hash(asset) + formatted_hash = get_formatted_hash(path.read_bytes()) result = {"url": download_url, "version": version, "hash": formatted_hash} return result diff --git a/contrib/package/nix/overlay.nix b/contrib/package/nix/overlay.nix new file mode 100644 index 00000000..ca8d5c6e --- /dev/null +++ b/contrib/package/nix/overlay.nix @@ -0,0 +1,11 @@ +final: prev: { + copyparty = final.python3.pkgs.callPackage ./copyparty { + ffmpeg = final.ffmpeg-full; + }; + + python3 = prev.python3.override { + packageOverrides = pyFinal: pyPrev: { + partftpy = pyFinal.callPackage ./partftpy { }; + }; + }; +} diff --git a/contrib/package/nix/partftpy/default.nix b/contrib/package/nix/partftpy/default.nix new file mode 100644 index 00000000..8293b44a --- /dev/null +++ b/contrib/package/nix/partftpy/default.nix @@ -0,0 +1,30 @@ +{ + lib, + buildPythonPackage, + fetchurl, + setuptools, +}: +let + pinData = lib.importJSON ./pin.json; +in + +buildPythonPackage rec { + pname = "partftpy"; + inherit (pinData) version; + pyproject = true; + + src = fetchurl { + inherit (pinData) url hash; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "partftpy.TftpServer" ]; + + meta = { + description = "Pure Python TFTP library (copyparty edition)"; + homepage = "https://github.com/9001/partftpy"; + changelog = "https://github.com/9001/partftpy/releases/tag/${version}"; + license = lib.licenses.mit; + }; +} diff --git a/contrib/package/nix/partftpy/pin.json b/contrib/package/nix/partftpy/pin.json new file mode 100644 index 00000000..99882f05 --- /dev/null +++ b/contrib/package/nix/partftpy/pin.json @@ -0,0 +1,5 @@ +{ + "url": "https://github.com/9001/partftpy/releases/download/v0.4.0/partftpy-0.4.0.tar.gz", + "version": "0.4.0", + "hash": "sha256-5Q2zyuJ892PGZmb+YXg0ZPW/DK8RDL1uE0j5HPd4We0=" +} \ No newline at end of file diff --git a/contrib/package/nix/partftpy/update.py b/contrib/package/nix/partftpy/update.py new file mode 100755 index 00000000..01f046b5 --- /dev/null +++ b/contrib/package/nix/partftpy/update.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +# Update the Nix package pin +# +# Usage: ./update.sh + +import base64 +import json +import hashlib +import sys +from pathlib import Path + +OUTPUT_FILE = Path("pin.json") +TARGET_ASSET = lambda version: f"partftpy-{version}.tar.gz" +HASH_TYPE = "sha256" +LATEST_RELEASE_URL = "https://api.github.com/repos/9001/partftpy/releases/latest" + + +def get_formatted_hash(binary): + hasher = hashlib.new("sha256") + hasher.update(binary) + asset_hash = hasher.digest() + encoded_hash = base64.b64encode(asset_hash).decode("ascii") + return f"{HASH_TYPE}-{encoded_hash}" + + +def remote_release_pin(): + import requests + + response = requests.get(LATEST_RELEASE_URL).json() + version = response["tag_name"].lstrip("v") + asset_info = [a for a in response["assets"] if a["name"] == TARGET_ASSET(version)][0] + download_url = asset_info["browser_download_url"] + asset = requests.get(download_url) + formatted_hash = get_formatted_hash(asset.content) + + result = {"url": download_url, "version": version, "hash": formatted_hash} + return result + + +def main(): + result = remote_release_pin() + + print(result) + json_result = json.dumps(result, indent=4) + OUTPUT_FILE.write_text(json_result) + + +if __name__ == "__main__": + main() diff --git a/contrib/package/nix/partyfuse/default.nix b/contrib/package/nix/partyfuse/default.nix deleted file mode 100644 index 59faa914..00000000 --- a/contrib/package/nix/partyfuse/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - stdenvNoCC, - copyparty, - python3, - makeBinaryWrapper, -}: -let - python = python3.withPackages (p: [ p.fusepy ]); -in -stdenvNoCC.mkDerivation { - pname = "partyfuse"; - inherit (copyparty) version meta; - src = ../../../..; - - nativeBuildInputs = [ makeBinaryWrapper ]; - - installPhase = '' - runHook preInstall - - install -Dm444 bin/partyfuse.py -t $out/share/copyparty - makeWrapper ${python.interpreter} $out/bin/partyfuse \ - --add-flag $out/share/copyparty/partyfuse.py - - runHook postInstall - ''; -} diff --git a/contrib/package/nix/u2c/default.nix b/contrib/package/nix/u2c/default.nix deleted file mode 100644 index dc1e4c56..00000000 --- a/contrib/package/nix/u2c/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - stdenvNoCC, - copyparty, - python312, - makeBinaryWrapper, -}: -stdenvNoCC.mkDerivation { - pname = "u2c"; - inherit (copyparty) version meta; - src = ../../../..; - - nativeBuildInputs = [ makeBinaryWrapper ]; - - installPhase = '' - runHook preInstall - - install -Dm444 bin/u2c.py -t $out/share/copyparty - mkdir $out/bin - makeWrapper ${python312.interpreter} $out/bin/u2c \ - --add-flag $out/share/copyparty/u2c.py - - runHook postInstall - ''; -} diff --git a/contrib/package/rpm/copyparty.spec b/contrib/package/rpm/copyparty.spec new file mode 100644 index 00000000..6d3ebb3f --- /dev/null +++ b/contrib/package/rpm/copyparty.spec @@ -0,0 +1,62 @@ +Name: copyparty +Version: $pkgver +Release: $pkgrel +License: MIT +Group: Utilities +URL: https://github.com/9001/copyparty +Source0: copyparty-$pkgver.tar.gz +Summary: File server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ +BuildArch: noarch +BuildRequires: python3, python3-devel, pyproject-rpm-macros, python-setuptools, python-wheel, make +Requires: python3, (python3-jinja2 or python-jinja2), lsof +Recommends: ffmpeg, (golang-github-cloudflare-cfssl or cfssl), python-mutagen, python-pillow, python-pyvips +Recommends: qm-vamp-plugins, python-argon2-cffi, (python-pyopenssl or pyopenssl), python-impacket + +%description +Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps + +See release at https://github.com/9001/copyparty/releases + +%global debug_package %{nil} + +%generate_buildrequires +%pyproject_buildrequires + +%prep +%setup -q + +%build +cd "copyparty/web" +make +cd - +%pyproject_wheel + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_libdir}/systemd/{system,user} +mkdir -p %{buildroot}/etc/%{name} +mkdir -p %{buildroot}/var/lib/%{name}-jail +mkdir -p %{buildroot}%{_datadir}/licenses/%{name} + +%pyproject_install +%pyproject_save_files copyparty + +install -m 0755 bin/prisonparty.sh %{buildroot}%{_bindir}/prisonpary.sh +install -m 0644 contrib/systemd/%{name}.conf %{buildroot}/etc/%{name}/%{name}.conf +install -m 0644 contrib/systemd/%{name}@.service %{buildroot}%{_libdir}/systemd/system/%{name}@.service +install -m 0644 contrib/systemd/%{name}-user.service %{buildroot}%{_libdir}/systemd/user/%{name}.service +install -m 0644 contrib/systemd/prisonparty@.service %{buildroot}%{_libdir}/systemd/system/prisonparty@.service +install -m 0644 contrib/systemd/index.md %{buildroot}/var/lib/%{name}-jail/README.md +install -m 0644 LICENSE %{buildroot}%{_datadir}/licenses/%{name}/LICENSE + +%files -n copyparty -f %{pyproject_files} +%license LICENSE +%{_bindir}/copyparty +%{_bindir}/partyfuse +%{_bindir}/u2c +%{_bindir}/prisonpary.sh +/etc/%{name}/%{name}.conf +%{_libdir}/systemd/system/%{name}@.service +%{_libdir}/systemd/user/%{name}.service +%{_libdir}/systemd/system/prisonparty@.service +/var/lib/%{name}-jail/README.md diff --git a/contrib/plugins/quickmove.js b/contrib/plugins/quickmove.js index 34b3a0d3..3a0381df 100644 --- a/contrib/plugins/quickmove.js +++ b/contrib/plugins/quickmove.js @@ -101,10 +101,10 @@ function our_hotkey_handler(e) { // bail if either ALT, CTRL, or SHIFT is pressed - if (e.altKey || e.shiftKey || e.isComposing || ctrl(e)) + if (anymod(e)) return main_hotkey_handler(e); // let copyparty handle this keystroke - var key_name = (e.code || e.key) + '', + var keycode = (e.key || e.code) + '', ae = document.activeElement, aet = ae && ae != document.body ? ae.nodeName.toLowerCase() : ''; @@ -114,7 +114,7 @@ if (aet && !/^(a|button|tr|td|div|pre)$/.test(aet)) return main_hotkey_handler(e); // let copyparty handle this keystroke - if (key_name == 'KeyW') { + if (keycode == 'w' || keycode == 'KeyW') { // okay, this one's for us... do the thing action_to_perform(); return ev(e); diff --git a/contrib/setup-ashell.sh b/contrib/setup-ashell.sh new file mode 100644 index 00000000..006da444 --- /dev/null +++ b/contrib/setup-ashell.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# +# this script will install copyparty onto an iOS device (iPhone/iPad) +# +# step 1: install a-Shell: +# https://apps.apple.com/us/app/a-shell/id1473805438 +# +# step 2: copypaste the following command into a-Shell: +# curl https://github.com/9001/copyparty/raw/refs/heads/hovudstraum/contrib/setup-ashell.sh +# +# step 3: launch copyparty with this command: cpp +# +# if you ever want to upgrade copyparty, just repeat step 2 + + + +cd "$HOME/Documents" +curl -Locopyparty https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py + + + +# create the config file? (cannot use heredoc because body too large) +[ -e cpc ] || { +echo '[global]' >cpc +echo ' p: 80, 443, 3923 # enable http and https on these ports' >>cpc +echo ' e2dsa # enable file indexing and filesystem scanning' >>cpc +echo ' e2ts # and enable multimedia indexing' >>cpc +echo ' ver # show copyparty version in the controlpanel' >>cpc +echo ' qrz: 2 # enable qr-code and make it big' >>cpc +echo ' qrp: 1 # reduce qr-code padding' >>cpc +echo ' qr-fg: -1 # optimize for basic/simple terminals' >>cpc +echo ' qr-wait: 0.3 # less chance of getting scrolled away' >>cpc +echo '' >>cpc +echo ' # enable these by uncommenting them:' >>cpc +echo ' # ftp: 21 # enable ftp server on port 21' >>cpc +echo ' # tftp: 69 # enable tftp server on port 69' >>cpc +echo '' >>cpc +echo '[/]' >>cpc +echo ' ~/Documents' >>cpc +echo ' accs:' >>cpc +echo ' A: *' >>cpc +} + + + +# create the launcher? +[ -e cpp ] || { +echo '#!/bin/sh' >cpp +echo '' >>cpp +echo '# change the font so the qr-code draws correctly:' >>cpp +echo 'config -n "Menlo" # name' >>cpp +echo 'config -s 8 # size' >>cpp +echo '' >>cpp +echo '# launch copyparty' >>cpp +echo 'exec copyparty -c cpc "$@"' >>cpp +} + + + +chmod 755 copyparty cpp +echo +echo ================================= +echo +echo 'okay, all done!' +echo +echo 'you can edit your config' +echo 'with this command: vim cpc' +echo +echo 'you can run copyparty' +echo 'with this command: cpp' +echo diff --git a/copyparty/__init__.py b/copyparty/__init__.py index d1630ba0..f9e7da5b 100644 --- a/copyparty/__init__.py +++ b/copyparty/__init__.py @@ -111,7 +111,9 @@ class EnvParams(object): def __init__(self) -> None: self.t0 = time.time() self.mod = "" + self.mod_ = "" self.cfg = "" + self.scfg = True E = EnvParams() diff --git a/copyparty/__main__.py b/copyparty/__main__.py index e87fe487..074f865f 100644 --- a/copyparty/__main__.py +++ b/copyparty/__main__.py @@ -36,6 +36,7 @@ from .__init__ import ( ) from .__version__ import CODENAME, S_BUILD_DT, S_VERSION from .authsrv import expand_config_file, split_cfg_ln, upgrade_cfg_fmt +from .bos import bos from .cfg import flagcats, onedash from .svchub import SvcHub from .util import ( @@ -186,7 +187,7 @@ def init_E(EE: EnvParams) -> None: E = EE # pylint: disable=redefined-outer-name - def get_unixdir() -> str: + def get_unixdir() -> tuple[str, bool]: paths: list[tuple[Callable[..., Any], str]] = [ (os.environ.get, "XDG_CONFIG_HOME"), (os.path.expanduser, "~/.config"), @@ -196,41 +197,57 @@ def init_E(EE: EnvParams) -> None: (unicode, "/tmp"), ] errs = [] - for chk in [os.listdir, os.mkdir]: - for npath, (pf, pa) in enumerate(paths): - p = "" + for npath, (pf, pa) in enumerate(paths): + priv = npath < 2 # private/trusted location + ram = npath > 1 # "nonvolatile"; not semantically same as `not priv` + p = "" + try: + p = pf(pa) + if not p or p.startswith("~"): + continue + + p = os.path.normpath(p) + mkdir = not os.path.isdir(p) + if mkdir: + os.mkdir(p, 0o700) + + p = os.path.join(p, "copyparty") + if not priv and os.path.isdir(p): + uid = os.geteuid() + if os.stat(p).st_uid != uid: + p += ".%s" % (uid,) + if os.path.isdir(p) and os.stat(p).st_uid != uid: + raise Exception("filesystem has broken unix permissions") try: - p = pf(pa) - # print(chk.__name__, p, pa) - if not p or p.startswith("~"): - continue + os.listdir(p) + except: + os.mkdir(p, 0o700) - p = os.path.normpath(p) - chk(p) # type: ignore - p = os.path.join(p, "copyparty") - if not os.path.isdir(p): - os.mkdir(p) + if ram: + t = "Using %s/copyparty [%s] for config; filekeys/dirkeys will change on every restart. Consider setting XDG_CONFIG_HOME or giving the unix-user a ~/.config/" + errs.append(t % (pa, p)) + elif mkdir: + t = "Using %s/copyparty [%s] for config%s (Warning: %s did not exist and was created just now)" + errs.append(t % (pa, p, " instead" if npath else "", pa)) + elif errs: + errs.append("Using %s/copyparty [%s] instead" % (pa, p)) - if npath > 1: - t = "Using [%s] for config; filekeys/dirkeys will change on every restart. Consider setting XDG_CONFIG_HOME or giving the unix-user a ~/.config/" - errs.append(t % (p,)) - elif errs: - errs.append("Using [%s] instead" % (p,)) + if errs: + warn(". ".join(errs)) - if errs: - warn(". ".join(errs)) + return p, priv + except Exception as ex: + if p: + t = "Unable to store config in %s [%s] due to %r" + errs.append(t % (pa, p, ex)) - return p # type: ignore - except Exception as ex: - if p and npath < 2: - t = "Unable to store config in [%s] due to %r" - errs.append(t % (p, ex)) - - raise Exception("could not find a writable path for config") + t = "could not find a writable path for runtime state:\n> %s" + raise Exception(t % ("\n> ".join(errs))) E.mod = os.path.dirname(os.path.realpath(__file__)) if E.mod.endswith("__init__"): E.mod = os.path.dirname(E.mod) + E.mod_ = os.path.join(E.mod, "") try: p = os.environ.get("XDG_CONFIG_HOME") @@ -241,7 +258,7 @@ def init_E(EE: EnvParams) -> None: p = os.path.abspath(os.path.realpath(p)) p = os.path.join(p, "copyparty") if not os.path.isdir(p): - os.mkdir(p) + os.mkdir(p, 0o700) os.listdir(p) except: p = "" @@ -254,11 +271,11 @@ def init_E(EE: EnvParams) -> None: elif sys.platform == "darwin": E.cfg = os.path.expanduser("~/Library/Preferences/copyparty") else: - E.cfg = get_unixdir() + E.cfg, E.scfg = get_unixdir() E.cfg = E.cfg.replace("\\", "/") try: - os.makedirs(E.cfg) + bos.makedirs(E.cfg, bos.MKD_700) except: if not os.path.isdir(E.cfg): raise @@ -436,6 +453,29 @@ def args_from_cfg(cfg_path: str) -> list[str]: return ret +def expand_cfg(argv) -> list[str]: + if CFG_DEF: + supp = args_from_cfg(CFG_DEF[0]) + argv = argv[:1] + supp + argv[1:] + + n = 0 + while n < len(argv): + v1 = argv[n] + v1v = v1[2:].lstrip("=") + try: + v2 = argv[n + 1] + except: + v2 = "" + + n += 1 + if v1 == "-c" and v2 and os.path.isfile(v2): + n += 1 + argv = argv[:n] + args_from_cfg(v2) + argv[n:] + elif v1.startswith("-c") and v1v and os.path.isfile(v1v): + argv = argv[:n] + args_from_cfg(v1v) + argv[n:] + return argv + + def sighandler(sig: Optional[int] = None, frame: Optional[FrameType] = None) -> None: msg = [""] * 5 for th in threading.enumerate(): @@ -609,8 +649,77 @@ def get_sects(): if no accounts or volumes are configured, current folder will be read/write for everyone + the group @acct will always have every user with an account + (the name of that group can be changed with --grp-all) + consider the config file for more flexible account/volume management, including dynamic reload at runtime (and being more readable w) + + see \033[32m--help-auth\033[0m for ways to provide the password in requests; + see \033[32m--help-idp\033[0m for replacing it with SSO and auth-middlewares + """ + ), + ], + [ + "auth", + "how to login from a client", + dedent( + """ + different ways to provide the password so you become authenticated: + + login with the ui: + go to \033[36mhttp://127.0.0.1:3923/?h\033[0m and login there + + send the password in the '\033[36mPW\033[0m' http-header: + \033[36mPW: \033[35mhunter2\033[0m + or if you have \033[33m--accounts\033[0m enabled, + \033[36mPW: \033[35med:hunter2\033[0m + + send the password in the URL itself: + \033[36mhttp://127.0.0.1:3923/\033[35m?pw=hunter2\033[0m + or if you have \033[33m--accounts\033[0m enabled, + \033[36mhttp://127.0.0.1:3923/\033[35m?pw=ed:hunter2\033[0m + + use basic-authentication: + \033[36mhttp://\033[35med:hunter2\033[36m@127.0.0.1:3923/\033[0m + which should be the same as this header: + \033[36mAuthorization: Basic \033[35mZWQ6aHVudGVyMg==\033[0m + """ + ), + ], + [ + "auth-ord", + "authentication precedence", + dedent( + """ + \033[33m--auth-ord\033[0m is a comma-separated list of auth options + (one or more of the [\033[35moptions\033[0m] below); first one wins + + [\033[35mpw\033[0m] is conventional login, for example the "\033[36mPW\033[0m" header, + or the \033[36m?pw=\033[0m[...] URL-suffix, or a valid session cookie + (see \033[33m--help-auth\033[0m) + + [\033[35midp\033[0m] is a username provided in the http-request-header + defined by \033[33m--idp-h-usr\033[0m and/or \033[33m--idp-hm-usr\033[0m, which is + provided by an authentication middleware such as + authentik, authelia, tailscale, ... (see \033[33m--help-idp\033[0m) + + [\033[35midp-h\033[0m] is specifically an \033[33m--idp-h-usr\033[0m header, + [\033[35midp-hm\033[0m] is specifically an \033[33m--idp-hm-usr\033[0m header; + [\033[35midp\033[0m] is the same as [\033[35midp-hm,idp-h\033[0m] + + [\033[35mipu\033[0m] is a mapping from an IP-address to a username, + auto-authing that client-IP to that account + (see the description of \033[36m--ipu\033[0m in \033[33m--help\033[0m) + + NOTE: even if an option (\033[35mpw\033[0m/\033[35mipu\033[0m/...) is not in the list, + it may still be enabled and can still take effect if + none of the other alternatives identify the user + + NOTE: if [\033[35mipu\033[0m] is in the list, it must be FIRST or LAST + + NOTE: if [\033[35mpw\033[0m] is not in the list, the logout-button + will be hidden when any idp feature is enabled """ ), ], @@ -719,7 +828,7 @@ def get_sects(): \033[36mc0\033[35m show all process output (default) \033[36mc1\033[35m show only stderr \033[36mc2\033[35m show only stdout - \033[36mc3\033[35m mute all process otput + \033[36mc3\033[35m mute all process output \033[0m examples: @@ -762,6 +871,41 @@ def get_sects(): the upload speed can easily drop to 10% for small files)""" ), ], + [ + "idp", + "replacing the login system with fancy middleware", + dedent( + """ + if you already have a centralized service which handles + user-authentication for other services already, you can + integrate copyparty with that for automatic login + + if the middleware is providing the username in an http-header + named '\033[35mtheUsername\033[0m' then do this: \033[36m--idp-h-usr theUsername\033[0m + + if the middleware is providing a list of groups in the header + named '\033[35mtheGroups\033[0m' then do this: \033[36m--idp-h-grp theGroup\033[0m + + if the list of groups is separated by '\033[35m%\033[0m' then \033[36m--idp-gsep %\033[0m + + if the middleware is providing a header named '\033[35mAccount\033[0m' + and the value is '\033[35malice@forest.net\033[0m' but the username is + actually '\033[35mmarisa\033[0m' then do this for each user: + \033[36m--idp-hm-usr ^Account^alice@forest.net^marisa\033[0m + (the separator '\033[35m^\033[0m' can be any character) + + make ABSOLUTELY SURE that the header can only be set by your + middleware and not by clients! and, as an extra precaution, + send a header named '\033[36mfinalmasterspark\033[0m' (a secret keyword) + and then \033[36m--idp-h-key finalmasterspark\033[0m to require that + + the login/logout links/buttons can be replaced with links + going to your IdP's UI; \033[36m--idp-login /login/?redir={dst}\033[0m + will expand \033[36m{dst}\033[0m to the URL of the current page, so + the IdP can redirect the user back to where they were + """ + ), + ], [ "urlform", "how to handle url-form POSTs", @@ -1006,6 +1150,7 @@ def add_general(ap, nc, srvname): ap2.add_argument("-v", metavar="VOL", type=u, action="append", help="\033[34mREPEATABLE:\033[0m add volume, \033[33mSRC\033[0m:\033[33mDST\033[0m:\033[33mFLAG\033[0m; examples [\033[32m.::r\033[0m], [\033[32m/mnt/nas/music:/music:r:aed\033[0m], see --help-accounts") ap2.add_argument("--grp", metavar="G:N,N", type=u, action="append", help="\033[34mREPEATABLE:\033[0m add group, \033[33mNAME\033[0m:\033[33mUSER1\033[0m,\033[33mUSER2\033[0m,\033[33m...\033[0m; example [\033[32madmins:ed,foo,bar\033[0m]") ap2.add_argument("--usernames", action="store_true", help="require username and password for login; default is just password") + ap2.add_argument("--chdir", metavar="PATH", type=u, help="change working-directory to \033[33mPATH\033[0m before mapping volumes") ap2.add_argument("-ed", action="store_true", help="enable the ?dots url parameter / client option which allows clients to see dotfiles / hidden files (volflag=dots)") ap2.add_argument("--urlform", metavar="MODE", type=u, default="print,xm", help="how to handle url-form POSTs; see \033[33m--help-urlform\033[0m") ap2.add_argument("--wintitle", metavar="TXT", type=u, default="cpp @ $pub", help="server terminal title, for example [\033[32m$ip-10.1.2.\033[0m] or [\033[32m$ip-]") @@ -1019,14 +1164,19 @@ def add_general(ap, nc, srvname): def add_qr(ap, tty): ap2 = ap.add_argument_group("qr options") - ap2.add_argument("--qr", action="store_true", help="show http:// QR-code on startup") - ap2.add_argument("--qrs", action="store_true", help="show https:// QR-code on startup") + ap2.add_argument("--qr", action="store_true", help="show QR-code on startup") + ap2.add_argument("--qrs", action="store_true", help="change the QR-code URL to https://") ap2.add_argument("--qrl", metavar="PATH", type=u, default="", help="location to include in the url, for example [\033[32mpriv/?pw=hunter2\033[0m]") ap2.add_argument("--qri", metavar="PREFIX", type=u, default="", help="select IP which starts with \033[33mPREFIX\033[0m; [\033[32m.\033[0m] to force default IP when mDNS URL would have been used instead") - ap2.add_argument("--qr-fg", metavar="COLOR", type=int, default=0 if tty else 16, help="foreground; try [\033[32m0\033[0m] if the qr-code is unreadable") + ap2.add_argument("--qr-fg", metavar="COLOR", type=int, default=0 if tty else 16, help="foreground; try [\033[32m0\033[0m] or [\033[32m-1\033[0m] if the qr-code is unreadable") ap2.add_argument("--qr-bg", metavar="COLOR", type=int, default=229, help="background (white=255)") ap2.add_argument("--qrp", metavar="CELLS", type=int, default=4, help="padding (spec says 4 or more, but 1 is usually fine)") ap2.add_argument("--qrz", metavar="N", type=int, default=0, help="[\033[32m1\033[0m]=1x, [\033[32m2\033[0m]=2x, [\033[32m0\033[0m]=auto (try [\033[32m2\033[0m] on broken fonts)") + ap2.add_argument("--qr-pin", metavar="N", type=int, default=0, help="sticky/pin the qr-code to always stay on-screen; [\033[32m0\033[0m]=disabled, [\033[32m1\033[0m]=with-url, [\033[32m2\033[0m]=just-qr") + ap2.add_argument("--qr-wait", metavar="SEC", type=float, default=0, help="wait \033[33mSEC\033[0m before printing the qr-code to the log") + ap2.add_argument("--qr-every", metavar="SEC", type=float, default=0, help="print the qr-code every \033[33mSEC\033[0m (try this with/without --qr-pin in case of issues)") + ap2.add_argument("--qr-winch", metavar="SEC", type=float, default=0, help="when --qr-pin is enabled, check for terminal size change every \033[33mSEC\033[0m") + ap2.add_argument("--qr-file", metavar="TXT", type=u, action="append", help="\033[34mREPEATABLE:\033[0m write qr-code to file.\n โโTo create txt or svg, \033[33mTXT\033[0m is Filepath:Zoom:Pad, for example [\033[32mqr.txt:1:2\033[0m]\n โโTo create png or gif, \033[33mTXT\033[0m is Filepath:Zoom:Pad:Foreground:Background, for example [\033[32mqr.png:8:2:333333:ffcc55\033[0m], or [\033[32mqr.png:8:2::ffcc55\033[0m] for transparent") def add_fs(ap): @@ -1043,6 +1193,7 @@ def add_share(ap): ap2 = ap.add_argument_group("share-url options") ap2.add_argument("--shr", metavar="DIR", type=u, default="", help="toplevel virtual folder for shared files/folders, for example [\033[32m/share\033[0m]") ap2.add_argument("--shr-db", metavar="FILE", type=u, default=db_path, help="database to store shares in") + ap2.add_argument("--shr-who", metavar="TXT", type=u, default="auth", help="who can create a share? [\033[32mno\033[0m]=nobody, [\033[32ma\033[0m]=admin-permission, [\033[32mauth\033[0m]=authenticated (volflag=shr_who)") ap2.add_argument("--shr-adm", metavar="U,U", type=u, default="", help="comma-separated list of users allowed to view/delete any share") ap2.add_argument("--shr-rt", metavar="MIN", type=int, default=1440, help="shares can be revived by their owner if they expired less than MIN minutes ago; [\033[32m60\033[0m]=hour, [\033[32m1440\033[0m]=day, [\033[32m10080\033[0m]=week") ap2.add_argument("--shr-v", action="store_true", help="debug") @@ -1056,6 +1207,7 @@ def add_upload(ap): ap2.add_argument("--put-ck", metavar="ALG", type=u, default="sha512", help="default checksum-hasher for PUT/WebDAV uploads: no / md5 / sha1 / sha256 / sha512 / b2 / blake2 / b2s / blake2s (volflag=put_ck)") ap2.add_argument("--bup-ck", metavar="ALG", type=u, default="sha512", help="default checksum-hasher for bup/basic-uploader: no / md5 / sha1 / sha256 / sha512 / b2 / blake2 / b2s / blake2s (volflag=bup_ck)") ap2.add_argument("--unpost", metavar="SEC", type=int, default=3600*12, help="grace period where uploads can be deleted by the uploader, even without delete permissions; 0=disabled, default=12h") + ap2.add_argument("--unp-who", metavar="NUM", type=int, default=1, help="clients can undo recent uploads by using the unpost tab (requires \033[33m-e2d\033[0m). [\033[32m0\033[0m] = never allowed (disable feature), [\033[32m1\033[0m] = allow if client has the same IP as the upload AND is using the same account, [\033[32m2\033[0m] = just check the IP, [\033[32m3\033[0m] = just check account-name (volflag=unp_who)") ap2.add_argument("--u2abort", metavar="NUM", type=int, default=1, help="clients can abort incomplete uploads by using the unpost tab (requires \033[33m-e2d\033[0m). [\033[32m0\033[0m] = never allowed (disable feature), [\033[32m1\033[0m] = allow if client has the same IP as the upload AND is using the same account, [\033[32m2\033[0m] = just check the IP, [\033[32m3\033[0m] = just check account-name (volflag=u2abort)") ap2.add_argument("--blank-wt", metavar="SEC", type=int, default=300, help="file write grace period (any client can write to a blank file last-modified more recently than \033[33mSEC\033[0m seconds ago)") ap2.add_argument("--reg-cap", metavar="N", type=int, default=38400, help="max number of uploads to keep in memory when running without \033[33m-e2d\033[0m; roughly 1 MiB RAM per 600") @@ -1149,7 +1301,8 @@ def add_auth(ap): idp_db = os.path.join(E.cfg, "idp.db") ses_db = os.path.join(E.cfg, "sessions.db") ap2 = ap.add_argument_group("IdP / identity provider / user authentication options") - ap2.add_argument("--idp-h-usr", metavar="HN", type=u, default="", help="bypass the copyparty authentication checks if the request-header \033[33mHN\033[0m contains a username to associate the request with (for use with authentik/oauth/...)\n\033[1;31mWARNING:\033[0m if you enable this, make sure clients are unable to specify this header themselves; must be washed away and replaced by a reverse-proxy") + ap2.add_argument("--idp-h-usr", metavar="HN", type=u, action="append", help="\033[34mREPEATABLE:\033[0m bypass the copyparty authentication checks if the request-header \033[33mHN\033[0m contains a username to associate the request with (for use with authentik/oauth/...)\n\033[1;31mWARNING:\033[0m if you enable this, make sure clients are unable to specify this header themselves; must be washed away and replaced by a reverse-proxy") + ap2.add_argument("--idp-hm-usr", metavar="T", type=u, action="append", help="\033[34mREPEATABLE:\033[0m bypass the copyparty authentication checks if the request-header \033[33mT\033[0m is provided, and its value exists in a mapping defined by this option; see --help-idp") ap2.add_argument("--idp-h-grp", metavar="HN", type=u, default="", help="assume the request-header \033[33mHN\033[0m contains the groupname of the requesting user; can be referenced in config files for group-based access control") ap2.add_argument("--idp-h-key", metavar="HN", type=u, default="", help="optional but recommended safeguard; your reverse-proxy will insert a secret header named \033[33mHN\033[0m into all requests, and the other IdP headers will be ignored if this header is not present") ap2.add_argument("--idp-gsep", metavar="RE", type=u, default="|:;+,", help="if there are multiple groups in \033[33m--idp-h-grp\033[0m, they are separated by one of the characters in \033[33mRE\033[0m") @@ -1157,12 +1310,24 @@ def add_auth(ap): ap2.add_argument("--idp-store", metavar="N", type=int, default=1, help="how to use \033[33m--idp-db\033[0m; [\033[32m0\033[0m] = entirely disable, [\033[32m1\033[0m] = write-only (effectively disabled), [\033[32m2\033[0m] = remember users, [\033[32m3\033[0m] = remember users and groups.\nNOTE: Will remember and restore the IdP-volumes of all users for all eternity if set to 2 or 3, even when user is deleted from your IdP") ap2.add_argument("--idp-adm", metavar="U,U", type=u, default="", help="comma-separated list of users allowed to use /?idp (the cache management UI)") ap2.add_argument("--idp-cookie", metavar="S", type=int, default=0, help="generate a session-token for IdP users which is written to cookie \033[33mcppws\033[0m (or \033[33mcppwd\033[0m if plaintext), to reduce the load on the IdP server, lifetime \033[33mS\033[0m seconds.\n โโnote: The expiration time is a client hint only; the actual lifetime of the session-token is infinite (until next restart with \033[33m--ses-db\033[0m wiped)") + ap2.add_argument("--idp-login", metavar="L", type=u, default="", help="replace all login-buttons with a link to URL \033[33mL\033[0m (unless \033[32mpw\033[0m is in \033[33m--auth-ord\033[0m then both will be shown); [\033[32m{dst}\033[0m] expands to url of current page") + ap2.add_argument("--idp-login-t", metavar="T", type=u, default="Login with SSO", help="the label/text for the idp-login button") + ap2.add_argument("--idp-logout", metavar="L", type=u, default="", help="replace all logout-buttons with a link to URL \033[33mL\033[0m") + ap2.add_argument("--auth-ord", metavar="TXT", type=u, default="idp,ipu", help="controls auth precedence; examples: [\033[32mpw,idp,ipu\033[0m], [\033[32mipu,pw,idp\033[0m], see --help-auth-ord") ap2.add_argument("--no-bauth", action="store_true", help="disable basic-authentication support; do not accept passwords from the 'Authenticate' header at all. NOTE: This breaks support for the android app") ap2.add_argument("--bauth-last", action="store_true", help="keeps basic-authentication enabled, but only as a last-resort; if a cookie is also provided then the cookie wins") ap2.add_argument("--ses-db", metavar="PATH", type=u, default=ses_db, help="where to store the sessions database (if you run multiple copyparty instances, make sure they use different DBs)") ap2.add_argument("--ses-len", metavar="CHARS", type=int, default=20, help="session key length; default is 120 bits ((20//4)*4*6)") ap2.add_argument("--no-ses", action="store_true", help="disable sessions; use plaintext passwords in cookies") + ap2.add_argument("--grp-all", metavar="NAME", type=u, default="acct", help="the name of the auto-generated group which contains every username which is known") ap2.add_argument("--ipu", metavar="CIDR=USR", type=u, action="append", help="\033[34mREPEATABLE:\033[0m users with IP matching \033[33mCIDR\033[0m are auto-authenticated as username \033[33mUSR\033[0m; example: [\033[32m172.16.24.0/24=dave]") + ap2.add_argument("--ipr", metavar="CIDR=USR", type=u, action="append", help="\033[34mREPEATABLE:\033[0m username \033[33mUSR\033[0m can only connect from an IP matching one or more \033[33mCIDR\033[0m (comma-sep.); example: [\033[32m192.168.123.0/24,172.16.0.0/16=dave]") + ap2.add_argument("--have-idp-hdrs", type=u, default="", help=argparse.SUPPRESS) + ap2.add_argument("--have-ipu-or-ipr", type=u, default="", help=argparse.SUPPRESS) + ap2.add_argument("--ao-idp-before-pw", type=u, default="", help=argparse.SUPPRESS) + ap2.add_argument("--ao-h-before-hm", type=u, default="", help=argparse.SUPPRESS) + ap2.add_argument("--ao-ipu-wins", type=u, default="", help=argparse.SUPPRESS) + ap2.add_argument("--ao-have-pw", type=u, default="", help=argparse.SUPPRESS) def add_chpw(ap): @@ -1201,6 +1366,7 @@ def add_zc_mdns(ap): ap2.add_argument("--zm-lh", metavar="PATH", type=u, default="", help="link a specific folder for http shares") ap2.add_argument("--zm-lf", metavar="PATH", type=u, default="", help="link a specific folder for ftp shares") ap2.add_argument("--zm-ls", metavar="PATH", type=u, default="", help="link a specific folder for smb shares") + ap2.add_argument("--zm-fqdn", metavar="FQDN", type=u, default="--name.local", help="the domain to announce; NOTE: using anything other than .local is nonstandard and could cause problems") ap2.add_argument("--zm-mnic", action="store_true", help="merge NICs which share subnets; assume that same subnet means same network") ap2.add_argument("--zm-msub", action="store_true", help="merge subnets on each NIC -- always enabled for ipv6 -- reduces network load, but gnome-gvfs clients may stop working, and clients cannot be in subnets that the server is not") ap2.add_argument("--zm-noneg", action="store_true", help="disable NSEC replies -- try this if some clients don't see copyparty") @@ -1307,6 +1473,7 @@ def add_yolo(ap): ap2.add_argument("--no-fnugg", action="store_true", help="disable the smoketest for caching-related issues in the web-UI") ap2.add_argument("--getmod", action="store_true", help="permit ?move=[...] and ?delete as GET") ap2.add_argument("--wo-up-readme", action="store_true", help="allow users with write-only access to upload logues and readmes without adding the _wo_ filename prefix (volflag=wo_up_readme)") + ap2.add_argument("--unsafe-state", action="store_true", help="when one of the emergency fallback locations are used for runtime state ($TMPDIR, /tmp), certain features will be force-disabled for security reasons by default. This option overrides that safeguard and allows unsafe storage of secrets") def add_optouts(ap): @@ -1317,9 +1484,10 @@ def add_optouts(ap): ap2.add_argument("--no-del", action="store_true", help="disable delete operations") ap2.add_argument("--no-mv", action="store_true", help="disable move/rename operations") ap2.add_argument("--no-cp", action="store_true", help="disable copy operations") + ap2.add_argument("--no-fs-abrt", action="store_true", help="disable ability to abort ongoing copy/move") ap2.add_argument("-nth", action="store_true", help="no title hostname; don't show \033[33m--name\033[0m in
.PARTIAL
ๆไปถๆฉๅฑๅ็ๅๅๆไปถใ่ฏทๆๅๆถๆ Escape ๆง่กๆญคๆไฝใ\n\nๆ OK / Enter ๅฐๅฟฝ็ฅๆญค่ญฆๅๅนถ็ปง็ปญไธ่ฝฝ .PARTIAL
ไธดๆถๆไปถ๏ผ่ฟๅ ไน่ฏๅฎไผๅฏผ่ดๆฐๆฎๆๅใ",
+ "f_partial": "่ฆๅฎๅ
จไธ่ฝฝๆญฃๅจไธไผ ็ๆไปถ๏ผ่ฏท็นๅปๆฒกๆ .PARTIAL
ๆไปถๆฉๅฑๅ็ๅๅๆไปถใ่ฏทๆๅๆถๆ Escape ๆง่กๆญคๆไฝใ\n\nๆ ็กฎๅฎ / Enter ๅฐๅฟฝ็ฅๆญค่ญฆๅๅนถ็ปง็ปญไธ่ฝฝ .PARTIAL
ไธดๆถๆไปถ๏ผ่ฟๅ ไน่ฏๅฎไผๅฏผ่ดๆฐๆฎๆๅใ",
"ft_paste": "็ฒ่ดด {0} ้กน$Nๅฟซๆท้ฎ: ctrl-V",
"fr_eperm": 'ๆ ๆณ้ๅฝๅ๏ผ\nไฝ ๅจๆญคๆไปถๅคนไธญๆฒกๆ โ็งปๅจโ ๆ้',
@@ -1686,6 +1691,7 @@ var Ls = {
"fcp_ok": "ๅคๅถๆๅ", //m
"fp_busy": "ๆญฃๅจ็งปๅจ {0} ้กน...\n\n{1}",
"fcp_busy": "ๆญฃๅจๅคๅถ {0} ้กน...\n\n{1}", //m
+ "fp_abrt": "ๆญฃๅจไธญๆญข...", //m
"fp_err": "็งปๅจๅคฑ่ดฅ๏ผ\n",
"fcp_err": "ๅคๅถๅคฑ่ดฅ๏ผ\n", //m
"fp_confirm": "ๅฐ่ฟไบ {0} ้กน็งปๅจๅฐ่ฟ้๏ผ",
@@ -2006,6 +2012,7 @@ var Ls = {
"gou": 'nadลazenรก sloลพka">nahoru',
"gon": 'nรกsledujรญcรญ sloลพka">nรกsledujรญcรญ',
"logout": "Odhlรกsit ",
+ "login": "Pลihlรกsit se", //m
"access": " pลรญstup",
"ot_close": "zavลรญt podnabรญdku",
"ot_search": "hledat soubory podle atributลฏ, cesty / nรกzvu, hudebnรญch tagลฏ nebo jejich kombinace$N$N<code>foo bar</code> = musรญ obsahovat jak ยซfooยป tak ยซbarยป,$N<code>foo -bar</code> = musรญ obsahovat ยซfooยป ale ne ยซbarยป,$N<code>^yana .opus$</code> = zaฤรญnรก na ยซyanaยป a je to ยซopusยป soubor$N<code>"try unite"</code> = obsahuje pลesnฤ ยซtry uniteยป$N$Nformรกt data je iso-8601, jako$N<code>2009-12-31</code> nebo <code>2020-09-12 23:30:00</code>",
@@ -2192,9 +2199,9 @@ var Ls = {
"mt_mloop": "opakovat otevลenou sloลพku\">๐ loop",
"mt_mnext": "naฤรญst dalลกรญ sloลพku a pokraฤovat\">๐ next",
"mt_mstop": "zastavit pลehrรกvรกnรญ\">โธ stop",
- "mt_cflac": "pลevรฉst flac / wav na opus\">flac",
- "mt_caac": "pลevรฉst aac / m4a na opus\">aac",
- "mt_coth": "pลevรฉst vลกechny ostatnรญ (ne mp3) na opus\">oth",
+ "mt_cflac": "pลevรฉst flac / wav na {0}\">flac",
+ "mt_caac": "pลevรฉst aac / m4a na {0}\">aac",
+ "mt_coth": "pลevรฉst vลกechny ostatnรญ (ne mp3) na {0}\">oth",
"mt_c2opus": "nejlepลกรญ volba pro desktopy, laptopy, android\">opus",
"mt_c2owa": "opus-weba, pro iOS 17.5 a novฤjลกรญ\">owa",
"mt_c2caf": "opus-caf, pro iOS 11 aลพ 17\">caf",
@@ -2211,7 +2218,7 @@ var Ls = {
"mb_play": "pลehrรกt",
"mm_hashplay": "pลehrรกt tento audio soubor?",
- "mm_m3u": "stisknฤte Enter/OK
pro Pลehrรกnรญ\nstisknฤte ESC/Cancel
pro รpravu",
+ "mm_m3u": "stisknฤte Enter/OK
pro Pลehrรกnรญ\nstisknฤte ESC/Zruลกit
pro รpravu",
"mp_breq": "potลebujete firefox 82+ nebo chrome 73+ nebo iOS 15+",
"mm_bload": "nynรญ se naฤรญtรก...",
"mm_bconv": "pลevรกdรญ se na {0}, ฤekejte prosรญm...",
@@ -2244,7 +2251,7 @@ var Ls = {
"f_dls": 'odkazy na soubory v aktuรกlnรญ sloลพce byly\nzmฤnฤny na odkazy ke staลพenรญ',
- "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 .PARTIAL
. Stisknฤte prosรญm CANCEL nebo Escape.\n\nStisknutรญm OK / Enter ignorujete toto varovรกnรญ a pokraฤujete ve stahovรกnรญ .PARTIAL
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 .PARTIAL
. Stisknฤte prosรญm Zruลกit nebo Escape.\n\nStisknutรญm OK / Enter ignorujete toto varovรกnรญ a pokraฤujete ve stahovรกnรญ .PARTIAL
doฤasnรฉho souboru, coลพ tรฉmฤล jistฤ vyรบstรญ jako poลกkozenรก data.",
"ft_paste": "vloลพit {0} poloลพek$NKlรกvesovรก zkratka: ctrl-V",
"fr_eperm": 'nelze pลejmenovat:\nnemรกte oprรกvnฤnรญ โpลesunoutโ v tรฉto sloลพce',
@@ -2319,6 +2326,7 @@ var Ls = {
"fcp_ok": "kopรญrovรกnรญ OK",
"fp_busy": "pลesouvรกm {0} poloลพek...\n\n{1}",
"fcp_busy": "kopรญruji {0} poloลพek...\n\n{1}",
+ "fp_abrt": "pลeruลกuji...", //m
"fp_err": "pลesun selhal:\n",
"fcp_err": "kopรญrovรกnรญ selhalo:\n",
"fp_confirm": "pลesunout tฤchto {0} poloลพek sem?",
@@ -2463,7 +2471,7 @@ var Ls = {
"u_enoow": "pลepsรกnรญ zde nebude fungovat; je vyลพadovรกno oprรกvnฤnรญ k mazรกnรญ",
"u_badf": "Tฤchto {0} souborลฏ (z celkem {1}) bylo pลeskoฤeno, pravdฤpodobnฤ kvลฏli oprรกvnฤnรญm v souborovรฉm systรฉmu:\n\n",
"u_blankf": "Tฤchto {0} souborลฏ (z celkem {1}) je prรกzdnรฝch; pลesto je nahrรกt?\n\n",
- "u_applef": "Tฤchto {0} souborลฏ (z celkem {1}) je pravdฤpodobnฤ neลพรกdoucรญch;\nStisknฤte OK/Enter
pro PลESKOฤENร nรกsledujรญcรญch souborลฏ,\nStisknฤte Cancel/ESC
pro Zahrnutรญ a NAHRรNร i tฤchto souborลฏ:\n\n",
+ "u_applef": "Tฤchto {0} souborลฏ (z celkem {1}) je pravdฤpodobnฤ neลพรกdoucรญch;\nStisknฤte OK/Enter
pro PลESKOฤENร nรกsledujรญcรญch souborลฏ,\nStisknฤte Zruลกit/ESC
pro Zahrnutรญ a NAHRรNร i tฤchto souborลฏ:\n\n",
"u_just1": "\nMoลพnรก to bude fungovat lรฉpe, kdyลพ vyberete pouze jeden soubor",
"u_ff_many": "pokud pouลพรญvรกte Linux / MacOS / Android, takovรฉ mnoลพstvรญ souborลฏ mลฏลพe shodit Firefox!\npokud se to stane, zkuste to prosรญm znovu (nebo pouลพijte Chrome).",
"u_up_life": "Tento upload bude smazรกn ze serveru\n{0} po jeho dokonฤenรญ",
@@ -2635,6 +2643,7 @@ var Ls = {
"gou": 'zum รผbergeordneter Ordner springen">hoch',
"gon": 'zum nรคchsten Ordner springen">nรคchst.',
"logout": "Abmelden ",
+ "login": "Anmelden", //m
"access": " Zugriff",
"ot_close": "Submenu schliessen",
"ot_search": "Dateien nach Attributen, Pfad/Name, Musiktags oder beliebiger Kombination suchen$N$N<code>foo bar</code> = muss ยซfooยป und ยซbarยป enthalten,$N<code>foo -bar</code> = muss ยซfooยป aber nicht ยซbarยป enthalten,$N<code>^yana .opus$</code> = beginnt mit ยซyanaยป und ist ยซopusยป-Datei$N<code>"try unite"</code> = genau ยซtry uniteยป enthalten$N$NDatumsformat ist iso-8601, z.B.$N<code>2009-12-31</code> oder <code>2020-09-12 23:30:00</code>",
@@ -2821,9 +2830,9 @@ var Ls = {
"mt_mloop": "offenen Ordner wiederholen\">๐ Schleife",
"mt_mnext": "nรคchsten Ordner laden und fortfahren\">๐ nรคchster",
"mt_mstop": "Wiedergabe beenden\">โธ Stop",
- "mt_cflac": "FLAC / WAV zu OPUS konvertierebn\">flac",
- "mt_caac": "AAC / M4A zu OPUS konvertieren\">aac",
- "mt_coth": "Convertiere alle Dateien (die nicht MP3 sind) zu OPUS\">oth",
+ "mt_cflac": "FLAC / WAV zu {0} konvertierebn\">flac",
+ "mt_caac": "AAC / M4A zu {0} konvertieren\">aac",
+ "mt_coth": "Convertiere alle Dateien (die nicht MP3 sind) zu {0}\">oth",
"mt_c2opus": "Beste Wahl fรผr Desktops, Laptops, Android\">opus",
"mt_c2owa": "opus-weba, fรผr iOS 17.5 und neuer\">owa",
"mt_c2caf": "opus-caf, fรผr iOS 11 bis 17\">caf",
@@ -2948,6 +2957,7 @@ var Ls = {
"fcp_ok": "Kopieren OK",
"fp_busy": "Verschiebe {0} Elemente...\n\n{1}",
"fcp_busy": "Kopiere {0} Elemente...\n\n{1}",
+ "fp_abrt": "Abbrechen...", //m
"fp_err": "Verschieben fehlgeschlagen:\n",
"fcp_err": "Kopieren fehlgeschlagen:\n",
"fp_confirm": "Diese {0} Elemente hierher verschieben?",
@@ -3264,6 +3274,7 @@ var Ls = {
"gou": 'ylempi hakemisto">ylรถs',
"gon": 'seuraava hakemisto">seur',
"logout": "Kirjaudu ulos ",
+ "login": "Kirjaudu sisรครคn", //m
"access": " -oikeudet",
"ot_close": "sulje alavalikko",
"ot_search": "etsi tiedostoja ominaisuuksien, tiedostopolun tai -nimen, musiikkitรคgien tai nรคiden yhdistelmรคn perusteella$N$N<code>foo bar</code> = tรคytyy sisรคltรครค sekรค ยซfooยป ettรค ยซbarยป,$N<code>foo -bar</code> = tรคytyy sisรคltรครค ยซfooยป mutta ei ยซbarยป,$N<code>^yana .opus$</code> = alkaa ยซyanaยป ja on ยซopusยป-tiedosto$N<code>"try unite"</code> = sisรคltรครค tรคsmรคlleen ยซtry uniteยป$N$Npรคivรคmรครคrรคn muoto on iso-8601, kuten$N<code>2009-12-31</code> tai <code>2020-09-12 23:30:00</code>",
@@ -3450,9 +3461,9 @@ var Ls = {
"mt_mloop": "toista avoinna olevaa hakemistoa loputtomasti\">๐ alkuun",
"mt_mnext": "lataa seuraava hakemisto ja jatka\">๐ seuraava",
"mt_mstop": "pysรคytรค toisto\">โธ pysรคytรค",
- "mt_cflac": "muunna flac / wav opus-muotoon\">flac",
- "mt_caac": "muunna aac / m4a opus-muotoon\">aac",
- "mt_coth": "muunna kaikki muut paitsi mp3 opus-muotoon\">muut",
+ "mt_cflac": "muunna flac / wav {0}-muotoon\">flac",
+ "mt_caac": "muunna aac / m4a {0}-muotoon\">aac",
+ "mt_coth": "muunna kaikki muut paitsi mp3 {0}-muotoon\">muut",
"mt_c2opus": "paras valinta pรถytรคkoneille, kannettaville, androidille\">opus",
"mt_c2owa": "opus-weba, iOS 17.5:lle ja uudemmille\">owa",
"mt_c2caf": "opus-caf, iOS 11:lle - 17:lle\">caf",
@@ -3532,7 +3543,7 @@ var Ls = {
"fs_tsrc": "jaettava tiedosto tai hakemisto",
"fs_ppwd": "valinnainen salasana",
"fs_w8": "luodaan sharea...",
- "fs_ok": "paina Enter/OK
lisรคtรคksesi leikepรถydรคlle\npaina ESC/Cancel
sulkeaksesi",
+ "fs_ok": "paina Enter/OK
lisรคtรคksesi leikepรถydรคlle\npaina ESC/Peruuta
sulkeaksesi",
"frt_dec": "saattaa korjata joitakin rikkinรคisiรค tiedostonimiรค\">url-decode",
"frt_rst": "palauta muokatut tiedostonimet takaisin alkuperรคisiksi\">โบ palauta",
@@ -3577,6 +3588,7 @@ var Ls = {
"fcp_ok": "kopiointi OK",
"fp_busy": "siirretรครคn {0} kohdetta...\n\n{1}",
"fcp_busy": "kopioidaan {0} kohdetta...\n\n{1}",
+ "fp_abrt": "keskeytetรครคn...", //m
"fp_err": "siirto epรคonnistui:\n",
"fcp_err": "kopiointi epรคonnistui:\n",
"fp_confirm": "siirrรค nรคmรค {0} kohdetta tรคnne?",
@@ -3721,7 +3733,7 @@ var Ls = {
"u_enoow": "ylikirjoitus ei toimi tรครคllรค; tarvitaan โDeleteโ-oikeus",
"u_badf": 'Nรคmรค {0} tiedostoa ({1} yhteensรค) ohitettiin, mahdollisesti tiedostojรคrjestelmรคn oikeuksien vuoksi:\n\n',
"u_blankf": 'Nรคmรค {0} tiedostoa ({1} yhteensรค) ovat tyhjiรค; ladataanko ne silti?\n\n',
- "u_applef": 'Nรคmรค {0} tiedostoa ({1} yhteensรค) ovat todennรคkรถisesti ei-toivottuja;\nPaina OK/Enter
OHITTAAKSESI seuraavat tiedostot,\nPaina Cancel/ESC
jos ET halua sulkea pois, ja LATAA nekin:\n\n',
+ "u_applef": 'Nรคmรค {0} tiedostoa ({1} yhteensรค) ovat todennรคkรถisesti ei-toivottuja;\nPaina OK/Enter
OHITTAAKSESI seuraavat tiedostot,\nPaina Peruuta/ESC
jos ET halua sulkea pois, ja LATAA nekin:\n\n',
"u_just1": '\nEhkรค toimii paremmin jos valitset vain yhden tiedoston',
"u_ff_many": "jos kรคytรคt Linux / MacOS / Android, niin tรคmรค mรครคrรค tiedostoja saattaa kaataa Firefoxin!\njos niin kรคy, kokeile uudelleen (tai kรคytรค Chromea).",
"u_up_life": "Tรคmรค lataus poistetaan palvelimelta\n{0} sen valmistumisen jรคlkeen",
@@ -3785,6 +3797,637 @@ var Ls = {
"lang_set": "ladataanko sivu uudestaan kielen vaihtamiseksi?",
},
+ "fra": {
+ "tt": "franรงais",
+
+ "cols": {
+ "c": "bouton d'action",
+ "dur": "durรฉe",
+ "q": "qualitรฉ / dรฉbit binaire",
+ "Ac": "codec audio",
+ "Vc": "codec vidรฉo",
+ "Fmt": "format / conteneur",
+ "Ahash": "somme de contrรดle audio",
+ "Vhash": "somme de contrรดle vidรฉo",
+ "Res": "rรฉsolution",
+ "T": "type de fichier",
+ "aq": "qualitรฉ audio / dรฉbit binaire",
+ "vq": "qualitรฉ vidรฉo / dรฉbit binaire",
+ "pixfmt": "sous-รฉchantillonnage / structure de pixel",
+ "resw": "rรฉsolution horizontale",
+ "resh": "rรฉsolution verticale",
+ "chs": "canaux audio",
+ "hz": "frรฉquence"
+ },
+
+ "hks": [
+ [
+ "misc",
+ ["รchap", "ferme divers menus"],
+
+ "gestionaire de fichiers",
+ ["G", "activer vue en liste / vue en grille"],
+ ["T", "activer les miniatures / icรดnes"],
+ ["โง A/D", "taille des miniatures"],
+ ["ctrl-K", "suprimer la sรฉlection"],
+ ["ctrl-X", "couper la sรฉlection au presse-papier"],
+ ["ctrl-C", "copier la sรฉlection au presse-papier"],
+ ["ctrl-V", "coller (dรฉplacer/copier) ici"],
+ ["Y", "tรฉlรฉcharger la sรฉlection"],
+ ["F2", "renomer la sรฉlection"],
+
+ "file-list-sel",
+ ["Espace", "activer la sรฉlection de fichiers"],
+ ["โ/โ", "dรฉplacer le selecteur"],
+ ["ctrl โ/โ", "dรฉplacer le curseur et la zone d'affichage"],
+ ["โง โ/โ", "sรฉlectioner le fichier prรฉcรฉdent/suivant"],
+ ["ctrl-A", "sรฉlectionner tout les fichiers / dossiers"],
+ ], [
+ "navigation",
+ ["B", "basculer la vue en fil d'Ariane / panneau de navigation"],
+ ["I/K", "dossier prรฉcรฉdent/suivant"],
+ ["M", "dossier parent (ou rรฉduire le dossier actuel)"],
+ ["V", "activer les dossiers / fichiers texte dans le volet de navigation"],
+ ["A/D", "taille du volet de navigation"],
+ ], [
+ "lecteur-audio",
+ ["J/L", "chanson prรฉcรฉdente/suivante"],
+ ["U/O", "sauter 10s en arriรจre/avant"],
+ ["0..9", "sauter ร 0%..90%"],
+ ["P", "lecture/pause (dรฉmarre รฉgalement la lecture)"],
+ ["S", "sรฉlectionner la chanson en cours"],
+ ["Y", "tรฉlรฉcharger le morceau"],
+ ], [
+ "visionneuse d'image",
+ ["J/L, โ/โ", "image prรฉcรฉdente/suivante"],
+ ["Dรฉbut/Fin, โญฆ/Fin", "premiรจre/derniรจre image"],
+ ["F", "plein รฉcran"],
+ ["R", "rotation horaire"],
+ ["โง R", "rotation antihoraire"],
+ ["S", "sรฉlectionner l'image"],
+ ["Y", "tรฉlรฉcharger l'image"],
+ ], [
+ "lecteur vidรฉo",
+ ["U/O", "sauter 10s en arriรจre/avant"],
+ ["P/K/Espace", "lecture/pause"],
+ ["C", "continuer de lire la suivante"],
+ ["V", "lire en boucle"],
+ ["M", "couper le son"],
+ ["[ and ]", "dรฉfinir l'intervalle de boucle"],
+ ], [
+ "visionneuse de texte",
+ ["I/K", "fichier prรฉcรฉdent/suivant"],
+ ["M", "fermer le fichier texte"],
+ ["E", "modifier le fichier texte"],
+ ["S", "sรฉlectioner le fichier (pour le couper/copier/renommer)"],
+ ]
+ ],
+
+ "m_ok": "OK",
+ "m_ng": "Annuler",
+
+ "enable": "Activer",
+ "danger": "DANGER",
+ "clipped": "copiรฉ dans le presse-papier",
+
+ "ht_s1": "seconde",
+ "ht_s2": "secondes",
+ "ht_m1": "minute",
+ "ht_m2": "minutes",
+ "ht_h1": "heure",
+ "ht_h2": "heures",
+ "ht_d1": "jour",
+ "ht_d2": "jours",
+ "ht_and": " et ",
+
+ "goh": "panneau-de-commande",
+ "gop": 'รฉlรฉment "frรจre" prรฉcรฉdent">prรฉcรฉdent',
+ "gou": 'dossier parent">haut',
+ "gon": 'dossier suivant">suivant',
+ "logout": "Dรฉconnexion ",
+ "login": "Se connecter", //m
+ "access": " accรจs",
+ "ot_close": "fermer le sous-menu",
+ "ot_search": "chercher des fichiers par leurs attributs, chemin / nom, tag musicaux, ou nimporte quelle combinaison de ces options$N$N<code>foo bar</code> = doit contenir ร la fois ยซfooยป et ยซbarยป,$N<code>foo -bar</code> = doit contenir ยซfooยป mais pas ยซbarยป,$N<code>^yana .opus$</code> = commence par ยซyanaยป et est un fichier ยซopusยป$N<code>"try unite"</code> = contient exactement ยซtry uniteยป$N$Nle format de date est iso-8601, comme$N<code>2009-12-31</code> ou <code>2020-09-12 23:30:00</code>",
+ "ot_unpost": "unpost: supprimer vos tรฉlรฉchargements rรฉcents, ou annuler ceux en cours",
+ "ot_bup": "bup: tรฉlรฉverseur de base, prend mรชme en charge netscape 4.0",
+ "ot_mkdir": "mkdir: crรฉer un nouveau rรฉpertoire",
+ "ot_md": "new-md: crรฉer un nouveau document markdown",
+ "ot_msg": "msg: envoyer un message au journal du serveur",
+ "ot_mp": "options du lecteur multimedia",
+ "ot_cfg": "options de configuration",
+ "ot_u2i": 'up2k : tรฉlรฉverser des fichiers (si vous avez un accรจs en รฉcriture) ou basculer en mode recherche pour voir s\'ils existent quelque part sur le serveur$N$Nles tรฉlรฉversements peuvent รชtre repris, ils sont multithreadรฉ, et les horodatages des fichiers sont prรฉservรฉs, mais cela utilise plus de CPU que [๐] (le tรฉlรฉverseur de base)๐ปcopier
plus tard)",
+ "wt_m3uc": "copier la playlist m3u dans le presse-papiers",
+ "wt_grid": "basculer entre la vue en grille / liste$NHotkey: G",
+ "wt_prev": "musique prรฉcรฉdente$NHotkey: J",
+ "wt_play": "lecture / pause$NHotkey: P",
+ "wt_next": "musique suivante$NHotkey: L",
+
+ "ul_par": "tรฉlรฉversements parallรจles:",
+ "ut_rand": "attribution de noms de fichiers alรฉatoires",
+ "ut_u2ts": "copier l'horodatage de derniรจre modification$Nde votre systรจme de fichiers vers le serveur\">๐
",
+ "ut_ow": "รฉcraser les fichiers existants sur le serveur?$N๐ก๏ธ: jamais (gรฉnรฉrera un nouveau nom de fichier ร la place)$N๐: รฉcraser si le fichier sur le serveur est plus ancien que le vรดtre$Nโป๏ธ: toujours รฉcraser si les fichiers sont diffรฉrents",
+ "ut_mt": "continuer ร calculer la somme de contrรดle d'autres fichiers pendant le tรฉlรฉversement$N$Npeut-รชtre dรฉsactiver si votre CPU ou HDD est la cause de perte de performances",
+ "ut_ask": 'demander confirmation avant le dรฉbut du tรฉlรฉversement">๐ญ',
+ "ut_pot": "amรฉliorer la vitesse de tรฉlรฉversement sur les appareils lents$Nen simplifiant l'interface utilisateur",
+ "ut_srch": "ne pas rรฉellement tรฉlรฉverser, mais vรฉrifier si les fichiers existent dรฉjร $N sur le serveur (scannera tous les dossiers que vous pouvez lire)",
+ "ut_par": "mettre en pause les tรฉlรฉversements en le rรฉglant sur 0$N$Naugmenter si votre connexion est lente / ร forte latence$N$Nle garder ร 1 sur le LAN ou si le HDD du serveur est un goulot d'รฉtranglement",
+ "ul_btn": "dรฉposer des fichiers / dossiersEnter
= Fichiers (un ou plus)\nESC
= Un dossier (sous-dossiers inclus)',
+ "u_nav_b": 'FichiersUn dossier',
+
+ "cl_opts": "options",
+ "cl_themes": "thรจme",
+ "cl_langs": "langue",
+ "cl_ziptype": "tรฉlรฉchargement de dossier",
+ "cl_uopts": "up2k",
+ "cl_favico": "favicon",
+ "cl_bigdir": "gros dossiers",
+ "cl_hsort": "#sort",
+ "cl_keytype": "notation des touches",
+ "cl_hiddenc": "colonnes masquรฉes",
+ "cl_hidec": "masquer",
+ "cl_reset": "rรฉinitialiser",
+ "cl_hpick": "cliquez sur les en-tรชtes de colonnes pour les masquer dans le tableau ci-dessous",
+ "cl_hcancel": "masquage des colonnes annulรฉ",
+
+ "ct_grid": '็ฐ grille',
+ "ct_ttips": 'โ โก โ">โน๏ธ infobulles',
+ "ct_thumb": 'vue en grille, activer les icรดnes ou les miniatures$NHotkey: T">๐ผ๏ธ minia',
+ "ct_csel": 'utiliser CTRL et MAJ pour selectioner des fichiers en vue en grille">sel',
+ "ct_ihop": 'quand le visionneuse d\'image est fermรฉ, faire defiller vers le bas jusqu\'au dernier fichier">gโฎฏ',
+ "ct_dots": 'voir les fichiers cachรฉ (si le serveur le permet)">dotfiles',
+ "ct_qdel": 'ne demander qu\'une confirmation lors de la suppression de fichiers>qdel',
+ "ct_dir1st": 'trier les dossiers avant les fichiers">๐ first',
+ "ct_nsort": 'triage par numรฉrotation (pour les nom de fichiers qui sont numรฉrotรฉs)">nsort',
+ "ct_utc": 'voir tout les horodatage en format UTC">UTC',
+ "ct_readme": 'voir le fichier README.md dans le listage des dossiers">๐ readme',
+ "ct_idxh": 'voir une version html (index.html) au-lieu du listage des dossiers normal">htm',
+ "ct_sbars": 'montrer la barre de defilement">โ',
+
+ "cut_umod": "si un fichier existe dรฉjร sur le server, mettre ร jour l'horodatage de derniรจre modification du serveur pour qu'il corresponde ร votre fichier local (nรฉcessite des autorisations d'รฉcriture et de suppression)\">re๐
",
+
+ "cut_turbo": "le bouton yolo, vous ne voulez probablement PAS activer ceci:$N$Nutilisez ceci si vous tรฉlรฉchargez une grande quantitรฉ de fichiers et que vous devez redรฉmarrer pour une raison quelconque, et que vous souhaitez continuer le tรฉlรฉchargement dรจs que possible$N$Ncela remplace la vรฉrification de hachage par une simple "est-ce que cela a la mรชme taille de fichier sur le serveur?" donc si le contenu du fichier est diffรฉrent, il ne sera PAS tรฉlรฉchargรฉ$N$Nvous devriez dรฉsactiver cela lorsque le tรฉlรฉchargement est terminรฉ, puis "tรฉlรฉcharger" les mรชmes fichiers ร nouveau pour laisser le client les vรฉrifier\">turbo",
+
+ "cut_datechk": "n'a aucun effet ร moins que le bouton turbo ne soit activรฉ$N$Nrรฉduit le facteur yolo d'un tout petit peu ; vรฉrifie si les horodatages des fichiers sur le serveur correspondent aux vรดtres$N$Ndevrait thรฉoriquement attraper la plupart des tรฉlรฉchargements inachevรฉs / corrompus, mais n'est pas un substitut ร un passage de vรฉrification avec turbo dรฉsactivรฉ par la suite\">date-chk",
+
+ "cut_u2sz": "taille (en MiB) de chaque morceau de tรฉlรฉversement; des grosse valeurs vont mieux passer si la distance entre le serveur et vous est trรฉs grande. Si vous avez une connection trรฉs instable, essayer de plus petites valeurs",
+
+ "cut_flag": "s'assurer qu'un seul onglet est entrain de mettre un fichier en ligne a la fois $N -- les autres onglets doivent avoir cette option activรฉ aussi $N -- affecte seulement les onglets qui sont sur le mรชme domaine",
+
+ "cut_az": "mettre en ligne les fichiers dans l'ordre alphabรฉtique, plutรดt que le plus petit fichier en premier$N$Nl'ordre alphabรฉtique peut rendre la lecture plus douce sur pour les yeux si quelque chose s'est mal passรฉ sur le serveur, mais cela rend le tรฉlรฉversement lรฉgรจrement plus lent sur fibre / LAN",
+
+ "cut_nag": "recevoir une notification via l'OS quand un tรฉlรฉversement finit$N(seulement si le navigateur ou l'onglet n'est pas actif)",
+ "cut_sfx": "alerte audible quand le tรฉlรฉversement finit$N(seulement si le navigateur ou l'onglet n'est pas actif)",
+
+ "cut_mt": "utiliser le calcul de somme de contrรดle multithreadรฉ pour accelerer le processus$N$Ncela utilise des web-workers et nรฉcessite$Nplus de RAM (jusqu'ร 512 MiB supplรฉmentaires)$N$NCela rend https 30% plus rapide, http 4.5x plus rapide\">mt",
+
+ "cut_wasm": "utiliser wasm au lieu du hachage intรฉgrรฉ du navigateur; amรฉliore la vitesse sur les navigateurs basรฉs sur chrome mais augmente la charge CPU, et de nombreuses anciennes versions de chrome ont des bugs qui font que le navigateur consomme toute la RAM et plante si cela est activรฉ\">wasm",
+
+ "cft_text": "text favicon (laisser vide et rafraรฎchir pour dรฉsactiver)",
+ "cft_fg": "couleur de premier plan",
+ "cft_bg": "couleur d'arriรจre-plan",
+
+ "cdt_lim": "nombre maximum de fichiers ร afficher dans un dossier",
+ "cdt_ask": "lorsque vous faites dรฉfiler vers le bas,$Nau lieu de charger plus de fichiers,$Ndemander quoi faire",
+ "cdt_hsort": "combien de rรจgles de tri (<code>,sorthref</code>) ร inclure dans les media-URLs. Dรฉfinir cette valeur ร 0 ignorera รฉgalement les rรจgles de tri incluses dans les liens mรฉdia lorsque vous cliquez dessus.",
+
+ "tt_entree": "afficher le panneau de navigation (arborescence des dossiers)$NHotkey: B",
+ "tt_detree": "afficher le fil dโAriane$NHotkey: B",
+ "tt_visdir": "faire dรฉfiler jusqu'au dossier sรฉlectionnรฉ",
+ "tt_ftree": "basculer l'arborescence des dossiers / fichiers texte$NHotkey: V",
+ "tt_pdock": "afficher les dossiers parents dans un panneau ancrรฉ en haut",
+ "tt_dynt": "croissance automatique ร mesure que l'arborescence s'รฉtend",
+ "tt_wrap": "retour ร la ligne",
+ "tt_hover": "rรฉvรฉler les lignes dรฉbordantes au survol$N( interrompt le dรฉfilement ร moins que le curseur de la souris ne soit dans la gouttiรจre gauche )",
+
+ "ml_pmode": "ร la fin du dossierโฆ",
+ "ml_btns": "cmds",
+ "ml_tcode": "transcoder",
+ "ml_tcode2": "transcoder vers",
+ "ml_tint": "teinte",
+ "ml_eq": "รฉgaliseur audio",
+ "ml_drc": "compresseur de plage dynamique",
+
+ "mt_loop": "rรฉpรฉter en boucle une musique\">๐",
+ "mt_one": "stopper aprรจs une musique\">1๏ธโฃ",
+ "mt_shuf": "mรฉlanger les musiques dans chaque dossiers\">๐",
+ "mt_aplay": "jouer automatiquement si le lien utilisรฉ pour accรฉder au serveur a un song-ID $N$N, dรฉsactiver cela arrรชtera รฉgalement la mise ร jour de l'URL de la page avec les song-IDs lors de la lecture de la musique, pour รฉviter la lecture automatique si ces paramรจtres sont perdus mais que l'URL reste\">aโถ",
+ "mt_preload": "commencer ร charger la prochaine chanson prรจs de la fin pour une lecture sans interruption\">preload",
+ "mt_prescan": "explorer le dossier suivant avant la derniรจre musique$Nne finisse, pour garder le navigateur content$Npour qu'il n'arrรชte pas la lecture\">nav",
+ "mt_fullpre": "essayer de prรฉ-charger la musique entiรจre;$Nโ
activer en cas de connection instable,$Nโ dรฉsactiver en revanche sur une connection lente va probablement รชtre mieux\">full",
+ "mt_fau": "sur tรฉlรฉphone, empรชche la musique de s'arrรชter de jouer si la prochaine n'est pas prรฉ-chargรฉe assez rapidement (peut rendre l'affichage des tags buggรฉ)\">โ๏ธ",
+ "mt_waves": "barre de progression en spectrograme:$Nmontrer l'amplitude audio dans la miniature\">~s",
+ "mt_npclip": "montrer les boutons pour copier le morceau en cours de lecture\">/np",
+ "mt_m3u_c": "montrer les boutons pour copier les$morceaux sรฉlectionnรฉes en tant qu'entrรฉes de playlist m3u8\">๐ป",
+ "mt_octl": "intรฉgration os (touches de raccourci multimรฉdia / osd)\">os-ctl",
+ "mt_oseek": "permettre la recherche via l'intรฉgration os$N$Nremarque : sur certains appareils (iPhones),$Ncela remplace le bouton de la chanson suivante\">seek",
+ "mt_oscv": "montrer la couverture de l'album dans l'osd\">art",
+ "mt_follow": "garder la piste en cours dรฉfilรฉe dans la vue\">๐ฏ",
+ "mt_compact": "contrรดles compacts\">โ",
+ "mt_uncache": "effacer le cache (essayez ceci si votre navigateur a mis en cache$Nun copie dรฉfectueuse d'une chanson, ce qui empรชche sa lecture)\">uncache",
+ "mt_mloop": "lire en boucle le dossier ouvert\">๐ loop",
+ "mt_mnext": "charger le dossier suivant et continuer\">๐ next",
+ "mt_mstop": "arrรชter la lecture\">โธ stop",
+ "mt_cflac": "convertir flac / wav en {0}\">flac",
+ "mt_caac": "convertir aac / m4a en {0}\">aac",
+ "mt_coth": "convertir tout les autres (pas mp3) en {0}\">oth",
+ "mt_c2opus": "meilleur choix pour PC fixe, PC portable, android\">opus",
+ "mt_c2owa": "opus-weba, pour iOS 17.5 et supรฉrieur\">owa",
+ "mt_c2caf": "opus-caf, pour iOS 11 ร 17\">caf",
+ "mt_c2mp3": "utilisez ceci sur des appareils trรจs anciens\">mp3",
+ "mt_c2flac": "meilleure qualitรฉ sonore, mais tรฉlรฉchargements รฉnormes\">flac",
+ "mt_c2wav": "lecture non compressรฉe (encore plus gros)\">wav",
+ "mt_c2ok": "bien, bon choix",
+ "mt_c2nd": "ce n'est pas le format de sortie recommandรฉ pour votre appareil, mais รงa devrait aller",
+ "mt_c2ng": "votre appareil ne semble pas prendre en charge ce format de sortie, mais essayons quand mรชme",
+ "mt_xowa": "il y a des bugs dans iOS qui empeche d'avoir une lecture en ariere plan en utilisant ce format; utilisez caf ou mp3 ร la place",
+ "mt_tint": "niveau dโarriรจre-plan (0โ100) de la barre de progression$Npour rendre la mise en mรฉmoire tampon moins gรชnante",
+ "mt_eq": "active l'รฉgaliseur et le contrรดle de gain;$N$Nboost <code>0</code> = volume standard 100% (non modifiรฉ)$N$Nwidth <code>1 </code> = stรฉrรฉo standard (non modifiรฉ)$Nwidth <code>0.5</code> = 50% de crossfeed gauche-droite$Nwidth <code>0 </code> = mono$N$Nboost <code>-0.8</code> & width <code>10</code> = suppression vocale :^)$N$Nl'activation de l'รฉgaliseur rend les albums gapless entiรจrement gapless, alors laissez-le activรฉ avec toutes les valeurs ร zรฉro (sauf largeur = 1) si vous vous en souciez",
+ "mt_drc": "active le compresseur de plage dynamique (aplanisseur de volume / brickwaller); activera รฉgalement l'EQ pour รฉquilibrer les choses, donc dรฉfinissez tous les champs EQ sauf 'width' sur 0 si vous ne le voulez pas$N$Ndiminue le volume de l'audio au-dessus de THRESHOLD dB; pour chaque RATIO dB au-delร de THRESHOLD, il y a 1 dB de sortie, donc des valeurs par dรฉfaut de tresh -24 et ratio 12 signifient qu'il ne devrait jamais รชtre plus fort que -22 dB et qu'il est sรปr d'augmenter le boost de l'รฉgaliseur ร 0.8, ou mรชme 1.8 avec ATK 0 et un รฉnorme RLS comme 90 (ne fonctionne que dans firefox; RLS est max 1 dans les autres navigateurs)$N$N(voir wikipedia, ils expliquent cela beaucoup mieux)",
+
+ "mb_play": "lecture",
+ "mm_hashplay": "lire ce fichier audio ?",
+ "mm_m3u": "appuyez sur Entrรฉe/OK
pour lire\nappuyez sur รchap/Annuler
pour modifier",
+ "mp_breq": "nรฉcessite firefox 82+ ou chrome 73+ ou iOS 15+",
+ "mm_bload": "chargement en coursโฆ",
+ "mm_bconv": "conversion en {0}, veuillez patienterโฆ",
+ "mm_opusen": "votre navigateur ne peut pas lire les fichiers aac / m4a ;\nle transcodage en opus est maintenant activรฉ",
+ "mm_playerr": "รฉchec de la lecture : ",
+ "mm_eabrt": "La tentative de lecture a รฉtรฉ annulรฉe",
+ "mm_enet": "Votre connexion internet est instable ou inexistante",
+ "mm_edec": "Ce fichier est supposรฉment corrompu??",
+ "mm_esupp": "Votre navigateur ne comprend pas ce format audio",
+ "mm_eunk": "Erreur inconnue",
+ "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_e500": "Impossible de lire l'audio ; erreur 500 : vรฉrifiez les journaux du serveur.",
+ "mm_e5xx": "Impossible de lire l'audio ; erreur serveur ",
+ "mm_nof": "Pas d'autres fichiers audio trouvรฉs par ici",
+ "mm_prescan": "En recherche d'une autre musique ร lireโฆ",
+ "mm_scank": "Prochaine musique trouvรฉe :",
+ "mm_uncache": "cache vidรฉ ; toutes les chansons seront retรฉlรฉchargรฉes lors de la prochaine lecture",
+ "mm_hnf": "cette chanson n'existe plus",
+
+ "im_hnf": "cette image n'existe plus",
+
+ "f_empty": 'ce dossier est vide',
+ "f_chide": 'ceci va cacher les colonnes ยซ{0}ยป\n\ntu peut les rรฉafficher dans les options',
+ "f_bigtxt": "ce fichier fait {0} MiB -- tu veut vraiment le voir en tant que texte ?",
+ "f_bigtxt2": "voir seulement la fin du fichier ร la place ? ceci activera aussi le suivi en temps rรฉel, affichant les nouvelles lignes de texte au fur et ร mesure",
+ "fbd_more": '',
+ "fbd_all": '',
+ "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_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 .PARTIAL
. 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 .PARTIAL
ร la place, ce qui donnera presque certainement des donnรฉes corrompues.",
+
+ "ft_paste": "coller {0} รฉlรฉments$NHotkey: ctrl-V",
+ "fr_eperm": 'impossible de renommer:\n vous n\'avez pas la permission โmoveโ dans ce dossier',
+ "fd_eperm": 'impossible de supprimer:\nvous n\'avez pas la permission โdeleteโ dans ce dossier',
+ "fc_eperm": 'impossible de couper:\nvous n\'avez pas la permission โmoveโ dans ce dossier',
+ "fp_eperm": 'impossible de coller:\nvous n\'avez pas la permission โwriteโ dans ce dossier',
+ "fr_emore": "sรฉlectionnez au moins un รฉlรฉment ร renommer",
+ "fd_emore": "sรฉlectionnez au moins un รฉlรฉment ร supprimer",
+ "fc_emore": "sรฉlectionnez au moins un รฉlรฉment ร couper",
+ "fcp_emore": "sรฉlectionnez au moins un รฉlรฉment ร copier dans le presse-papiers",
+
+ "fs_sc": "partager le dossier dans lequel vous vous trouvez",
+ "fs_ss": "partager les fichiers sรฉlectionnรฉs",
+ "fs_just1d": "vous ne pouvez pas sรฉlectionner plus d'un dossier,\nou mรฉlanger des fichiers et des dossiers dans une seule sรฉlection",
+ "fs_abrt": "โ abandonner",
+ "fs_rand": "๐ฒ nom.aleatoire",
+ "fs_go": "โ
crรฉer partage",
+ "fs_name": "nom",
+ "fs_src": "source",
+ "fs_pwd": "mdp",
+ "fs_exp": "expiration",
+ "fs_tmin": "min",
+ "fs_thrs": "heures",
+ "fs_tdays": "jours",
+ "fs_never": "รฉternel",
+ "fs_pname": "nom de lien optionnel ; sera alรฉatoire si vide",
+ "fs_tsrc": "le fichier ou le dossier ร partager",
+ "fs_ppwd": "mot de passe optionnel",
+ "fs_w8": "crรฉation du partageโฆ",
+ "fs_ok": "appuyez sur Entrรฉe/OK
pour le Presse-papiers\nappuyez sur รchap/Annuler
pour fermer",
+
+ "frt_dec": "peut potentiellement rรฉparer certaines instances de noms de fichiers cassรฉs\">url-decode",
+ "frt_rst": "rรฉinitialiser les noms de fichiers modifiรฉs ร leurs originaux\">โบ reset",
+ "frt_abrt": "abandonner et fermer cette fenรชtre\">โ cancel",
+ "frb_apply": "APPLIQUER RENOMMER",
+ "fr_adv": "renommage par lot / mรฉtadonnรฉes / motif\">advanced",
+ "fr_case": "regex sensible ร la casse\">case",
+ "fr_win": "noms windows-safe; remplacer <>:"\\|?*
par des caractรจres japonais en pleine largeur\">win",
+ "fr_slash": "remplacer /
par un caractรจre qui ne provoque pas la crรฉation de nouveaux dossiers\">no /",
+ "fr_re": "modรจle de recherche regex ร appliquer aux noms de fichiers originaux ; les groupes capturรฉs peuvent รชtre rรฉfรฉrencรฉs dans le champ de format ci-dessous comme <code>(1)</code> et <code>(2)</code> et ainsi de suite",
+ "fr_fmt": "inspirรฉ par foobar2000 : $N<code>(title)</code> est remplacรฉ par le titre de la chanson, $N<code>[(artist) - ](title)</code> saute [cette] partie si l'artiste est vide, $N<code>$lpad((tn),2,0)</code> remplit le numรฉro de piste ร 2 chiffres",
+ "fr_pdel": "supprimer",
+ "fr_pnew": "enregistrer sous",
+ "fr_pname": "donnez un nom pour le nouveau preset",
+ "fr_aborted": "abandonnรฉ",
+ "fr_lold": "ancien nom",
+ "fr_lnew": "nouveau nom",
+ "fr_tags": "tags pour les fichier selectionรฉ (lecture-seule, juste pour rรฉfรฉrence):",
+ "fr_busy": "renomage de {0} itemsโฆ\n\n{1}",
+ "fr_efail": "renomage a รฉchouรฉ:\n",
+ "fr_nchg": "{0} des nouveaux noms ont รฉtรฉ modifiรฉs en raison de win
et/ou no /
\n\nOK pour continuer avec ces nouveaux noms modifiรฉs ?",
+
+ "fd_ok": "suppression rรฉussie",
+ "fd_err": "impossible de supprimer:\n",
+ "fd_none": "rien n'a รฉtรฉ supprimรฉ ; peut-รชtre bloquรฉ par la configuration du serveur (xbd) ?",
+ "fd_busy": "suppression de {0} รฉlรฉmentsโฆ\n\n{1}",
+ "fd_warn1": "SUPPRIMER ces {0} รฉlรฉments ?",
+ "fd_warn2": "Derniรจre chance ! Impossible de revenir en arriรจre. Supprimer ?",
+
+ "fc_ok": "couper {0} รฉlรฉments",
+ "fc_warn": 'couper {0} รฉlรฉments\n\nmais : seul cet onglets peut les coller\n(puisque la sรฉlection est si absolument massive)',
+
+ "fcc_ok": "copiรฉ {0} รฉlรฉments dans le presse-papiers",
+ "fcc_warn": 'copiรฉ {0} รฉlรฉments dans le presse-papiers\n\nmais : seul cet onglet peut les coller\n(puisque la sรฉlection est si absolument massive)',
+
+ "fp_apply": "utiliser ces noms",
+ "fp_ecut": "en premier, coupez ou copiez quelques fichiers / dossiers ร coller / dรฉplacer\n\nnote: vous pouvez couper / coller a travers different onglets",
+ "fp_ename": "{0} รฉlรฉments ne peuvent pas รชtre dรฉplacรฉs ici parceque leurs noms sont dรฉjร pris. Donnez leurs un nouveau nom ci-dessous pour continuer, ou laissez les vides pour les sauter:",
+ "fcp_ename": "{0} รฉlรฉments ne peuvent pas รชtre copiรฉs ici parce que les noms sont dรฉjร pris. Donnez-leur un nouveau nom ci-dessous pour continuer, ou laissez-les vides pour les sauter :",
+ "fp_emore": "il reste encore des collisions de noms de fichiers ร corriger",
+ "fp_ok": "dรฉplacement OK",
+ "fcp_ok": "copie OK",
+ "fp_busy": "dรฉplacement de {0} รฉlรฉmentsโฆ\n\n{1}",
+ "fcp_busy": "copie de {0} รฉlรฉmentsโฆ\n\n{1}",
+ "fp_abrt": "abandon en cours...", //m
+ "fp_err": "deplacement รฉchouรฉ:\n",
+ "fcp_err": "copie รฉchouรฉe:\n",
+ "fp_confirm": "dรฉplacer ces {0} รฉlรฉments ici ?",
+ "fcp_confirm": "copier ces {0} รฉlรฉments ici ?",
+ "fp_etab": 'lecture du presse-papier venant d\'un autre onglet รฉchouรฉ',
+ "fp_name": "tรฉlรฉversement d'un fichier de votre apareil. Donnez lui un nom:",
+ "fp_both_m": 'Entrer
= Dรฉplacer {0} fichiers de ยซ{1}ยป\nESC
= Tรฉlรฉverser {2} fichiers de votre appareil',
+ "fcp_both_m": 'Entrer
= Copier {0} fichiers de ยซ{1}ยป\nESC
= Tรฉlรฉverser {2} fichiers de votre appareil',
+ "fp_both_b": 'DรฉplacerTรฉlรฉverser',
+ "fcp_both_b": 'CopierTรฉlรฉverser',
+
+ "mk_noname": "entrez un nom dans le champ de texte ร gauche avant de faire รงa :p",
+
+ "tv_load": "Chargement du document texte:\n\n{0}\n\n{1}% ({2} de {3} MiB chargรฉs)",
+ "tv_xe1": "impossible de charger le fichier texte:\n\nerreur",
+ "tv_xe2": "404, fichier introuvable",
+ "tv_lst": "liste des fichiers texte dans",
+ "tvt_close": "retour a la vue de dossier$NHotkey: M (ou รchap)\">โ fermer",
+ "tvt_dl": "tรฉlรฉcharger ce fichier$NHotkey: Y\">๐พ tรฉlรฉcharger",
+ "tvt_prev": "montrer le document prรฉcรฉdent$NHotkey: i\">โฌ prรฉcรฉdent",
+ "tvt_next": "montrer le document suivant$NHotkey: K\">โฌ suivant",
+ "tvt_sel": "sรฉlectionner le fichier ( pour couper / copier / supprimer / โฆ )$NHotkey: S\">sel",
+ "tvt_edit": "ouvrir le fichier dans l'รฉditeur de texte$NHotkey: E\">โ๏ธ modifier",
+ "tvt_tail": "surveiller le fichier pour les changements; montrer les nouvelles lignes en temps rรฉel\">๐ก suivre",
+ "tvt_wrap": "retour ร la ligne\">โต",
+ "tvt_atail": "ancrer le dรฉfilement au fond de la page\">โ",
+ "tvt_ctail": "dรฉcoder les couleurs du terminal (ansi escape codes)\">๐",
+ "tvt_ntail": "limite de dรฉfilement en arriรจre (combien d'octets de texte ร garder chargรฉ)",
+
+ "m3u_add1": "musique ajoutรฉe ร la playlist m3u",
+ "m3u_addn": "{0} musiques ajoutรฉes ร la playlist m3u",
+ "m3u_clip": "la playlist m3u est maintenant copiรฉe dans le presse-papier\n\nvous devriez crรฉer un nouveau fichier texte nommรฉ par exemple playlist.m3u et coller la playlist dans ce fichier ; cela la rendra lisible en tant que playlist",
+
+ "gt_vau": "ne pas voir les vidรฉos, juste jouer l'audio\">๐ง",
+ "gt_msel": "activer la sรฉlรฉction de fichiers ; ctrl-clic sur un fichier pour override รฉcraser$N$Nquand actif : double-cliquer sur un fichier / dossier pour l'ouvrir$N$NHotkey: S\">multisรฉlรฉction",
+ "gt_crop": "rogner les miniatures au centre\">rogner",
+ "gt_3x": "miniatures haute rรฉsolution\">3x",
+ "gt_zoom": "zoomer",
+ "gt_chop": "rogner",
+ "gt_sort": "trier par",
+ "gt_name": "nom",
+ "gt_sz": "taille",
+ "gt_ts": "date",
+ "gt_ext": "type",
+ "gt_c1": "tronquer les noms de fichiers (montrer moins)",
+ "gt_c2": "tronquer les noms de fichiers (montrer plus)",
+
+ "sm_w8": "rechercheโฆ",
+ "sm_prev": "les rรฉsultats de recherche ci-dessous proviennent d'une requรชte prรฉcรฉdente:\n ",
+ "sl_close": "fermer les rรฉsultats de recherche",
+ "sl_hits": "affichage de {0} rรฉsultats",
+ "sl_moar": "chercher plus",
+
+ "s_sz": "taille",
+ "s_dt": "date",
+ "s_rd": "chemin",
+ "s_fn": "nom",
+ "s_ta": "tags",
+ "s_ua": "up@",
+ "s_ad": "adv.",
+ "s_s1": "minimum MiB",
+ "s_s2": "maximum MiB",
+ "s_d1": "min. iso8601",
+ "s_d2": "max. iso8601",
+ "s_u1": "tรฉlรฉverser aprรจs",
+ "s_u2": "et/ou avant",
+ "s_r1": "le chemin contient (sรฉparรฉ par des espaces)",
+ "s_f1": "le nom contient (nรฉgation avec -nope)",
+ "s_t1": "les tags contiennent (^=dรฉbut, fin=$)",
+ "s_a1": "propriรฉtรฉs de mรฉtadonnรฉes spรฉcifiques",
+
+ "md_eshow": "impossible d'afficher le rendu ",
+ "md_off": "[๐readme] disabled in [โ๏ธ] -- document cachรฉ",
+
+ "badreply": "รchec de l'analyse de la rรฉponse du serveur",
+
+ "xhr403": "403: Accรจs refusรฉ\n\nessayez d'appuyer sur F5, peut-รชtre que vous avez รฉtรฉ dรฉconnectรฉ",
+ "xhr0": "inconnu (vous avez probablement perdu la connexion au serveur, ou le serveur est hors ligne)",
+ "cf_ok": "dรฉsolรฉ pour cela -- la protection DD" + wah + "oS a รฉtรฉ dรฉclenchรฉ\n\nles choses devraient reprendre dans environ 30 secondes\n\nsi rien ne se passe, appuyez sur F5 pour recharger la page",
+ "tl_xe1": "impossible de lister les sous-dossiers:\n\nerreur ",
+ "tl_xe2": "404: Dossier introuvable",
+ "fl_xe1": "impossible de lister les fichiers dans le dossier:\n\nerreur ",
+ "fl_xe2": "404: Dossier introuvable",
+ "fd_xe1": "impossible de crรฉer le sous-dossier:\n\nerreur ",
+ "fd_xe2": "404: Dossier parent introuvable",
+ "fsm_xe1": "impossible d'envoyer le message:\n\nerreur ",
+ "fsm_xe2": "404: Dossier parent introuvable",
+ "fu_xe1": "รฉchec du chargement de la liste des unpost du serveur:\n\nerreur ",
+ "fu_xe2": "404: Fichier introuvable??",
+
+ "fz_tar": "fichier gnu-tar non compressรฉ (linux / mac)",
+ "fz_pax": "tar au format pax non compressรฉ (plus lent)",
+ "fz_targz": "gnu-tar avec compression gzip niveau 3$N$Ncela est gรฉnรฉralement trรจs lent, donc$Nutilisez plutรดt tar non compressรฉ",
+ "fz_tarxz": "gnu-tar avec compression xz niveau 1$N$Ncela est gรฉnรฉralement trรจs lent, donc$Nutilisez plutรดt tar non compressรฉ",
+ "fz_zip8": "zip avec noms de fichiers utf8 (peut รชtre instable sur windows 7 et versions antรฉrieures)",
+ "fz_zipd": "zip avec noms de fichiers cp437 traditionnels, pour les trรจs anciens logiciels",
+ "fz_zipc": "cp437 avec crc32 calculรฉ tรดt,$Nfor MS-DOS PKZIP v2.04g (octobre 1993)$N(prend plus de temps ร charger avant que le tรฉlรฉchargement ne commence)",
+
+ "un_m1": "vous pouvez supprimer vos tรฉlรฉchargements rรฉcents (ou annuler ceux en cours) ci-dessous",
+ "un_upd": "rafraรฎchir",
+ "un_m4": "ou partager les fichiers visibles ci-dessous:",
+ "un_ulist": "montrer",
+ "un_ucopy": "copier",
+ "un_flt": "filtre optionnel: l'URL doit contenir",
+ "un_fclr": "effacer le filtre",
+ "un_derr": 'รฉchec de l\'unpost-delete:\n',
+ "un_f5": 'quelque chose a cassรฉ, veuillez essayer de rafraรฎchir ou d\'appuyer sur F5',
+ "un_uf5": "dรฉsolรฉ mais vous devez rafraรฎchir la page (par exemple en appuyant sur F5 ou CTRL-R) avant que ce tรฉlรฉchargement puisse รชtre annulรฉ",
+ "un_nou": 'warning: serveur trop occupรฉ pour afficher les tรฉlรฉversements non finis; cliquez sur le lien "rafraรฎchir" dans un instant',
+ "un_noc": 'warning: unpost des fichiers entiรจrement tรฉlรฉchargรฉs n\'est pas activรฉ/permis dans la configuration du serveur',
+ "un_max": "affichage des 2000 premiers fichiers (utilisez le filtre)",
+ "un_avail": "{0} tรฉlรฉchargements rรฉcents peuvent รชtre supprimรฉsfichiers: {0} fini, {1} รฉchouรฉ, {2} en cours, {3} en attente
", + "u_ever": "ceci est le tรฉlรฉverseur de base ; up2k nรฉcessite au moins chrome 21 // firefox 13 // edge 12 // opera 12 // safari 5.1", + "u_su2k": 'ceci est le tรฉlรฉverseur de base; up2k est meilleur', + "u_uput": 'optimiser pour la vitesse (ignorer la somme de contrรดle)', + "u_ewrite": 'vous n\'avez pas accรจs en รฉcriture ร ce dossier', + "u_eread": 'vous n\'avez pas accรจs en lecture ร ce dossier', + "u_enoi": 'la recherche de fichiers n\'est pas activรฉe dans la configuration du serveur', + "u_enoow": "l'รฉcrasage ne fonctionnera pas ici; besoin de permissions de suppression", + "u_badf": 'Ces {0} fichiers (sur {1} au total) ont รฉtรฉ ignorรฉs, probablement en raison de permissions systรจme de fichiers:\n\n', + "u_blankf": 'Ces {0} fichiers (sur {1} au total) sont vides; les tรฉlรฉverser quand mรชme ?\n\n', + "u_applef": 'Ces {0} fichiers (sur {1} au total) sont probablement indรฉsirables;\nAppuyez surOK/Enter
pour IGNORER les fichiers suivants,\nAppuyez sur Annuler/รchap
pour NE PAS exclure, et TรLรVERSER ceux-ci รฉgalement:\n\n',
+ "u_just1": '\nPeut-รชtre que cela fonctionne mieux si vous sรฉlectionnez juste un fichier',
+ "u_ff_many": "si vous utilisez Linux / MacOS / Android, alors ce nombre de fichiers peut faire planter Firefox!\nSi cela se produit, veuillez rรฉessayer (ou utiliser Chrome).",
+ "u_up_life": "Ce tรฉlรฉversement va รชtre supprimรฉ du serveur\n{0} aprรจs son achรจvement",
+ "u_asku": 'tรฉlรฉverser ces {0} fichiers vers {1}
',
+ "u_unpt": "vous pouvez dรฉfaire / supprimer ce tรฉlรฉversement en utilisant le ๐งฏ en haut ร gauche",
+ "u_bigtab": 'sur le point d\'afficher {0} fichiers\n\ncela peut faire planter votre navigateur, รชtes-vous sรปr ?',
+ "u_scan": 'Analyse des fichiersโฆ',
+ "u_dirstuck": 'l\'itรฉrateur de rรฉpertoire est bloquรฉ en essayant d\'accรฉder aux {0} รฉlรฉments suivants ; il sera ignorรฉ :',
+ "u_etadone": 'Terminรฉ ({0}, {1} fichiers)',
+ "u_etaprep": '(prรฉparation au tรฉlรฉversement)',
+ "u_hashdone": 'calcul de la somme de contrรดle terminรฉ',
+ "u_hashing": 'calcul de la somme de contrรดle',
+ "u_hs": 'รฉtablissement d\'une liaisonโฆ',
+ "u_started": "les fichiers sont maintenant en cours de tรฉlรฉversement ; voir [๐]",
+ "u_dupdefer": "dupliquรฉ ; sera traitรฉ aprรจs tous les autres fichiers",
+ "u_actx": "cliquez sur ce texte pour รฉviter la perte deF5
pour rafraรฎchir la pagemt
dans les โ๏ธ paramรจtres
F5
pour rafraรฎchir la page๐ฅ
(pomme de terre) dans l\'interface de tรฉlรฉversementconnections-per-server
dans about:config
",
+ "u_tu": 'WARNING: turbo enclenchรฉ, le client peut ne pas dรฉtecter et reprendre les tรฉlรฉversements incomplets ; voir l\'info-bulle du bouton turbo
', + "u_ts": 'WARNING: turbo enclenchรฉ, les rรฉsultats de recherche peuvent รชtre incorrects ; voir l\'info-bulle du bouton turbo
', + "u_turbo_c": "turbo est dรฉsactivรฉ dans la configuration du serveur", + "u_turbo_g": "dรฉsactivation de turbo car vous n'avez pas de\nprivilรจges de listing de rรฉpertoires dans ce volume", + "u_life_cfg": 'suppression automatique aprรจs min (ou heures)', + "u_life_est": 'le tรฉlรฉversement sera supprimรฉ ---', + "u_life_max": 'ce dossier impose une\ndurรฉe de vie maximale de {0}', + "u_unp_ok": 'unpost est autorisรฉ pour {0}', + "u_unp_ng": 'unpost ne sera PAS autorisรฉ', + "ue_ro": 'votre accรจs ร ce dossier est en lecture seule\n\n', + "ue_nl": 'vous n\'รชtes actuellement pas connectรฉ', + "ue_la": 'vous รชtes actuellement connectรฉ en tant que "{0}"', + "ue_sr": 'vous รชtes actuellement en mode recherche de fichiers\n\nchangez en mode tรฉlรฉversement en cliquant sur la loupe ๐ (ร cรดtรฉ du grand bouton RECHERCHER), et essayez de tรฉlรฉverser ร nouveau\n\ndรฉsolรฉ', + "ue_ta": 'essayez de tรฉlรฉverser ร nouveau, cela devrait fonctionner maintenant', + "ue_ab": "ce fichier a dรฉjร รฉtรฉ tรฉlรฉversรฉ dans un autre dossier, et ce tรฉlรฉversement doit รชtre terminรฉ avant que le fichier puisse รชtre tรฉlรฉversรฉ ailleurs.\n\nVous pouvez annuler et oublier le tรฉlรฉversement initial en utilisant le bouton ๐งฏ en haut ร gauche.", + "ur_1uo": "OK: Fichier tรฉlรฉversรฉ avec succรจs", + "ur_auo": "OK: Tous les {0} fichiers tรฉlรฉversรฉs avec succรจs", + "ur_1so": "OK: Fichier trouvรฉ sur le serveur", + "ur_aso": "OK: Tous les {0} fichiers trouvรฉs sur le serveur", + "ur_1un": "รchec du tรฉlรฉversement, dรฉsolรฉ", + "ur_aun": "Tous les {0} tรฉlรฉversements ont รฉchouรฉ, dรฉsolรฉ", + "ur_1sn": "Fichier NON trouvรฉ sur le serveur", + "ur_asn": "Les {0} fichiers n'ont PAS รTร trouvรฉs sur le serveur", + "ur_um": "Terminรฉ;\n{0} tรฉlรฉversements OK,\n{1} tรฉlรฉversements รฉchouรฉs, dรฉsolรฉ", + "ur_sm": "Terminรฉ;\n{0} fichiers trouvรฉs sur le serveur,\n{1} fichiers NON trouvรฉs sur le serveur", + + "lang_set": "rafraรฎchir pour que les changements prennent effet ?", + }, "grc": { "tt": "ฮฮปฮปฮทฮฝฮนฮบฮฌ", @@ -3893,6 +4536,7 @@ var Ls = { "gou": 'ฮณฮฟฮฝฮนฮบฯฯ ฯฮฌฮบฮตฮปฮฟฯ">ฯฮฌฮฝฯ', "gon": 'ฮตฯฯฮผฮตฮฝฮฟฯ ฯฮฌฮบฮตฮปฮฟฯ">ฮตฯฯฮผฮตฮฝฮฟ', "logout": "ฮฯฮฟฯฯฮฝฮดฮตฯฮท ", + "login": "ฮฃฯฮฝฮดฮตฯฮท", //m "access": " ฯฯฯฯฮฒฮฑฯฮท", "ot_close": "ฮบฮปฮตฮฏฯฮนฮผฮฟ ฯ ฯฮฟฮผฮตฮฝฮฟฯ", "ot_search": "ฮฑฮฝฮฑฮถฮฎฯฮทฯฮท ฮฑฯฯฮตฮฏฯฮฝ ฮผฮต ฮฒฮฌฯฮท ฯฮฑฯฮฑฮบฯฮทฯฮนฯฯฮนฮบฮฌ, ฮดฮนฮฑฮดฯฮฟฮผฮฎ / ฯฮฝฮฟฮผฮฑ, ฮผฮฟฯ ฯฮนฮบฮฌ tags ฮฎ ฮฟฯฮฟฮนฮฟฮฝฮดฮฎฯฮฟฯฮต ฯฯ ฮฝฮดฯ ฮฑฯฮผฯ$N$N<code>foo bar</code> = ฯฯฮญฯฮตฮน ฮฝฮฑ ฯฮตฯฮนฮญฯฮตฮน ฮบฮฑฮน ฯฮฑ ยซfooยป ฮบฮฑฮน ยซbarยป,$N<code>foo -bar</code> = ฯฯฮญฯฮตฮน ฮฝฮฑ ฯฮตฯฮนฮญฯฮตฮน ฯฮฟ ยซfooยป ฮฑฮปฮปฮฌ ฯฯฮน ฯฮฟ ยซbarยป,$N<code>^yana .opus$</code> = ฮฝฮฑ ฮพฮตฮบฮนฮฝฮฌ ฮผฮต ยซyanaยป ฮบฮฑฮน ฮฝฮฑ ฮตฮฏฮฝฮฑฮน ฮฑฯฯฮตฮฏฮฟ ยซopusยป$N<code>"try unite"</code> = ฮฝฮฑ ฯฮตฯฮนฮญฯฮตฮน ฮฑฮบฯฮนฮฒฯฯ ยซtry uniteยป$N$Nฮท ฮผฮฟฯฯฮฎ ฮทฮผฮตฯฮฟฮผฮทฮฝฮฏฮฑฯ ฮตฮฏฮฝฮฑฮน iso-8601, ฯฯฯฯ$N<code>2009-12-31</code> ฮฎ <code>2020-09-12 23:30:00</code>", @@ -4079,9 +4723,9 @@ var Ls = { "mt_mloop": "ฯฯ ฯฮฑฮฏฮฑ ฮฑฮฝฮฑฯฮฑฯฮฑฮณฯฮณฮฎ ฯฯฮฟฮฝ ฮฑฮฝฮฟฮนฮบฯฯ ฯฮฌฮบฮตฮปฮฟ\">๐ ฯฯ ฯฮฑฮฏฮฑ ฮฑฮฝฮฑฯฮฑฯฮฑฮณฯฮณฮฎ", "mt_mnext": "ฯฯฯฯฯฯฮท ฮตฯฯฮผฮตฮฝฮฟฯ ฯฮฑฮบฮญฮปฮฟฯ ฮบฮฑฮน ฯฯ ฮฝฮญฯฮนฯฮท\">๐ ฮตฯฯฮผฮตฮฝฮฟ", "mt_mstop": "ฯฯฮฑฮผฮฌฯฮทฯฮต ฯฮทฮฝ ฮฑฮฝฮฑฯฮฑฯฮฑฮณฯฮณฮฎ\">โธ ฯฯฮฑฮผฮฌฯฮทฮผฮฑ", - "mt_cflac": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ flac / wav ฯฮต opus\">flac", - "mt_caac": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ aac / m4a ฯฮต opus\">aac", - "mt_coth": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ ฯฮปฯฮฝ ฯฯฮฝ ฮฌฮปฮปฯฮฝ (ฮตฮบฯฯฯ ฯฯฮฝ mp3) ฯฮต opus\">ฮฌฮปฮปฮฟ", + "mt_cflac": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ flac / wav ฯฮต {0}\">flac", + "mt_caac": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ aac / m4a ฯฮต {0}\">aac", + "mt_coth": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ ฯฮปฯฮฝ ฯฯฮฝ ฮฌฮปฮปฯฮฝ (ฮตฮบฯฯฯ ฯฯฮฝ mp3) ฯฮต {0}\">ฮฌฮปฮปฮฟ", "mt_c2opus": "ฮบฮฑฮปฯฯฮตฯฮท ฮตฯฮนฮปฮฟฮณฮฎ ฮณฮนฮฑ desktop, laptop, android\">opus", "mt_c2owa": "opus-weba, ฮณฮนฮฑ iOS 17.5 ฮบฮฑฮน ฮฝฮตฯฯฮตฯฮฑ\">owa", "mt_c2caf": "opus-caf, ฮณฮนฮฑ iOS 11 ฮญฯฯ 17\">caf", @@ -4098,7 +4742,7 @@ var Ls = { "mb_play": "ฯฮฑฮฏฮพฮต", "mm_hashplay": "ฮฝฮฑ ฯฮฑฮฏฮพฯ ฮฑฯ ฯฯ ฯฮฟ ฮฑฯฯฮตฮฏฮฟ ฮฎฯฮฟฯ ;", - "mm_m3u": "ฯฮฌฯฮฑEnter/OK
ฮณฮนฮฑ ฮฮฝฮฑฯฮฑฯฮฑฮณฯฮณฮฎ\nฯฮฌฯฮฑ ESC/ฮฮบฯ
ฯฮฟ
ฮณฮนฮฑ ฮฯฮตฮพฮตฯฮณฮฑฯฮฏฮฑ",
+ "mm_m3u": "ฯฮฌฯฮฑ Enter/ฮฮฝฯฮฌฮพฮตฮน
ฮณฮนฮฑ ฮฮฝฮฑฯฮฑฯฮฑฮณฯฮณฮฎ\nฯฮฌฯฮฑ ESC/ฮฮบฯ
ฯฮฟ
ฮณฮนฮฑ ฮฯฮตฮพฮตฯฮณฮฑฯฮฏฮฑ",
"mp_breq": "ฯฯฮตฮนฮฌฮถฮตฯฮฑฮน firefox 82+ ฮฎ chrome 73+ ฮฎ iOS 15+",
"mm_bload": "ฯฮฟฯฯฯฮฝฮตฮน...",
"mm_bconv": "ฮผฮตฯฮฑฯฯฮฟฯฮฎ ฯฮต {0}, ฯฮตฯฮฏฮผฮตฮฝฮต...",
@@ -4131,7 +4775,7 @@ var Ls = {
"f_dls": 'ฮฟฮน ฯฯฮฝฮดฮตฯฮผฮฟฮน ฮฑฯฯฮตฮฏฯฮฝ ฯฯฮฟฮฝ ฯฯฮญฯฮฟฮฝฯฮฑ ฯฮฌฮบฮตฮปฮฟ ฮญฯฮฟฯ
ฮฝ\nฮผฮตฯฮฑฯฯฮฑฯฮตฮฏ ฯฮต ฯฯ
ฮฝฮดฮญฯฮผฮฟฯ
ฯ ฮปฮฎฯฮทฯ',
- "f_partial": "ฮฮนฮฑ ฮฝฮฑ ฮบฮฑฯฮตฮฒฮฌฯฮตฮนฯ ฮผฮต ฮฑฯฯฮฌฮปฮตฮนฮฑ ฮญฮฝฮฑ ฮฑฯฯฮตฮฏฮฟ ฯฮฟฯ
ฮฑฮฝฮตฮฒฮฑฮฏฮฝฮตฮน, ฮบฮปฮฏฮบฮฑฯฮต ฯฮฟ ฮฑฯฯฮตฮฏฮฟ ฮผฮต ฯฮฟ ฮฏฮดฮนฮฟ ฯฮฝฮฟฮผฮฑ, ฮฑฮปฮปฮฌ ฯฯฯฮฏฯ ฯฮทฮฝ ฮบฮฑฯฮฌฮปฮทฮพฮท .PARTIAL
. ฮ ฮฌฯฮฑ ฮฮบฯ
ฯฮฟ ฮฎ Escape ฮณฮนฮฑ ฮฝฮฑ ฯฯฮฑฮผฮฑฯฮฎฯฮตฮนฯ.\n\nฮ ฮฌฯฮฑ OK / Enter ฮฑฮฝ ฮฑฮณฮฝฮฟฮตฮฏฯ ฯฮทฮฝ ฯฯฮฟฮตฮนฮดฮฟฯฮฟฮฏฮทฯฮท ฮบฮฑฮน ฮบฮฑฯฮญฮฒฮฑฯฮต ฯฮฟ .PARTIAL
ฮฑฯฯฮตฮฏฮฟ, ฯฮฟฯ
ฯฯฮตฮดฯฮฝ ฯฮฏฮณฮฟฯ
ฯฮฑ ฮธฮฑ ฮตฮฏฮฝฮฑฮน ฮบฮฑฯฮตฯฯฯฮฑฮผฮผฮญฮฝฮฟ.",
+ "f_partial": "ฮฮนฮฑ ฮฝฮฑ ฮบฮฑฯฮตฮฒฮฌฯฮตฮนฯ ฮผฮต ฮฑฯฯฮฌฮปฮตฮนฮฑ ฮญฮฝฮฑ ฮฑฯฯฮตฮฏฮฟ ฯฮฟฯ
ฮฑฮฝฮตฮฒฮฑฮฏฮฝฮตฮน, ฮบฮปฮฏฮบฮฑฯฮต ฯฮฟ ฮฑฯฯฮตฮฏฮฟ ฮผฮต ฯฮฟ ฮฏฮดฮนฮฟ ฯฮฝฮฟฮผฮฑ, ฮฑฮปฮปฮฌ ฯฯฯฮฏฯ ฯฮทฮฝ ฮบฮฑฯฮฌฮปฮทฮพฮท .PARTIAL
. ฮ ฮฌฯฮฑ ฮฮบฯ
ฯฮฟ ฮฎ Escape ฮณฮนฮฑ ฮฝฮฑ ฯฯฮฑฮผฮฑฯฮฎฯฮตฮนฯ.\n\nฮ ฮฌฯฮฑ ฮฮฝฯฮฌฮพฮตฮน / Enter ฮฑฮฝ ฮฑฮณฮฝฮฟฮตฮฏฯ ฯฮทฮฝ ฯฯฮฟฮตฮนฮดฮฟฯฮฟฮฏฮทฯฮท ฮบฮฑฮน ฮบฮฑฯฮญฮฒฮฑฯฮต ฯฮฟ .PARTIAL
ฮฑฯฯฮตฮฏฮฟ, ฯฮฟฯ
ฯฯฮตฮดฯฮฝ ฯฮฏฮณฮฟฯ
ฯฮฑ ฮธฮฑ ฮตฮฏฮฝฮฑฮน ฮบฮฑฯฮตฯฯฯฮฑฮผฮผฮญฮฝฮฟ.",
"ft_paste": "ฮตฯฮนฮบฯฮปฮปฮทฯฮต {0} ฮฑฮฝฯฮนฮบฮตฮฏฮผฮตฮฝฮฑ$Nฮ ฮปฮฎฮบฯฯฮฟ ฯฯ
ฮฝฯฯฮผฮตฯ
ฯฮทฯ: ctrl-V",
"fr_eperm": 'ฮดฮตฮฝ ฮผฯฮฟฯฮตฮฏ ฮฝฮฑ ฮผฮตฯฮฟฮฝฮฟฮผฮฑฯฯฮตฮฏ:\nฮดฮตฮฝ ฮญฯฮตฮนฯ ฮดฮนฮบฮฑฮฏฯฮผฮฑ โฮผฮตฯฮฑฮบฮฏฮฝฮทฯฮทฯโ ฯฮต ฮฑฯ
ฯฯฮฝ ฯฮฟ ฯฮฌฮบฮตฮปฮฟ',
@@ -4161,7 +4805,7 @@ var Ls = {
"fs_tsrc": "ฯฮฟ ฮฑฯฯฮตฮฏฮฟ ฮฎ ฮฟ ฯฮฌฮบฮตฮปฮฟฯ ฯฯฮฟฯ ฮบฮฟฮนฮฝฮฎ ฯฯฮฎฯฮท",
"fs_ppwd": "ฯฯฮฟฮฑฮนฯฮตฯฮนฮบฯฯ ฮบฯฮดฮนฮบฯฯ",
"fs_w8": "ฮดฮทฮผฮนฮฟฯ
ฯฮณฮฏฮฑ ฮบฮฟฮนฮฝฮฎฯ ฯฯฮฎฯฮทฯ...",
- "fs_ok": "ฯฮฌฯฮฑ Enter/OK
ฮณฮนฮฑ ฮ ฯฯฯฮตฮนฯฮฟ\nฯฮฌฯฮฑ ESC/ฮฮบฯ
ฯฮฟ
ฮณฮนฮฑ ฮฮปฮตฮฏฯฮนฮผฮฟ",
+ "fs_ok": "ฯฮฌฯฮฑ Enter/ฮฮฝฯฮฌฮพฮตฮน
ฮณฮนฮฑ ฮ ฯฯฯฮตฮนฯฮฟ\nฯฮฌฯฮฑ ESC/ฮฮบฯ
ฯฮฟ
ฮณฮนฮฑ ฮฮปฮตฮฏฯฮนฮผฮฟ",
"frt_dec": "ฮผฯฮฟฯฮตฮฏ ฮฝฮฑ ฮดฮนฮฟฯฮธฯฯฮตฮน ฮผฮตฯฮนฮบฮญฯ ฯฮตฯฮนฯฯฯฯฮตฮนฯ ฮบฮฑฯฮตฯฯฯฮฑฮผฮผฮญฮฝฯฮฝ ฮฟฮฝฮฟฮผฮฌฯฯฮฝ ฮฑฯฯฮตฮฏฯฮฝ\">ฮฑฯฮฟฮบฯฮดฮนฮบฮฟฯฮฟฮฏฮทฯฮท url",
"frt_rst": "ฮตฯฮฑฮฝฮญฯฮตฯฮต ฯฮฑ ฮฟฮฝฯฮผฮฑฯฮฑ ฮฑฯฯฮตฮฏฯฮฝ ฯฯฮฑ ฮฑฯฯฮนฮบฮฌ ฯฮฟฯ
ฯ\">โบ ฮตฯฮฑฮฝฮฑฯฮฟฯฮฌ",
@@ -4206,6 +4850,7 @@ var Ls = {
"fcp_ok": "ฮฑฮฝฯฮนฮณฯฮฑฯฮฎ OK",
"fp_busy": "ฮผฮตฯฮฑฮบฮฏฮฝฮทฯฮท {0} ฮฑฮฝฯฮนฮบฮตฮนฮผฮญฮฝฯฮฝ...\n\n{1}",
"fcp_busy": "ฮฑฮฝฯฮนฮณฯฮฑฯฮฎ {0} ฮฑฮฝฯฮนฮบฮตฮนฮผฮญฮฝฯฮฝ...\n\n{1}",
+ "fp_abrt": "ฮณฮฏฮฝฮตฯฮฑฮน ฮฑฮบฯฯฯฯฮท...", //m
"fp_err": "ฮฑฯฮฟฯฯ
ฯฮฏฮฑ ฮผฮตฯฮฑฮบฮฏฮฝฮทฯฮทฯ:\n",
"fcp_err": "ฮฑฯฮฟฯฯ
ฯฮฏฮฑ ฮฑฮฝฯฮนฮณฯฮฑฯฮฎฯ:\n",
"fp_confirm": "ฮฝฮฑ ฮผฮตฯฮฑฮบฮนฮฝฮทฮธฮฟฯฮฝ ฮฑฯ
ฯฮฌ ฯฮฑ {0} ฮฑฮฝฯฮนฮบฮตฮฏฮผฮตฮฝฮฑ ฮตฮดฯ;",
@@ -4350,7 +4995,7 @@ var Ls = {
"u_enoow": "ฮดฮตฮฝ ฮผฯฮฟฯฮตฮฏฯ ฮฝฮฑ ฮบฮฌฮฝฮตฮนฯ ฮฑฮฝฯฮนฮบฮฑฯฮฌฯฯฮฑฯฮท ฮตฮดฯยท ฯฯฮตฮนฮฌฮถฮตฯฮฑฮน ฮดฮนฮบฮฑฮฏฯฮผฮฑ ฮฮนฮฑฮณฯฮฑฯฮฎฯ",
"u_badf": "ฮฯ
ฯฮฌ ฯฮฑ {0} ฮฑฯฯฮตฮฏฮฑ (ฮฑฯฯ {1} ฯฯ
ฮฝฮฟฮปฮนฮบฮฌ) ฯฮฑฯฮฑฮปฮตฮฏฯฮธฮทฮบฮฑฮฝ, ฯฮนฮธฮฑฮฝฯฯ ฮปฯฮณฯ ฮดฮนฮบฮฑฮนฯฮผฮฌฯฯฮฝ ฯฯ
ฯฯฮฎฮผฮฑฯฮฟฯ ฮฑฯฯฮตฮฏฯฮฝ:\n\n",
"u_blankf": "ฮฯ
ฯฮฌ ฯฮฑ {0} ฮฑฯฯฮตฮฏฮฑ (ฮฑฯฯ {1} ฯฯ
ฮฝฮฟฮปฮนฮบฮฌ) ฮตฮฏฮฝฮฑฮน ฮฌฮดฮตฮนฮฑ / ฮบฮตฮฝฮฌยท ฮฝฮฑ ฯฮฑ ฮผฮตฯฮฑฯฮฟฯฯฯฯฯ ฮญฯฯฮน ฮบฮน ฮฑฮปฮปฮนฯฯ;\n\n",
- "u_applef": "ฮฯ
ฯฮฌ ฯฮฑ {0} ฮฑฯฯฮตฮฏฮฑ (ฮฑฯฯ {1} ฯฯ
ฮฝฮฟฮปฮนฮบฮฌ) ฯฮนฮธฮฑฮฝฯฯ ฮดฮตฮฝ ฮตฮฏฮฝฮฑฮน ฮตฯฮนฮธฯ
ฮผฮทฯฮฌ;\nฮ ฮฌฯฮฑ OK/Enter
ฮณฮนฮฑ ฮฮ ฮฮฮฮฮฮฮฮฅฮ ฯฮฑ ฯฮฑฯฮฑฮบฮฌฯฯ ฮฑฯฯฮตฮฏฮฑ,\nฮ ฮฌฯฮฑ Cancel/ESC
ฮณฮนฮฑ ฮฮ ฮฮฮ ฮฮ ฮฮฮฮฮฮฃฮคฮฮฅฮ ฮบฮฑฮน ฮฝฮฑ ฮฮฮคฮฮฆฮฮกฮคฮฉฮฮฮฮ ฮบฮน ฮฑฯ
ฯฮฌ:\n\n",
+ "u_applef": "ฮฯ
ฯฮฌ ฯฮฑ {0} ฮฑฯฯฮตฮฏฮฑ (ฮฑฯฯ {1} ฯฯ
ฮฝฮฟฮปฮนฮบฮฌ) ฯฮนฮธฮฑฮฝฯฯ ฮดฮตฮฝ ฮตฮฏฮฝฮฑฮน ฮตฯฮนฮธฯ
ฮผฮทฯฮฌ;\nฮ ฮฌฯฮฑ ฮฮฝฯฮฌฮพฮตฮน/Enter
ฮณฮนฮฑ ฮฮ ฮฮฮฮฮฮฮฮฅฮ ฯฮฑ ฯฮฑฯฮฑฮบฮฌฯฯ ฮฑฯฯฮตฮฏฮฑ,\nฮ ฮฌฯฮฑ ฮฮบฯ
ฯฮฟ/ESC
ฮณฮนฮฑ ฮฮ ฮฮฮ ฮฮ ฮฮฮฮฮฮฃฮคฮฮฅฮ ฮบฮฑฮน ฮฝฮฑ ฮฮฮคฮฮฆฮฮกฮคฮฉฮฮฮฮ ฮบฮน ฮฑฯ
ฯฮฌ:\n\n",
"u_just1": "\nฮฯฯฯ ฮดฮฟฯ
ฮปฮญฯฮตฮน ฮบฮฑฮปฯฯฮตฯฮฑ ฮฑฮฝ ฮตฯฮนฮปฮญฮพฮตฮนฯ ฮผฯฮฝฮฟ ฮญฮฝฮฑ ฮฑฯฯฮตฮฏฮฟ",
"u_ff_many": "ฮฑฮฝ ฯฯฮทฯฮนฮผฮฟฯฮฟฮนฮตฮฏฯ Linux / MacOS / Android, ฯฯฯฮต ฯฯฯฮฑ ฮฑฯฯฮตฮฏฮฑ ฮผฯฮฟฯฮตฮฏ ฮฝฮฑ ฮบฮฑฯฮฌฯฯฮตฯ
ฯฮท ฯฮฟฯ
Firefox!\nฮฑฮฝ ฮณฮฏฮฝฮตฮน ฮฑฯ
ฯฯ, ฮดฮฟฮบฮฏฮผฮฑฯฮต ฮพฮฑฮฝฮฌ (ฮฎ ฯฯฮทฯฮนฮผฮฟฯฮฟฮฏฮทฯฮต ฯฮฟฮฝ Chrome).",
"u_up_life": "ฮฯ
ฯฮฎ ฮท ฮผฮตฯฮฑฯฯฯฯฯฯฮท ฮธฮฑ ฮดฮนฮฑฮณฯฮฑฯฮตฮฏ ฮฑฯฯ ฯฮฟ ฮดฮนฮฑฮบฮฟฮผฮนฯฯฮฎ\n{0} ฮผฮตฯฮฌ ฯฮทฮฝ ฮฟฮปฮฟฮบฮปฮฎฯฯฯฮฎ ฯฮทฯ",
@@ -4522,6 +5167,7 @@ var Ls = {
"gou": 'cartella genitore">su',
"gon": 'prossima cartella">succ',
"logout": "Logout ",
+ "login": "Accedi", //m
"access": " accesso",
"ot_close": "chiudi sottomenu",
"ot_search": "cerca file per attributi, percorso / nome, tag musicali, o qualsiasi combinazione di questi$N$N<code>foo bar</code> = deve contenere sia ยซfooยป che ยซbarยป,$N<code>foo -bar</code> = deve contenere ยซfooยป ma non ยซbarยป,$N<code>^yana .opus$</code> = inizia con ยซyanaยป ed รจ un file ยซopusยป$N<code>"try unite"</code> = contiene esattamente ยซtry uniteยป$N$Nil formato data รจ iso-8601, come$N<code>2009-12-31</code> o <code>2020-09-12 23:30:00</code>",
@@ -4708,9 +5354,9 @@ var Ls = {
"mt_mloop": "loop della cartella aperta\">๐ loop",
"mt_mnext": "carica la prossima cartella e continua\">๐ succ",
"mt_mstop": "ferma riproduzione\">โธ stop",
- "mt_cflac": "converti flac / wav in opus\">flac",
- "mt_caac": "converti aac / m4a in opus\">aac",
- "mt_coth": "converti tutti gli altri (non mp3) in opus\">oth",
+ "mt_cflac": "converti flac / wav in {0}\">flac",
+ "mt_caac": "converti aac / m4a in {0}\">aac",
+ "mt_coth": "converti tutti gli altri (non mp3) in {0}\">oth",
"mt_c2opus": "scelta migliore per desktop, laptop, android\">opus",
"mt_c2owa": "opus-weba, per iOS 17.5 e piรน recenti\">owa",
"mt_c2caf": "opus-caf, per iOS 11 fino a 17\">caf",
@@ -4835,6 +5481,7 @@ var Ls = {
"fcp_ok": "copia OK",
"fp_busy": "spostando {0} elementi...\n\n{1}",
"fcp_busy": "copiando {0} elementi...\n\n{1}",
+ "fp_abrt": "annullamento in corso...", //m
"fp_err": "spostamento fallito:\n",
"fcp_err": "copia fallita:\n",
"fp_confirm": "spostare questi {0} elementi qui?",
@@ -5043,6 +5690,637 @@ var Ls = {
"lang_set": "aggiornare per rendere effettivo il cambiamento?",
},
+ "kor": {
+ "tt": "ํ๊ตญ์ด",
+
+ "cols": {
+ "c": "์์
๋ฒํผ",
+ "dur": "๊ธธ์ด",
+ "q": "ํ์ง/๋นํธ๋ ์ดํธ",
+ "Ac": "์ค๋์ค ์ฝ๋ฑ",
+ "Vc": "๋น๋์ค ์ฝ๋ฑ",
+ "Fmt": "ํ์/์ปจํ
์ด๋",
+ "Ahash": "์ค๋์ค ์ฒดํฌ์ฌ",
+ "Vhash": "๋น๋์ค ์ฒดํฌ์ฌ",
+ "Res": "ํด์๋",
+ "T": "ํ์ผ ์ ํ",
+ "aq": "์ค๋์ค ํ์ง/๋นํธ๋ ์ดํธ",
+ "vq": "๋น๋์ค ํ์ง/๋นํธ๋ ์ดํธ",
+ "pixfmt": "์๋ธ์ํ๋ง/ํฝ์
๊ตฌ์กฐ",
+ "resw": "๊ฐ๋ก ํด์๋",
+ "resh": "์ธ๋ก ํด์๋",
+ "chs": "์ค๋์ค ์ฑ๋",
+ "hz": "์ํ๋ ์ดํธ"
+ },
+
+ "hks": [
+ [
+ "๊ธฐํ",
+ ["ESC", "๋ค์ํ ์ฐฝ ๋ซ๊ธฐ"],
+
+ "ํ์ผ ๊ด๋ฆฌ์",
+ ["G", "๋ชฉ๋ก/๊ทธ๋ฆฌ๋ ๋ณด๊ธฐ ์ ํ"],
+ ["T", "์ธ๋ค์ผ/์์ด์ฝ ์ ํ"],
+ ["โง A/D", "์ธ๋ค์ผ ์ด๋ฏธ์ง ํฌ๊ธฐ"],
+ ["ctrl-K", "์ ํ ํญ๋ชฉ ์ญ์ "],
+ ["ctrl-X", "์ ํ ํญ๋ชฉ ์๋ผ๋ด๊ธฐ"],
+ ["ctrl-C", "์ ํ ํญ๋ชฉ ๋ณต์ฌ"],
+ ["ctrl-V", "์ฌ๊ธฐ์ ๋ถ์ฌ๋ฃ๊ธฐ (์ด๋/๋ณต์ฌ)"],
+ ["Y", "์ ํ ํญ๋ชฉ ๋ค์ด๋ก๋"],
+ ["F2", "์ ํ ํญ๋ชฉ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ"],
+
+ "ํ์ผ ๋ชฉ๋ก ์ ํ",
+ ["space", "ํ์ผ ์ ํ/ํด์ "],
+ ["โ/โ", "์ ํ ์ปค์ ์ด๋"],
+ ["ctrl โ/โ", "์ปค์์ ๋ทฐํฌํธ ๋์ ์ด๋"],
+ ["โง โ/โ", "์ด์ /๋ค์ ํ์ผ ์ ํ"],
+ ["ctrl-A", "๋ชจ๋ ํ์ผ/ํด๋ ์ ํ"],
+ ], [
+ "ํ์",
+ ["B", "๋ธ๋ ๋ํฌ๋ผ/ํ์์ฐฝ ์ ํ"],
+ ["I/K", "์ด์ /๋ค์ ํด๋"],
+ ["M", "์์ ํด๋ (๋๋ ํ์ฌ ํญ๋ชฉ ๋ซ๊ธฐ)"],
+ ["V", "ํ์์ฐฝ์ ํด๋/ํ
์คํธ ํ์ผ ํ์ ์ ํ"],
+ ["A/D", "ํ์์ฐฝ ํฌ๊ธฐ"],
+ ], [
+ "์ค๋์ค ํ๋ ์ด์ด",
+ ["J/L", "์ด์ /๋ค์ ๊ณก"],
+ ["U/O", "10์ด ๋ค๋ก/์์ผ๋ก ๊ฑด๋๋ฐ๊ธฐ"],
+ ["0..9", "0%..90% ์ง์ ์ผ๋ก ์ด๋"],
+ ["P", "์ฌ์/์ผ์์ ์ง (์์ ํฌํจ)"],
+ ["S", "์ฌ์ ์ค์ธ ๊ณก ์ ํ"],
+ ["Y", "๊ณก ๋ค์ด๋ก๋"],
+ ], [
+ "์ด๋ฏธ์ง ๋ทฐ์ด",
+ ["J/L, โ/โ", "์ด์ /๋ค์ ์ด๋ฏธ์ง"],
+ ["Home/End", "์ฒซ/๋ง์ง๋ง ์ด๋ฏธ์ง"],
+ ["F", "์ ์ฒด ํ๋ฉด"],
+ ["R", "์๊ณ ๋ฐฉํฅ์ผ๋ก ํ์ "],
+ ["โง R", "๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ํ์ "],
+ ["S", "์ด๋ฏธ์ง ์ ํ"],
+ ["Y", "์ด๋ฏธ์ง ๋ค์ด๋ก๋"],
+ ], [
+ "๋น๋์ค ํ๋ ์ด์ด",
+ ["U/O", "10์ด ๋ค๋ก/์์ผ๋ก ๊ฑด๋๋ฐ๊ธฐ"],
+ ["P/K/Space", "์ฌ์/์ผ์์ ์ง"],
+ ["C", "๋ค์ ํ์ผ ๊ณ์ ์ฌ์"],
+ ["V", "๋ฐ๋ณต"],
+ ["M", "์์๊ฑฐ"],
+ ["[ ์ ]", "๋ฐ๋ณต ๊ตฌ๊ฐ ์ค์ "],
+ ], [
+ "ํ
์คํธ ํ์ผ ๋ทฐ์ด",
+ ["I/K", "์ด์ /๋ค์ ํ์ผ"],
+ ["M", "ํ
์คํธ ํ์ผ ๋ซ๊ธฐ"],
+ ["E", "ํ
์คํธ ํ์ผ ํธ์ง"],
+ ["S", "ํ์ผ ์ ํ (์๋ผ๋ด๊ธฐ/๋ณต์ฌ/์ด๋ฆ ๋ฐ๊พธ๊ธฐ์ฉ)"],
+ ]
+ ],
+
+ "m_ok": "ํ์ธ",
+ "m_ng": "์ทจ์",
+
+ "enable": "ํ์ฑํ",
+ "danger": "์ํ",
+ "clipped": "ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ๋์์ต๋๋ค",
+
+ "ht_s1": "์ด",
+ "ht_s2": "์ด",
+ "ht_m1": "๋ถ",
+ "ht_m2": "๋ถ",
+ "ht_h1": "์๊ฐ",
+ "ht_h2": "์๊ฐ",
+ "ht_d1": "์ผ",
+ "ht_d2": "์ผ",
+ "ht_and": " ",
+
+ "goh": "์ ์ดํ",
+ "gop": '์ด์ ํ์ ํด๋">์ด์ ',
+ "gou": '์์ ํด๋">์๋ก',
+ "gon": '๋ค์ ํด๋">๋ค์',
+ "logout": "๋ก๊ทธ์์ ",
+ "login": "๋ก๊ทธ์ธ", //m
+ "access": " ์ก์ธ์ค",
+ "ot_close": "ํ์ ๋ฉ๋ด ๋ซ๊ธฐ",
+ "ot_search": "์์ฑ, ๊ฒฝ๋ก/์ด๋ฆ, ์์
ํ๊ทธ ๋๋ ์ด๋ค์ ์กฐํฉ์ผ๋ก ํ์ผ์ ๊ฒ์ํฉ๋๋ค.$N$N<code>foo bar</code> = ยซfooยป์ ยซbarยป๋ฅผ ๋ชจ๋ ํฌํจํด์ผ ํจ,$N<code>foo -bar</code> = ยซfooยป๋ ํฌํจํ์ง๋ง ยซbarยป๋ ํฌํจํ์ง ์์์ผ ํจ,$N<code>^yana .opus$</code> = ยซyanaยป๋ก ์์ํ๊ณ ยซopusยป ํ์ผ์ด์ด์ผ ํจ$N<code>"try unite"</code> = ์ ํํ ยซtry uniteยป๋ฅผ ํฌํจํด์ผ ํจ$N$N๋ ์ง ํ์์ ISO-8601์
๋๋ค. ์:$N<code>2009-12-31</code> ๋๋ <code>2020-09-12 23:30:00</code>",
+ "ot_unpost": "์ฃผ์๋ด๊ธฐ: ์ต๊ทผ ์
๋ก๋ํ ํญ๋ชฉ์ ์ญ์ ํ๊ฑฐ๋ ๋ฏธ์๋ฃ๋ ์
๋ก๋๋ฅผ ์ค๋จํฉ๋๋ค",
+ "ot_bup": "bup: ๊ธฐ๋ณธ ์
๋ก๋. ๋ท์ค์ผ์ดํ 4.0๋ ์ง์ํฉ๋๋ค",
+ "ot_mkdir": "mkdir: ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค",
+ "ot_md": "new-md: ์ ๋งํฌ๋ค์ด ๋ฌธ์๋ฅผ ๋ง๋ญ๋๋ค",
+ "ot_msg": "msg: ์๋ฒ ๋ก๊ทธ์ ๋ฉ์์ง๋ฅผ ๋ณด๋
๋๋ค",
+ "ot_mp": "๋ฏธ๋์ด ํ๋ ์ด์ด ์ต์
",
+ "ot_cfg": "๊ตฌ์ฑ ์ต์
",
+ "ot_u2i": 'up2k: (์ฐ๊ธฐ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ) ํ์ผ์ ์
๋ก๋ํ๊ฑฐ๋, ๊ฒ์ ๋ชจ๋๋ก ์ ํํ์ฌ ์๋ฒ ์ด๋๊ฐ์ ํ์ผ์ด ์๋์ง ํ์ธํฉ๋๋ค.$N$N์
๋ก๋๋ ์ฌ๊ฐ ๊ฐ๋ฅํ๊ณ , ๋ฉํฐ์ค๋ ๋๋ก ์๋ํ๋ฉฐ, ํ์ผ ํ์์คํฌํ๊ฐ ๋ณด์กด๋์ง๋ง, [๐] (๊ธฐ๋ณธ ์
๋ก๋)๋ณด๋ค CPU๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.๐ป๋ณต์ฌ
ํด๋ฆญ)",
+ "wt_m3uc": "m3u ์ฌ์ ๋ชฉ๋ก์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ",
+ "wt_grid": "๊ทธ๋ฆฌ๋/๋ชฉ๋ก ๋ณด๊ธฐ ์ ํ$N๋จ์ถํค: G",
+ "wt_prev": "์ด์ ํธ๋$N๋จ์ถํค: J",
+ "wt_play": "์ฌ์/์ผ์์ ์ง$N๋จ์ถํค: P",
+ "wt_next": "๋ค์ ํธ๋$N๋จ์ถํค: L",
+
+ "ul_par": "๋์ ์
๋ก๋:",
+ "ut_rand": "ํ์ผ๋ช
๋ฌด์์๋ก ๋ง๋ค๊ธฐ",
+ "ut_u2ts": "์ฌ์ฉ์ ํ์ผ ์์คํ
์ ๋ง์ง๋ง ์์ ํ์์คํฌํ๋ฅผ$N์๋ฒ์ ๋ณต์ฌ\">๐
",
+ "ut_ow": "์๋ฒ์ ์๋ ๊ธฐ์กด ํ์ผ์ ๋ฎ์ด์ธ๊น์?$N๐ก๏ธ: ์ ํจ (๋์ ์ ํ์ผ ์ด๋ฆ ์์ฑ)$N๐: ์๋ฒ ํ์ผ์ด ๋ ์ค๋๋ ๊ฒฝ์ฐ ๋ฎ์ด์ฐ๊ธฐ$Nโป๏ธ: ํ์ผ์ด ๋ค๋ฅด๋ฉด ํญ์ ๋ฎ์ด์ฐ๊ธฐ",
+ "ut_mt": "์
๋ก๋ ์ค ๋ค๋ฅธ ํ์ผ ํด์ฑ ๊ณ์ํ๊ธฐ$N$NCPU ๋๋ HDD๊ฐ ๋ณ๋ชฉ ํ์์ ์ผ์ผํค๋ ๊ฒฝ์ฐ ๋นํ์ฑํํ์ธ์",
+ "ut_ask": '์
๋ก๋ ์์ ์ ํ์ธ ์์ฒญ">๐ญ',
+ "ut_pot": "๋๋ฆฐ ๊ธฐ๊ธฐ์์ UI๋ฅผ ๋จ์ํํ์ฌ$N์
๋ก๋ ์๋ ํฅ์",
+ "ut_srch": "์ค์ ๋ก ์
๋ก๋ํ๋ ๋์ , ํ์ผ์ด ์ด๋ฏธ ์๋ฒ์ ์๋์ง ํ์ธํฉ๋๋ค$N(์ฝ์ ์ ์๋ ๋ชจ๋ ํด๋๋ฅผ ์ค์บํฉ๋๋ค)",
+ "ut_par": "0์ผ๋ก ์ค์ ํ์ฌ ์
๋ก๋ ์ผ์์ ์ง$N$N์ฐ๊ฒฐ์ด ๋๋ฆฌ๊ฑฐ๋ ์ง์ฐ ์๊ฐ์ด ๊ธธ๋ฉด ๋๋ฆฌ์ธ์$N$NLAN ํ๊ฒฝ์ด๊ฑฐ๋ ์๋ฒ HDD๊ฐ ๋ณ๋ชฉ ํ์์ ์ผ์ผํค๋ฉด 1๋ก ์ ์งํ์ธ์",
+ "ul_btn": "ํ์ผ/ํด๋๋ฅผ ์ฌ๊ธฐ์Enter
= ํ์ผ (ํ๋ ์ด์)\nESC
= ํด๋ ํ๋ (ํ์ ํด๋ ํฌํจ)',
+ "u_nav_b": 'ํ์ผํด๋ ํ๋',
+
+ "cl_opts": "์ค์์น",
+ "cl_themes": "ํ
๋ง",
+ "cl_langs": "์ธ์ด",
+ "cl_ziptype": "ํด๋ ๋ค์ด๋ก๋",
+ "cl_uopts": "up2k ์ค์์น",
+ "cl_favico": "ํ๋น์ฝ",
+ "cl_bigdir": "ํฐ ๋๋ ํฐ๋ฆฌ",
+ "cl_hsort": "#sort",
+ "cl_keytype": "์กฐ์ฑ ํ๊ธฐ๋ฒ",
+ "cl_hiddenc": "์จ๊ฒจ์ง ์ด",
+ "cl_hidec": "์จ๊ธฐ๊ธฐ",
+ "cl_reset": "์ด๊ธฐํ",
+ "cl_hpick": "์๋ ํ
์ด๋ธ์์ ์จ๊ธฐ๊ณ ์ถ์ ์ด์ ํค๋๋ฅผ ํญํ์ธ์",
+ "cl_hcancel": "์ด ์จ๊ธฐ๊ธฐ๊ฐ ์ค๋จ๋์์ต๋๋ค",
+
+ "ct_grid": "็ฐ ๊ทธ๋ฆฌ๋",
+ "ct_ttips": 'โ โก โ">โน๏ธ ๋์๋ง',
+ "ct_thumb": '๊ทธ๋ฆฌ๋ ๋ณด๊ธฐ์์ ์์ด์ฝ ๋๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง ์ ํ$N๋จ์ถํค: T">๐ผ๏ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ',
+ "ct_csel": '๊ทธ๋ฆฌ๋ ๋ณด๊ธฐ์์ CTRL๊ณผ SHIFT๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์ ํ">์ ํ',
+ "ct_ihop": '์ด๋ฏธ์ง ๋ทฐ์ด๋ฅผ ๋ซ์ผ๋ฉด ๋ง์ง๋ง์ผ๋ก ๋ณธ ํ์ผ๋ก ์คํฌ๋กค">gโฎฏ',
+ "ct_dots": '์จ๊น ํ์ผ ํ์ (์๋ฒ๊ฐ ํ์ฉํ๋ ๊ฒฝ์ฐ)">์จ๊นํ์ผ',
+ "ct_qdel": 'ํ์ผ ์ญ์ ์ ํ ๋ฒ๋ง ํ์ธ ์์ฒญ">๋น ๋ฅธ์ญ์ ',
+ "ct_dir1st": 'ํด๋๋ฅผ ํ์ผ๋ณด๋ค ๋จผ์ ์ ๋ ฌ">๐ ๋จผ์ ',
+ "ct_nsort": '์์ฐ์ด ์ ๋ ฌ (ํ์ผ๋ช
์ ์ซ์๋ฅผ ์ธ์)">์์ฐ์ด์ ๋ ฌ',
+ "ct_utc": '๋ชจ๋ ๋ ์ง/์๊ฐ์ UTC๋ก ํ์">UTC',
+ "ct_readme": 'ํด๋ ๋ชฉ๋ก์ README.md ํ์">๐ readme',
+ "ct_idxh": 'ํด๋ ๋ชฉ๋ก ๋์ index.html ํ์">htm',
+ "ct_sbars": '์คํฌ๋กค๋ฐ ํ์">โ',
+
+ "cut_umod": 'ํ์ผ์ด ์๋ฒ์ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ, ์๋ฒ์ ๋ง์ง๋ง ์์ ํ์์คํฌํ๋ฅผ ๋ก์ปฌ ํ์ผ๊ณผ ์ผ์นํ๋๋ก ์
๋ฐ์ดํธํฉ๋๋ค (์ฐ๊ธฐ+์ญ์ ๊ถํ ํ์).\">re๐
',
+
+ "cut_turbo": 'YOLO ๋ฒํผ. ์๋ง ํ์ฑํํ๊ณ ์ถ์ง ์์ผ์ค ๊ฒ๋๋ค.$N$N๋๋์ ํ์ผ์ ์
๋ก๋ํ๋ค๊ฐ ์ด๋ค ์ด์ ๋ก ์ฌ์์ํด์ผ ํ ๋, ์ต๋ํ ๋นจ๋ฆฌ ์
๋ก๋๋ฅผ ๊ณ์ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ์ธ์.$N$N์ด ์ต์
์ ํด์ ํ์ธ์ ๋จ์ํ "์๋ฒ์ ๋์ผํ ํ์ผ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ํ์ผ์ด ์๋๊ฐ?"๋ก ๋์ฒดํ๋ฏ๋ก, ํ์ผ ๋ด์ฉ๋ง ๋ค๋ฅผ ๊ฒฝ์ฐ ์
๋ก๋๋์ง ์์ต๋๋ค.$N$N์
๋ก๋๊ฐ ๋๋๋ฉด ์ด ์ต์
์ ๋๊ณ , ๋์ผํ ํ์ผ์ ๋ค์ \"์
๋ก๋\"ํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ๊ฒ์ฆํ๋๋ก ํด์ผ ํฉ๋๋ค.\">turbo',
+
+ "cut_datechk": 'ํฐ๋ณด ๋ฒํผ์ด ํ์ฑํ๋์ด ์์ง ์์ผ๋ฉด ํจ๊ณผ๊ฐ ์์ต๋๋ค.$N$NYOLO์ ์ํ์ฑ์ ์ฝ๊ฐ ์ค์ฌ์ค๋๋ค. ์๋ฒ์ ํ์ผ ํ์์คํฌํ๊ฐ ์ฌ์ฉ์์ ๊ฒ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.$N$N์ด๋ก ์ ์ผ๋ก๋ ๋๋ถ๋ถ์ ๋ฏธ์๋ฃ/์์๋ ์
๋ก๋๋ฅผ ์ก์๋ด์ง๋ง, ํฐ๋ณด๋ฅผ ๋นํ์ฑํํ๊ณ ๊ฒ์ฆ ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒ์ ๋์ฒดํ ์๋ ์์ต๋๋ค.\">๋ ์งํ์ธ',
+
+ "cut_u2sz": "๊ฐ ์
๋ก๋ ์ฒญํฌ์ ํฌ๊ธฐ (MiB)์
๋๋ค. ํฐ ๊ฐ์ ํํ์์ ๊ฑด๋๋ ๋ฐ ๋ ์ ๋ฆฌํฉ๋๋ค. ๋งค์ฐ ๋ถ์์ ํ ์ฐ๊ฒฐ์์๋ ๋ฎ์ ๊ฐ์ ์๋ํด๋ณด์ธ์.",
+
+ "cut_flag": 'ํ ๋ฒ์ ํ๋์ ํญ๋ง ์
๋ก๋ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.$N-- ๋ค๋ฅธ ํญ๋ ์ด ์ต์
์ ํ์ฑํํด์ผ ํฉ๋๋ค.$N-- ๋์ผํ ๋๋ฉ์ธ์ ํญ์๋ง ์ํฅ์ ๋ฏธ์นฉ๋๋ค.',
+
+ "cut_az": '๊ฐ์ฅ ์์ ํ์ผ ์ฐ์ ์ด ์๋ ์ํ๋ฒณ ์์๋ก ํ์ผ์ ์
๋ก๋ํฉ๋๋ค.$N$N์ํ๋ฒณ ์์๋ ์๋ฒ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ๋์ผ๋ก ํ์ธํ๊ธฐ ์ฝ๊ฒ ํด์ฃผ์ง๋ง, ๊ด๋/LAN ํ๊ฒฝ์์๋ ์
๋ก๋ ์๋๊ฐ ์ฝ๊ฐ ๋๋ ค์ง๋๋ค.',
+
+ "cut_nag": '์
๋ก๋ ์๋ฃ ์ OS ์๋ฆผ$N(๋ธ๋ผ์ฐ์ ๋ ํญ์ด ํ์ฑํ๋์ง ์์ ๊ฒฝ์ฐ์๋ง)',
+ "cut_sfx": '์
๋ก๋ ์๋ฃ ์ ์๋ฆฌ ์๋ฆผ$N(๋ธ๋ผ์ฐ์ ๋ ํญ์ด ํ์ฑํ๋์ง ์์ ๊ฒฝ์ฐ์๋ง)',
+
+ "cut_mt": '๋ฉํฐ์ค๋ ๋ฉ์ ์ฌ์ฉํ์ฌ ํ์ผ ํด์ฑ ์๋๋ฅผ ๋์
๋๋ค.$N$N์ด ๊ธฐ๋ฅ์ ์น ์์ปค๋ฅผ ์ฌ์ฉํ๋ฉฐ$N๋ ๋ง์ RAM์ด ํ์ํฉ๋๋ค (์ถ๊ฐ์ ์ผ๋ก ์ต๋ 512 MiB).$N$Nhttps๋ 30% ๋ ๋น ๋ฅด๊ฒ, http๋ 4.5๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ญ๋๋ค.\">mt',
+
+ "cut_wasm": '๋ธ๋ผ์ฐ์ ๋ด์ฅ ํด์
๋์ wasm์ ์ฌ์ฉํฉ๋๋ค. ํฌ๋กฌ ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ ์์ ์๋๋ฅผ ํฅ์์ํค์ง๋ง CPU ๋ถํ๋ฅผ ์ฆ๊ฐ์ํค๋ฉฐ, ๋ง์ ๊ตฌ๋ฒ์ ํฌ๋กฌ์๋ ์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด ๋ชจ๋ RAM์ ์๋ชจํ๊ณ ์ถฉ๋ํ๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค.\">wasm',
+
+ "cft_text": "ํ๋น์ฝ ํ
์คํธ (๋น์๋๊ณ ์๋ก๊ณ ์นจํ๋ฉด ๋นํ์ฑํ๋จ)",
+ "cft_fg": "์ ๊ฒฝ์",
+ "cft_bg": "๋ฐฐ๊ฒฝ์",
+
+ "cdt_lim": "ํด๋์ ํ์ํ ์ต๋ ํ์ผ ์",
+ "cdt_ask": "๋งจ ์๋๋ก ์คํฌ๋กคํ ๋$N๋ ๋ง์ ํ์ผ์ ๋ถ๋ฌ์ค๋ ๋์ $N๋ฌด์์ ํ ์ง ๋ฌป๊ธฐ",
+ "cdt_hsort": "๋ฏธ๋์ด URL์ ํฌํจํ ์ ๋ ฌ ๊ท์น (<code>,sorthref</code>)์ ์. 0์ผ๋ก ์ค์ ํ๋ฉด ๋ฏธ๋์ด ๋งํฌ๋ฅผ ํด๋ฆญํ ๋ ํฌํจ๋ ์ ๋ ฌ ๊ท์น๋ ๋ฌด์๋ฉ๋๋ค.",
+
+ "tt_entree": "ํ์ ์ฐฝ (๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ ์ฌ์ด๋๋ฐ) ํ์$N๋จ์ถํค: B",
+ "tt_detree": "์ด๋ ๊ฒฝ๋ก ํ์$N๋จ์ถํค: B",
+ "tt_visdir": "์ ํํ ํด๋๋ก ์คํฌ๋กคํ๊ธฐ",
+ "tt_ftree": "ํด๋ ํธ๋ฆฌ/ํ
์คํธ ํ์ผ ์ ํ$N๋จ์ถํค: V",
+ "tt_pdock": "์์ ํด๋๋ฅผ ์๋จ์ ๊ณ ์ ๋ ์ฐฝ์ ํ์",
+ "tt_dynt": "ํธ๋ฆฌ๊ฐ ํ์ฅ๋ ๋ ์๋์ผ๋ก ๋๋น ์ฆ๊ฐ",
+ "tt_wrap": "์๋ ์ค ๋ฐ๊ฟ",
+ "tt_hover": "๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ๋์ด๊ฐ๋ ์ค ํ์$N(๋ง์ฐ์ค ์ปค์๊ฐ ์ผ์ชฝ ์ฌ๋ฐฑ์$N ์์ง ์์ผ๋ฉด ์คํฌ๋กค์ด ๊นจ์ง)",
+
+ "ml_pmode": "ํด๋ ๋์์...",
+ "ml_btns": "๋ช
๋ น",
+ "ml_tcode": "ํธ๋์ค์ฝ๋ฉ",
+ "ml_tcode2": "๋ค์์ผ๋ก ํธ๋์ค์ฝ๋ฉ",
+ "ml_tint": "ํดํธ",
+ "ml_eq": "์ค๋์ค ์ดํ๋ผ์ด์ ",
+ "ml_drc": "๋ค์ด๋ด๋ฏน ๋ ์ธ์ง ์์ถ๊ธฐ",
+
+ "mt_loop": "ํ ๊ณก ๋ฐ๋ณต ์ฌ์\">๐",
+ "mt_one": "ํ ๊ณก ์ฌ์ ํ ์ค์ง\">1๏ธโฃ",
+ "mt_shuf": "๊ฐ ํด๋์ ๊ณก์ ๋ฌด์์ ์ฌ์\">๐",
+ "mt_aplay": "์๋ฒ์ ์ ์ํ ๋งํฌ์ ๊ณก ID๊ฐ ์์ผ๋ฉด ์๋ ์ฌ์$N$N์ด๊ฒ์ ๋นํ์ฑํํ๋ฉด ์์
์ฌ์ ์ ํ์ด์ง URL์ด ๊ณก ID๋ก ์
๋ฐ์ดํธ๋์ง ์์, ์ด ์ค์ ์ด ์์ค๋๊ณ URL์ด ๋จ์์์ ๊ฒฝ์ฐ ์๋ ์ฌ์๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.\">aโถ",
+ "mt_preload": "๋๊น ์๋ ์ฌ์์ ์ํด ๋ค์ ๊ณก์ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค๊ธฐ ์์\">๋ฏธ๋ฆฌ๋ก๋",
+ "mt_prescan": "๋ง์ง๋ง ๊ณก์ด ๋๋๊ธฐ ์ ์ ๋ค์ ํด๋๋ก ์ด๋ํ์ฌ$N์น๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์์ ๋ฉ์ถ์ง ์๋๋ก ํฉ๋๋ค.\">ํ์",
+ "mt_fullpre": "์ ์ฒด ๊ณก์ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค๊ธฐ ์๋;$Nโ
๋ถ์์ ํ ์ฐ๊ฒฐ์์ ํ์ฑํ,$Nโ ๋๋ฆฐ ์ฐ๊ฒฐ์์๋ ์๋ง๋ ๋นํ์ฑํ\">์ ์ฒด",
+ "mt_fau": "ํฐ์์ ๋ค์ ๊ณก์ด ์ถฉ๋ถํ ๋นจ๋ฆฌ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค์ง ์์ ์์
์ด ๋ฉ์ถ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค (ํ๊ทธ ํ์๊ฐ ๋ถ์์ ํด์ง ์ ์์).\">โ๏ธ",
+ "mt_waves": "ํํ ํ์ ๋ฐ:$Nํ์ ๋ฐ์ ์ค๋์ค ์งํญ ํ์\">~s",
+ "mt_npclip": "ํ์ฌ ์ฌ์ ์ค์ธ ๊ณก์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ๋ ๋ฒํผ ํ์\">/np",
+ "mt_m3u_c": "์ ํํ ๊ณก์ m3u8 ์ฌ์ ๋ชฉ๋ก ํญ๋ชฉ์ผ๋ก$Nํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ๋ ๋ฒํผ ํ์\">๐ป",
+ "mt_octl": "OS ํตํฉ (๋ฏธ๋์ด ๋จ์ถํค/OSD)\">os-ctl",
+ "mt_oseek": "OS ํตํฉ์ ํตํด ํ์ ํ์ฉ$N$N์ฐธ๊ณ : ์ผ๋ถ ๊ธฐ๊ธฐ (iPhone)์์๋$N์ด๊ฒ์ด ๋ค์ ๊ณก ๋ฒํผ์ ๋์ฒดํฉ๋๋ค.\">ํ์",
+ "mt_oscv": "OSD์ ์จ๋ฒ ์ปค๋ฒ ํ์\">์ํธ",
+ "mt_follow": "์ฌ์ ์ค์ธ ํธ๋์ด ๋ณด์ด๋๋ก ์คํฌ๋กค ์ ์ง\">๐ฏ",
+ "mt_compact": "์ปดํฉํธ ์ปจํธ๋กค\">โ",
+ "mt_uncache": "์บ์ ์ง์ฐ๊ธฐ (๋ธ๋ผ์ฐ์ ๊ฐ ๊ณก์ ๊นจ์ง ์ฌ๋ณธ์ ์บ์ํ์ฌ$N์ฌ์์ด ์๋๋ ๊ฒฝ์ฐ ์๋ํด๋ณด์ธ์)\">์บ์์ญ์ ",
+ "mt_mloop": "์ด๋ฆฐ ํด๋ ๋ฐ๋ณต\">๐ ๋ฐ๋ณต",
+ "mt_mnext": "๋ค์ ํด๋ ๋ถ๋ฌ์ค๊ณ ๊ณ์\">๐ ๋ค์",
+ "mt_mstop": "์ฌ์ ์ค์ง\">โธ ์ค์ง",
+ "mt_cflac": "flac/wav๋ฅผ {0}๋ก ๋ณํ\">flac",
+ "mt_caac": "aac/m4a๋ฅผ {0}๋ก ๋ณํ\">aac",
+ "mt_coth": "๋ค๋ฅธ ๋ชจ๋ ๊ฒ (mp3 ์ ์ธ)์ {0}๋ก ๋ณํ\">๊ธฐํ",
+ "mt_c2opus": "๋ฐ์คํฌํฑ, ๋
ธํธ๋ถ, ์๋๋ก์ด๋ ํ๊ฒฝ์ ์ต์ \">opus",
+ "mt_c2owa": "iOS 17.5 ์ด์์ฉ opus-weba\">owa",
+ "mt_c2caf": "iOS 11๋ถํฐ 17๊น์ง์ฉ opus-caf\">caf",
+ "mt_c2mp3": "๋งค์ฐ ์ค๋๋ ๊ธฐ๊ธฐ์์ ์ฌ์ฉ\">mp3",
+ "mt_c2flac": "์ต๊ณ ์์ง์ด์ง๋ง ๋ค์ด๋ก๋ ์ฉ๋์ด ํผ\">flac",
+ "mt_c2wav": "๋น์์ถ ์ฌ์ (๋ ํผ)\">wav",
+ "mt_c2ok": "๋ค, ์ข์ ์ ํ์
๋๋ค",
+ "mt_c2nd": "๊ธฐ๊ธฐ์ ๊ถ์ฅ๋๋ ์ถ๋ ฅ ํ์์ด ์๋์ง๋ง ๊ด์ฐฎ์ต๋๋ค",
+ "mt_c2ng": "๊ธฐ๊ธฐ๊ฐ ์ด ์ถ๋ ฅ ํ์์ ์ง์ํ์ง ์๋ ๊ฒ ๊ฐ์ง๋ง, ์๋ํด ๋ณด๊ฒ ์ต๋๋ค",
+ "mt_xowa": "iOS์์ ์ด ํ์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ฌ์์ด ์๋๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. ๋์ caf๋ mp3๋ฅผ ์ฌ์ฉํด์ฃผ์ธ์.",
+ "mt_tint": "ํ์ ๋ฐ์ ๋ฐฐ๊ฒฝ ๋ ๋ฒจ (0-100)$N๋ฒํผ๋ง์ด ๋ ๋์๋ฆฌ๊ฒ ๋ง๋ฆ",
+ "mt_eq": "์ดํ๋ผ์ด์ ๋ฐ ๊ฒ์ธ ์ ์ด ํ์ฑํ;$N$Nboost <code>0</code> = ํ์ค 100% ๋ณผ๋ฅจ (์์ ์์)$N$Nwidth <code>1 </code> = ํ์ค ์คํ
๋ ์ค (์์ ์์)$Nwidth <code>0.5</code> = 50% ์ข์ฐ ํฌ๋ก์คํผ๋$Nwidth <code>0 </code> = ๋ชจ๋
ธ$N$Nboost <code>-0.8</code> & width <code>10</code> = ๋ณด์ปฌ ์ ๊ฑฐ :^)$N$N์ดํ๋ผ์ด์ ๋ฅผ ํ์ฑํํ๋ฉด ๋๊น ์๋ ์จ๋ฒ์ด ์จ์ ํ ๋๊น ์์ด ์ฌ์๋๋ฏ๋ก, ๊ทธ ์ ์ด ์ค์ํ๋ค๋ฉด ๋ชจ๋ ๊ฐ์ 0์ผ๋ก ๋๊ณ (width=1 ์ ์ธ) ์ผ๋์ธ์.",
+ "mt_drc": "๋ค์ด๋ด๋ฏน ๋ ์ธ์ง ์ปดํ๋ ์(๋ณผ๋ฅจ ํํํ/๋ฒฝ๋ํ)๋ฅผ ํ์ฑํํฉ๋๋ค. ์คํ๊ฒํฐ์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํด EQ๋ ํ์ฑํ๋๋ฏ๋ก, ์ํ์ง ์์ผ๋ฉด 'width'๋ฅผ ์ ์ธํ ๋ชจ๋ EQ ํ๋๋ฅผ 0์ผ๋ก ์ค์ ํ์ธ์.$N$NTHRESHOLD dB ์ด์์ ์ค๋์ค ๋ณผ๋ฅจ์ ๋ฎ์ถฅ๋๋ค. THRESHOLD๋ฅผ ์ด๊ณผํ๋ ๋ชจ๋ RATIO dB์ ๋ํด 1dB์ ์ถ๋ ฅ์ด ์์ผ๋ฏ๋ก, ๊ธฐ๋ณธ๊ฐ์ธ tresh -24 ๋ฐ ratio 12๋ ๋ณผ๋ฅจ์ด -22dB๋ณด๋ค ์ปค์ง์ง ์์์ ์๋ฏธํ๋ฉฐ, ์ดํ๋ผ์ด์ ๋ถ์คํธ๋ฅผ 0.8 ๋๋ ATK 0๊ณผ ํฐ RLS (์: 90)๋ฅผ ์ฌ์ฉํ์ฌ 1.8๊น์ง ์์ ํ๊ฒ ๋์ผ ์ ์์ต๋๋ค (firefox์์๋ง ์๋, ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์๋ RLS ์ต๋ 1).$N$N(์ํค๋ฐฑ๊ณผ๋ฅผ ์ฐธ์กฐํ์ธ์, ํจ์ฌ ๋ ์ ์ค๋ช
๋์ด ์์ต๋๋ค)",
+
+ "mb_play": "์ฌ์",
+ "mm_hashplay": "์ด ์ค๋์ค ํ์ผ์ ์ฌ์ํ ๊น์?",
+ "mm_m3u": "Enter/ํ์ธ
์ ๋๋ฌ ์ฌ์\nESC/์ทจ์
๋ฅผ ๋๋ฌ ํธ์ง",
+ "mp_breq": "Firefox 82+, Chrome 73+ ๋๋ iOS 15+ ํ์",
+ "mm_bload": "๋ถ๋ฌ์ค๋ ์ค...",
+ "mm_bconv": "{0}(์ผ)๋ก ๋ณํ ์ค, ์ ์๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์...",
+ "mm_opusen": "๋ธ๋ผ์ฐ์ ๊ฐ aac/m4a ํ์ผ์ ์ฌ์ํ ์ ์์ต๋๋ค.\nopus๋ก์ ํธ๋์ค์ฝ๋ฉ์ด ํ์ฑํ๋์์ต๋๋ค.",
+ "mm_playerr": "์ฌ์ ์คํจ: ",
+ "mm_eabrt": "์ฌ์ ์๋๊ฐ ์ทจ์๋์์ต๋๋ค",
+ "mm_enet": "์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋ถ์์ ํฉ๋๋ค",
+ "mm_edec": "์ด ํ์ผ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค??",
+ "mm_esupp": "๋ธ๋ผ์ฐ์ ๊ฐ ์ด ์ค๋์ค ํ์์ ์ดํดํ์ง ๋ชปํฉ๋๋ค",
+ "mm_eunk": "์ ์ ์๋ ์ค๋ฅ",
+ "mm_e404": "์ค๋์ค๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค; ์ค๋ฅ 404: ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.",
+ "mm_e403": "์ค๋์ค๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค; ์ค๋ฅ 403: ์ ๊ทผ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค.\n\nF5๋ฅผ ๋๋ฌ ์๋ก๊ณ ์นจ ํด๋ณด์ธ์, ๋ก๊ทธ์์๋์์ ์ ์์ต๋๋ค",
+ "mm_e500": "์ค๋์ค๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค; ์ค๋ฅ 500: ์๋ฒ ๋ก๊ทธ๋ฅผ ํ์ธํ์ธ์.",
+ "mm_e5xx": "์ค๋์ค๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค; ์๋ฒ ์ค๋ฅ ",
+ "mm_nof": "์ฃผ๋ณ์์ ๋ ์ด์ ์ค๋์ค ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค",
+ "mm_prescan": "๋ค์์ ์ฌ์ํ ์์
์ ์ฐพ๋ ์ค...",
+ "mm_scank": "๋ค์ ๊ณก์ ์ฐพ์์ต๋๋ค:",
+ "mm_uncache": "์บ์๊ฐ ์ง์์ก์ต๋๋ค. ๋ชจ๋ ๊ณก์ ๋ค์ ์ฌ์ ์ ๋ค์ ๋ค์ด๋ก๋๋ฉ๋๋ค.",
+ "mm_hnf": "๊ทธ ๊ณก์ด ๋ ์ด์ ์กด์ฌํ์ง ์์ต๋๋ค",
+
+ "im_hnf": "๊ทธ ์ด๋ฏธ์ง๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์์ต๋๋ค",
+
+ "f_empty": '์ด ํด๋๋ ๋น์ด ์์ต๋๋ค',
+ "f_chide": 'ยซ{0}ยป ์ด์ ์จ๊น๋๋ค.\n\n์ค์ ํญ์์ ์ด์ ๋ค์ ํ์ํ ์ ์์ต๋๋ค.',
+ "f_bigtxt": "์ด ํ์ผ์ {0} MiB์
๋๋ค -- ์ ๋ง ํ
์คํธ๋ก ๋ณด์๊ฒ ์ต๋๊น?",
+ "f_bigtxt2": "๋์ ํ์ผ์ ๋๋ถ๋ถ๋ง ๋ณด์๊ฒ ์ต๋๊น? ์ด๋ ๊ฒ ํ๋ฉด ์ค์๊ฐ์ผ๋ก ์๋ก ์ถ๊ฐ๋๋ ํ
์คํธ ์ค์ ๋ณด์ฌ์ฃผ๋ ํ๋ก์/ํ
์ผ๋ง ๊ธฐ๋ฅ๋ ํ์ฑํ๋ฉ๋๋ค.",
+ "fbd_more": '',
+ "fbd_all": '',
+ "f_anota": "{1}๊ฐ ํญ๋ชฉ ์ค {0}๊ฐ๋ง ์ ํ๋์์ต๋๋ค.\n์ ์ฒด ํด๋๋ฅผ ์ ํํ๋ ค๋ฉด ๋จผ์ ๋งจ ์๋๋ก ์คํฌ๋กคํ์ธ์.",
+
+ "f_dls": 'ํ์ฌ ํด๋์ ํ์ผ ๋งํฌ๊ฐ\n๋ค์ด๋ก๋ ๋งํฌ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค',
+
+ "f_partial": "ํ์ฌ ์
๋ก๋ ์ค์ธ ํ์ผ์ ์์ ํ๊ฒ ๋ค์ด๋ก๋ํ๋ ค๋ฉด, ํ์ผ ์ด๋ฆ์ด ๊ฐ์ง๋ง .PARTIAL
ํ์ฅ์๊ฐ ์๋ ํ์ผ์ ํด๋ฆญํ์ธ์. ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํ๋ ค๋ฉด \"์ทจ์\" ๋๋ ESC๋ฅผ ๋๋ฅด์ธ์.\n\n\"ํ์ธ\"/Enter๋ฅผ ๋๋ฅด๋ฉด ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํ๊ณ .PARTIAL
์์ ํ์ผ์ ๊ณ์ ๋ค์ด๋ก๋ํ๋ฉฐ, ์ด ๊ฒฝ์ฐ ๊ฑฐ์ ํ์คํ ์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.",
+
+ "ft_paste": "{0}๊ฐ ํญ๋ชฉ ๋ถ์ฌ๋ฃ๊ธฐ$N๋จ์ถํค: ctrl-V",
+ "fr_eperm": "์ด๋ฆ์ ๋ฐ๊ฟ ์ ์์ต๋๋ค:\n์ด ํด๋์ \"์ด๋\" ๊ถํ์ด ์์ต๋๋ค",
+ "fd_eperm": "์ญ์ ํ ์ ์์ต๋๋ค:\n์ด ํด๋์ \"์ญ์ \" ๊ถํ์ด ์์ต๋๋ค",
+ "fc_eperm": "์๋ผ๋ผ ์ ์์ต๋๋ค:\n์ด ํด๋์ \"์ด๋\" ๊ถํ์ด ์์ต๋๋ค",
+ "fp_eperm": "๋ถ์ฌ๋ฃ์ ์ ์์ต๋๋ค\n์ด ํด๋์ \"์ฐ๊ธฐ\" ๊ถํ์ด ์์ต๋๋ค",
+ "fr_emore": "์ด๋ฆ์ ๋ฐ๊ฟ ํญ๋ชฉ์ ํ๋ ์ด์ ์ ํํ์ธ์",
+ "fd_emore": "์ญ์ ํ ํญ๋ชฉ์ ํ๋ ์ด์ ์ ํํ์ธ์",
+ "fc_emore": "์๋ผ๋ผ ํญ๋ชฉ์ ํ๋ ์ด์ ์ ํํ์ธ์",
+ "fcp_emore": "ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ ํญ๋ชฉ์ ํ๋ ์ด์ ์ ํํ์ธ์",
+
+ "fs_sc": "ํ์ฌ ํด๋ ๊ณต์ ",
+ "fs_ss": "์ ํํ ํ์ผ ๊ณต์ ",
+ "fs_just1d": "ํ๋ ์ด์์ ํด๋๋ฅผ ์ ํํ๊ฑฐ๋,\nํ์ผ๊ณผ ํด๋๋ฅผ ํ ๋ฒ์ ์์ด ์ ํํ ์ ์์ต๋๋ค",
+ "fs_abrt": "โ ์ค๋จ",
+ "fs_rand": "๐ฒ ๋ฌด์์ ์ด๋ฆ",
+ "fs_go": "โ
๊ณต์ ์์ฑ",
+ "fs_name": "์ด๋ฆ",
+ "fs_src": "์์ค",
+ "fs_pwd": "๋น๋ฐ๋ฒํธ",
+ "fs_exp": "๋ง๋ฃ",
+ "fs_tmin": "๋ถ",
+ "fs_thrs": "์๊ฐ",
+ "fs_tdays": "์ผ",
+ "fs_never": "์์",
+ "fs_pname": "์ ํ์ ๋งํฌ ์ด๋ฆ; ๋น์๋๋ฉด ๋ฌด์์๋ก ์์ฑ",
+ "fs_tsrc": "๊ณต์ ํ ํ์ผ ๋๋ ํด๋",
+ "fs_ppwd": "๋น๋ฐ๋ฒํธ (์ ํ์ฌํญ)",
+ "fs_w8": "๊ณต์ ์์ฑ ์ค...",
+ "fs_ok": "Enter/OK
๋ฅผ ๋๋ฌ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ\nESC/Cancel
๋ฅผ ๋๋ฌ ๋ซ๊ธฐ",
+
+ "frt_dec": "๊นจ์ง ํ์ผ ์ด๋ฆ์ ์ผ๋ถ ๊ฒฝ์ฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค\">url-๋์ฝ๋",
+ "frt_rst": "์์ ๋ ํ์ผ ์ด๋ฆ์ ์๋๋๋ก ๋๋๋ฆฝ๋๋ค\">โบ ์ด๊ธฐํ",
+ "frt_abrt": "์ด ์ฐฝ์ ์ค๋จํ๊ณ ๋ซ์ต๋๋ค\">โ ์ทจ์",
+ "frb_apply": "์ด๋ฆ ๋ฐ๊พธ๊ธฐ ์ ์ฉ",
+ "fr_adv": "๋ฐฐ์น/๋ฉํ๋ฐ์ดํฐ/ํจํด ์ด๋ฆ ๋ฐ๊พธ๊ธฐ\">๊ณ ๊ธ",
+ "fr_case": "๋์๋ฌธ์ ๊ตฌ๋ถ ์ ๊ท์\">๋์๋ฌธ์",
+ "fr_win": "Windows ์์ ์ด๋ฆ; <>:"\\|?*
๋ฅผ ์ผ๋ณธ์ด ์ ๊ฐ ๋ฌธ์๋ก ๋ฐ๊ฟ๋๋ค\">win",
+ "fr_slash": "/
๋ฅผ ์ ํด๋๋ฅผ ๋ง๋ค์ง ์๋ ๋ฌธ์๋ก ๋ฐ๊ฟ๋๋ค\">/ ์์",
+ "fr_re": "์๋ณธ ํ์ผ ์ด๋ฆ์ ์ ์ฉํ ์ ๊ท์ ๊ฒ์ ํจํด; ์บก์ฒ๋ง ๊ทธ๋ฃน์ ์๋ ํ์ ํ๋์์ <code>(1)</code>, <code>(2)</code> ๋ฑ์ผ๋ก ์ฐธ์กฐํ ์ ์์ต๋๋ค",
+ "fr_fmt": "foobar2000์์ ์๊ฐ์ ๋ฐ์:$N<code>(title)</code>์(๋) ๊ณก ์ ๋ชฉ์ผ๋ก ๋์ฒด๋จ,$N<code>[(artist) - ](title)</code>์(๋) ์ํฐ์คํธ๊ฐ ๋น์ด ์์ผ๋ฉด [์ด] ๋ถ๋ถ์ ๊ฑด๋๋$N<code>$lpad((tn),2,0)</code>์(๋) ํธ๋ ๋ฒํธ๋ฅผ 2์๋ฆฌ๋ก ์ฑ์",
+ "fr_pdel": "์ญ์ ",
+ "fr_pnew": "๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅ",
+ "fr_pname": "์ ํ๋ฆฌ์
์ ์ด๋ฆ์ ์
๋ ฅํ์ธ์",
+ "fr_aborted": "์ค๋จ๋จ",
+ "fr_lold": "์ด์ ์ด๋ฆ",
+ "fr_lnew": "์ ์ด๋ฆ",
+ "fr_tags": "์ ํํ ํ์ผ์ ํ๊ทธ (์ฝ๊ธฐ ์ ์ฉ, ์ฐธ์กฐ์ฉ):",
+ "fr_busy": "{0}๊ฐ ํญ๋ชฉ ์ด๋ฆ ๋ฐ๊พธ๋ ์ค...\n\n{1}",
+ "fr_efail": "์ด๋ฆ ๋ฐ๊พธ๊ธฐ ์คํจ:\n",
+ "fr_nchg": "win
๋ฐ/๋๋ / ์์
์ผ๋ก ์ธํด ์ ์ด๋ฆ ์ค {0}๊ฐ๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค.\n\n์ด ๋ณ๊ฒฝ๋ ์ ์ด๋ฆ์ผ๋ก ๊ณ์ํ์๊ฒ ์ต๋๊น?",
+
+ "fd_ok": "์ญ์ ํ์ธ",
+ "fd_err": "์ญ์ ์คํจ:\n",
+ "fd_none": "์๋ฌด๊ฒ๋ ์ญ์ ๋์ง ์์์ต๋๋ค. ์๋ฒ ๊ตฌ์ฑ (xbd)์ ์ํด ์ฐจ๋จ๋์์ ์ ์์ต๋๋ค.",
+ "fd_busy": "์ญ์ ์ค {0}๊ฐ ํญ๋ชฉ...\n\n{1}",
+ "fd_warn1": "์ด {0}๊ฐ ํญ๋ชฉ์ ์ญ์ ํ์๊ฒ ์ต๋๊น?",
+ "fd_warn2": "๋ง์ง๋ง ๊ธฐํ์
๋๋ค! ๋๋๋ฆด ์ ์์ต๋๋ค. ์ญ์ ํ์๊ฒ ์ต๋๊น?",
+
+ "fc_ok": "{0}๊ฐ ํญ๋ชฉ ์๋ผ๋ด๊ธฐ ์๋ฃ",
+ "fc_warn": "{0}๊ฐ ํญ๋ชฉ ์๋ผ๋ด๊ธฐ ์๋ฃ\n\nํ์ง๋ง: ์ ํ ํญ๋ชฉ์ด ๋๋ฌด ์ปค์ ์ด ๋ธ๋ผ์ฐ์ ํญ์์๋ง ๋ถ์ฌ๋ฃ์ ์ ์์ต๋๋ค",
+
+ "fcc_ok": "{0}๊ฐ ํญ๋ชฉ์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ์ต๋๋ค",
+ "fcc_warn": "{0}๊ฐ ํญ๋ชฉ์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ์ต๋๋ค\n\nํ์ง๋ง: ์ ํ ํญ๋ชฉ์ด ๋๋ฌด ์ปค์ ์ด ๋ธ๋ผ์ฐ์ ํญ์์๋ง ๋ถ์ฌ๋ฃ์ ์ ์์ต๋๋ค",
+
+ "fp_apply": "์ด ์ด๋ฆ ์ฌ์ฉ",
+ "fp_ecut": "๋ถ์ฌ๋ฃ๊ฑฐ๋ ์ด๋ํ๋ ค๋ฉด ๋จผ์ ํ์ผ/ํด๋๋ฅผ ์๋ผ๋ด๊ฑฐ๋ ๋ณต์ฌํ์ธ์\n\n์ฐธ๊ณ : ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ํญ ๊ฐ์ ์๋ผ๋ด๊ธฐ/๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ ์ ์์ต๋๋ค",
+ "fp_ename": "์ด๋ฆ์ด ์ด๋ฏธ ์ฌ์ฉ ์ค์ด๋ฏ๋ก {0}๊ฐ ํญ๋ชฉ์ ์ฌ๊ธฐ๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๊ณ์ํ๋ ค๋ฉด ์๋์ ์ ์ด๋ฆ์ ์ง์ ํ๊ฑฐ๋, ์ด๋ฆ์ ๋น์๋๋ฉด ๊ฑด๋๋๋๋ค:",
+ "fcp_ename": "์ด๋ฆ์ด ์ด๋ฏธ ์ฌ์ฉ ์ค์ด๋ฏ๋ก {0}๊ฐ ํญ๋ชฉ์ ์ฌ๊ธฐ๋ก ๋ณต์ฌํ ์ ์์ต๋๋ค. ๊ณ์ํ๋ ค๋ฉด ์๋์ ์ ์ด๋ฆ์ ์ง์ ํ๊ฑฐ๋, ์ด๋ฆ์ ๋น์๋๋ฉด ๊ฑด๋๋๋๋ค:",
+ "fp_emore": "์์ง ํด๊ฒฐํด์ผ ํ ํ์ผ ์ด๋ฆ ์ถฉ๋์ด ๋จ์ ์์ต๋๋ค",
+ "fp_ok": "์ด๋ ์๋ฃ",
+ "fcp_ok": "๋ณต์ฌ ์๋ฃ",
+ "fp_busy": "{0}๊ฐ ํญ๋ชฉ ์ด๋ ์ค...\n\n{1}",
+ "fcp_busy": "{0}๊ฐ ํญ๋ชฉ ๋ณต์ฌ ์ค...\n\n{1}",
+ "fp_abrt": "์ทจ์ ์ค...",
+ "fp_err": "์ด๋ ์คํจ:\n",
+ "fcp_err": "๋ณต์ฌ ์คํจ:\n",
+ "fp_confirm": "์ด {0}๊ฐ ํญ๋ชฉ์ ์ฌ๊ธฐ๋ก ์ด๋ํ์๊ฒ ์ต๋๊น?",
+ "fcp_confirm": "์ด {0}๊ฐ ํญ๋ชฉ์ ์ฌ๊ธฐ๋ก ๋ณต์ฌํ์๊ฒ ์ต๋๊น?",
+ "fp_etab": '๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ํญ์์ ํด๋ฆฝ๋ณด๋๋ฅผ ์ฝ์ง ๋ชปํ์ต๋๋ค',
+ "fp_name": "๊ธฐ๊ธฐ์์ ํ์ผ์ ์
๋ก๋ํฉ๋๋ค. ์ด๋ฆ์ ์ง์ ํ์ธ์:",
+ "fp_both_m": 'Enter
= ยซ{1}ยป์์ ํ์ผ {0}๊ฐ ์ด๋\nESC
= ๊ธฐ๊ธฐ์์ ํ์ผ {2}๊ฐ ์
๋ก๋',
+ "fcp_both_m": 'Enter
= ยซ{1}ยป์์ ํ์ผ {0}๊ฐ ๋ณต์ฌ\nESC
= ๊ธฐ๊ธฐ์์ ํ์ผ {2}๊ฐ ์
๋ก๋',
+ "fp_both_b": '์ด๋์
๋ก๋',
+ "fcp_both_b": '๋ณต์ฌ์
๋ก๋',
+
+ "mk_noname": "์ผ์ชฝ ํ
์คํธ ํ๋์ ์ด๋ฆ์ ๋จผ์ ์
๋ ฅํด์ฃผ์ธ์ :p",
+
+ "tv_load": "ํ
์คํธ ๋ฌธ์ ๋ถ๋ฌ์ค๋ ์ค:\n\n{0}\n\n{1}% ({3} MiB ์ค {2} MiB ๋ก๋๋จ)",
+ "tv_xe1": "ํ
์คํธ ํ์ผ์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค:\n\n์ค๋ฅ ",
+ "tv_xe2": "404, ํ์ผ์ ์ฐพ์ ์ ์์",
+ "tv_lst": "ํ
์คํธ ํ์ผ ๋ชฉ๋ก",
+ "tvt_close": "ํด๋ ๋ณด๊ธฐ๋ก ๋์๊ฐ๊ธฐ$N๋จ์ถํค: M (๋๋ Esc)\">โ ๋ซ๊ธฐ",
+ "tvt_dl": "์ด ํ์ผ ๋ค์ด๋ก๋$N๋จ์ถํค: Y\">๐พ ๋ค์ด๋ก๋",
+ "tvt_prev": "์ด์ ๋ฌธ์ ๋ณด๊ธฐ$N๋จ์ถํค: i\">โฌ ์ด์ ",
+ "tvt_next": "๋ค์ ๋ฌธ์ ๋ณด๊ธฐ$N๋จ์ถํค: K\">โฌ ๋ค์",
+ "tvt_sel": "ํ์ผ ์ ํ (์๋ผ๋ด๊ธฐ/๋ณต์ฌ/์ญ์ /...์ฉ)$N๋จ์ถํค: S\">์ ํ",
+ "tvt_edit": "ํ
์คํธ ํธ์ง๊ธฐ์์ ํ์ผ ์ด๊ธฐ$N๋จ์ถํค: E\">โ๏ธ ํธ์ง",
+ "tvt_tail": "ํ์ผ ๋ณ๊ฒฝ ์ฌํญ ๋ชจ๋ํฐ๋ง; ์ค์๊ฐ์ผ๋ก ์ ์ค ํ์\">๐ก ํ๋ก์ฐ",
+ "tvt_wrap": "์๋ ์ค ๋ฐ๊ฟ\">โต",
+ "tvt_atail": "ํ์ด์ง ํ๋จ์ผ๋ก ์คํฌ๋กค ๊ณ ์ \">โ",
+ "tvt_ctail": "ํฐ๋ฏธ๋ ์์ ๋์ฝ๋ฉ (ANSI ์ด์ค์ผ์ดํ ์ฝ๋)\">๐",
+ "tvt_ntail": "์คํฌ๋กค๋ฐฑ ์ ํ (๋ถ๋ฌ์จ ์ํ๋ก ์ ์งํ ํ
์คํธ ๋ฐ์ดํธ ์)",
+
+ "m3u_add1": "m3u ์ฌ์ ๋ชฉ๋ก์ ๊ณก์ด ์ถ๊ฐ๋์์ต๋๋ค",
+ "m3u_addn": "{0}๊ฐ์ ๊ณก์ด m3u ์ฌ์ ๋ชฉ๋ก์ ์ถ๊ฐ๋์์ต๋๋ค",
+ "m3u_clip": "m3u ์ฌ์ ๋ชฉ๋ก์ด ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ๋์์ต๋๋ค\n\n something.m3u์ ๊ฐ์ ์ด๋ฆ์ ์ ํ
์คํธ ํ์ผ์ ๋ง๋ค๊ณ ๊ทธ ๋ฌธ์์ ์ฌ์ ๋ชฉ๋ก์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์ฌ์ํ ์ ์์ต๋๋ค.",
+
+ "gt_vau": "๋น๋์ค๋ฅผ ํ์ํ์ง ์๊ณ ์ค๋์ค๋ง ์ฌ์\">๐ง",
+ "gt_msel": "ํ์ผ ์ ํ ํ์ฑํ; ctrl-ํด๋ฆญํ์ฌ ํ์ผ ์ฌ์ ์$N$N<em>ํ์ฑ ์: ํ์ผ/ํด๋๋ฅผ ๋ ๋ฒ ํด๋ฆญํ์ฌ ์ด๊ธฐ</em>$N$N๋จ์ถํค: S\">๋ค์ค์ ํ",
+ "gt_crop": "์ธ๋ค์ผ ์ค์ ์๋ฅด๊ธฐ\">์๋ฅด๊ธฐ",
+ "gt_3x": "๊ณ ํด์๋ ์ธ๋ค์ผ\">3x",
+ "gt_zoom": "ํ๋/์ถ์",
+ "gt_chop": "์๋ฅด๊ธฐ",
+ "gt_sort": "์ ๋ ฌ ๊ธฐ์ค",
+ "gt_name": "์ด๋ฆ",
+ "gt_sz": "ํฌ๊ธฐ",
+ "gt_ts": "๋ ์ง",
+ "gt_ext": "์ ํ",
+ "gt_c1": "ํ์ผ๋ช
๋ ๋ง์ด ์๋ตํ๊ธฐ (๋ ์ ๊ฒ ํ์)",
+ "gt_c2": "ํ์ผ๋ช
๋ ์๋ตํ๊ธฐ (๋ ๋ง์ด ํ์)",
+
+ "sm_w8": "๊ฒ์ ์ค...",
+ "sm_prev": "์๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ ์ด์ ๊ฒ์์ด์ ๋ํ ๊ฒฐ๊ณผ์
๋๋ค:\nย ",
+ "sl_close": "๊ฒ์ ๊ฒฐ๊ณผ ๋ซ๊ธฐ",
+ "sl_hits": "{0}๊ฐ ๊ฒฐ๊ณผ ํ์ ์ค",
+ "sl_moar": "๋ ๋ถ๋ฌ์ค๊ธฐ",
+
+ "s_sz": "ํฌ๊ธฐ",
+ "s_dt": "๋ ์ง",
+ "s_rd": "๊ฒฝ๋ก",
+ "s_fn": "์ด๋ฆ",
+ "s_ta": "ํ๊ทธ",
+ "s_ua": "์
๋ก๋ ์์ ",
+ "s_ad": "๊ณ ๊ธ",
+ "s_s1": "์ต์ MiB",
+ "s_s2": "์ต๋ MiB",
+ "s_d1": "์ต์ ISO-8601",
+ "s_d2": "์ต๋ ISO-8601",
+ "s_u1": "์ดํ",
+ "s_u2": "์ด์ ",
+ "s_r1": "๊ฒฝ๋ก์ ํฌํจ (๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ)",
+ "s_f1": "์ด๋ฆ์ ํฌํจ (-๋ก ์ ์ธ)",
+ "s_t1": "ํ๊ทธ์ ํฌํจ (^=์์, ๋=$)",
+ "s_a1": "ํน์ ๋ฉํ๋ฐ์ดํฐ ์์ฑ",
+
+ "md_eshow": "๋ ๋๋งํ ์ ์์ ",
+ "md_off": "[๐readme]๊ฐ [โ๏ธ]์์ ๋นํ์ฑํ๋จ -- ๋ฌธ์ ์จ๊น",
+
+ "badreply": "์๋ฒ๋ก๋ถํฐ์ ์๋ต์ ๊ตฌ๋ฌธ ๋ถ์ํ์ง ๋ชปํ์ต๋๋ค",
+
+ "xhr403": "403: ์ ๊ทผ ๊ฑฐ๋ถ๋จ\n\nF5๋ฅผ ๋๋ฌ๋ณด์ธ์, ๋ก๊ทธ์์๋์์ ์ ์์ต๋๋ค",
+ "xhr0": "์ ์ ์์ (์๋ฒ์์ ์ฐ๊ฒฐ์ด ๋๊ฒผ๊ฑฐ๋ ์๋ฒ๊ฐ ์คํ๋ผ์ธ์ผ ์ ์์ต๋๋ค)",
+ "cf_ok": "์ฃ์กํฉ๋๋ค -- DD" + wah + "oS ๋ณดํธ ๊ธฐ๋ฅ์ด ์๋ํ์ต๋๋ค\n\n์ฝ 30์ด ํ์ ๋ค์ ์ ์์ ์ผ๋ก ์๋ํ ๊ฒ์
๋๋ค\n\n์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ผ๋ฉด F5๋ฅผ ๋๋ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ธ์",
+ "tl_xe1": "ํ์ ํด๋๋ฅผ ๋์ดํ ์ ์์ต๋๋ค:\n\n์ค๋ฅ ",
+ "tl_xe2": "404: ํด๋๋ฅผ ์ฐพ์ ์ ์์",
+ "fl_xe1": "ํด๋์ ํ์ผ์ ๋์ดํ ์ ์์ต๋๋ค:\n\n์ค๋ฅ ",
+ "fl_xe2": "404: ํด๋๋ฅผ ์ฐพ์ ์ ์์",
+ "fd_xe1": "ํ์ ํด๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค:\n\n์ค๋ฅ ",
+ "fd_xe2": "404: ์์ ํด๋๋ฅผ ์ฐพ์ ์ ์์",
+ "fsm_xe1": "๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค:\n\n์ค๋ฅ ",
+ "fsm_xe2": "404: ์์ ํด๋๋ฅผ ์ฐพ์ ์ ์์",
+ "fu_xe1": "์๋ฒ์์ ์ฃผ์๋ด๊ธฐ ๋ชฉ๋ก์ ๋ถ๋ฌ์ค์ง ๋ชปํ์ต๋๋ค:\n\n์ค๋ฅ ",
+ "fu_xe2": "404: ํ์ผ์ ์ฐพ์ ์ ์์??",
+
+ "fz_tar": "์์ถ๋์ง ์์ gnu-tar ํ์ผ (linux / mac)",
+ "fz_pax": "์์ถ๋์ง ์์ pax ํ์ tar (๋๋ฆผ)",
+ "fz_targz": "gzip ๋ ๋ฒจ 3 ์์ถ์ด ์ ์ฉ๋ gnu-tar$N$N์ด๊ฒ์ ๋ณดํต ๋งค์ฐ ๋๋ฆฌ๋ฏ๋ก$N์์ถ๋์ง ์์ tar๋ฅผ ๋์ ์ฌ์ฉํ์ธ์",
+ "fz_tarxz": "xz ๋ ๋ฒจ 1 ์์ถ์ด ์ ์ฉ๋ gnu-tar$N$N์ด๊ฒ์ ๋ณดํต ๋งค์ฐ ๋๋ฆฌ๋ฏ๋ก$N์์ถ๋์ง ์์ tar๋ฅผ ๋์ ์ฌ์ฉํ์ธ์",
+ "fz_zip8": "utf8 ํ์ผ ์ด๋ฆ์ด ํฌํจ๋ zip (windows 7 ๋ฐ ์ด์ ๋ฒ์ ์์ ๋ฌธ์ ๊ฐ ์์ ์ ์์)",
+ "fz_zipd": "์ ๋ง ์ค๋๋ ์ํํธ์จ์ด๋ฅผ ์ํ ์ ํต์ ์ธ cp437 ํ์ผ ์ด๋ฆ์ด ํฌํจ๋ zip",
+ "fz_zipc": "MS-DOS PKZIP v2.04g (1993๋
10์)์ฉ์ผ๋ก$Ncrc32๊ฐ ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ cp437$N(๋ค์ด๋ก๋ ์์ ์ ์ฒ๋ฆฌ ์๊ฐ์ด ๋ ๊ฑธ๋ฆผ)",
+
+ "un_m1": "์๋์์ ์ต๊ทผ ์
๋ก๋๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ฏธ์๋ฃ๋ ์
๋ก๋๋ฅผ ์ค๋จํ ์ ์์ต๋๋ค",
+ "un_upd": "์๋ก๊ณ ์นจ",
+ "un_m4": "๋๋ ์๋์ ๋ณด์ด๋ ํ์ผ์ ๊ณต์ ํ ์ ์์ต๋๋ค:",
+ "un_ulist": "๋ณด๊ธฐ",
+ "un_ucopy": "๋ณต์ฌ",
+ "un_flt": "์ ํ์ ํํฐ: URL์ ํฌํจ๋์ด์ผ ํจ",
+ "un_fclr": "ํํฐ ์ง์ฐ๊ธฐ",
+ "un_derr": '์ฃผ์๋ด๊ธฐ-์ญ์ ์คํจ:\n',
+ "un_f5": '๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค, ์๋ก๊ณ ์นจํ๊ฑฐ๋ F5๋ฅผ ๋๋ฌ๋ณด์ธ์',
+ "un_uf5": "์ฃ์กํ์ง๋ง, ์ด ์
๋ก๋๋ฅผ ์ค๋จํ๊ธฐ ์ ์ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํด์ผ ํฉ๋๋ค (์: F5 ๋๋ CTRL-R ๋๋ฅด๊ธฐ).",
+ "un_nou": '๊ฒฝ๊ณ : ์๋ฒ๊ฐ ๋๋ฌด ๋ฐ๋น ์ ๋ฏธ์๋ฃ ์
๋ก๋๋ฅผ ํ์ํ ์ ์์ต๋๋ค; ์ ์ ํ "์๋ก๊ณ ์นจ" ๋งํฌ๋ฅผ ํด๋ฆญํ์ธ์',
+ "un_noc": '๊ฒฝ๊ณ : ์์ ํ ์
๋ก๋๋ ํ์ผ์ ์ฃผ์๋ด๊ธฐ๊ฐ ์๋ฒ ๊ตฌ์ฑ์์ ํ์ฑํ/ํ์ฉ๋์ง ์์์ต๋๋ค',
+ "un_max": "์ฒ์ 2000๊ฐ ํ์ผ์ ํ์ํฉ๋๋ค (ํํฐ๋ฅผ ์ฌ์ฉํ์ธ์)",
+ "un_avail": "{0}๊ฐ์ ์ต๊ทผ ์
๋ก๋๋ฅผ ์ญ์ ํ ์ ์์ต๋๋คํ์ผ: {0} ์๋ฃ, {1} ์คํจ, {2} ์ฒ๋ฆฌ ์ค, {3} ๋๊ธฐ ์ค
", + "u_ever": "์ด๊ฒ์ ๊ธฐ๋ณธ ์ ๋ก๋์ ๋๋ค. up2k๋ ์ต์ํ ๋ค์ ๋ฒ์ ์ด ํ์ํฉ๋๋ค:ํ์ธ/Enter
๋ฅผ ๋๋ฅด์ธ์,\nํด๋น ํ์ผ๋ ์
๋ก๋ํ๋ ค๋ฉด ์ทจ์/ESC
๋ฅผ ๋๋ฅด์ธ์:\n\n',
+ "u_just1": '\nํ์ผ์ ํ๋๋ง ์ ํํ๋ฉด ๋ ์ ์๋ํ ์ ์์ต๋๋ค',
+ "u_ff_many": '๋ฆฌ๋
์ค/macOS/์๋๋ก์ด๋๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด, ์ด ์ ๋์ ํ์ผ ์๋ Firefox๋ฅผ ์ถฉ๋์ํฌ ์ ์์ต๋๋ค!\n๋ง์ฝ ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๋ค์ ์๋ํ๊ฑฐ๋ Chrome์ ์ฌ์ฉํด์ฃผ์ธ์.',
+ "u_up_life": '์ด ์
๋ก๋๋ ์๋ฃ ํ {0} ๋ค์\n์๋ฒ์์ ์ญ์ ๋ฉ๋๋ค',
+ "u_asku": '์ด {0}๊ฐ์ ํ์ผ์ {1}
(์ผ)๋ก ์
๋ก๋ํ์๊ฒ ์ต๋๊น?',
+ "u_unpt": '์ผ์ชฝ ์๋จ์ ๐งฏ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์
๋ก๋๋ฅผ ์ทจ์/์ญ์ ํ ์ ์์ต๋๋ค',
+ "u_bigtab": '{0}๊ฐ์ ํ์ผ์ ํ์ํ๋ ค๊ณ ํฉ๋๋ค\n\n๋ธ๋ผ์ฐ์ ๊ฐ ์ถฉ๋ํ ์ ์์ต๋๋ค, ๊ณ์ ์งํํฉ๋๊น?',
+ "u_scan": 'ํ์ผ ์ค์บ ์ค...',
+ "u_dirstuck": '๋๋ ํฐ๋ฆฌ ๋ฐ๋ณต์๊ฐ ๋ค์ {0}๊ฐ ํญ๋ชฉ์ ์ ๊ทผํ๋ ๋ฐ ์คํจํ์ฌ ๊ฑด๋๋๋๋ค:',
+ "u_etadone": '์๋ฃ ({0}, {1}๊ฐ ํ์ผ)',
+ "u_etaprep": '(์
๋ก๋ ์ค๋น ์ค)',
+ "u_hashdone": 'ํด์ฑ ์๋ฃ',
+ "u_hashing": 'ํด์',
+ "u_hs": 'ํธ๋์
ฐ์ดํน ์ค...',
+ "u_started": 'ํ์ผ์ด ํ์ฌ ์
๋ก๋ ์ค์
๋๋ค. [๐] ์ฐธ์กฐ',
+ "u_dupdefer": '์ค๋ณต๋จ. ๋ค๋ฅธ ๋ชจ๋ ํ์ผ ์ฒ๋ฆฌ ํ ์ฒ๋ฆฌ๋ฉ๋๋ค',
+ "u_actx": "๋ค๋ฅธ ์ฐฝ/ํญ์ผ๋ก ์ ํ ์ ์ฑ๋ฅ ์ ํ๋ฅผF5
๋ฅผ ๋๋ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ธ์โ๏ธ ์ค์
์์ mt
๋ฒํผ์ ๋นํ์ฑํํ์ธ์F5
๋ฅผ ๋๋ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ธ์๐ฅ
(๋จ์ UI)๋ฅผ ํ์ฑํํ์ธ์about:config
์์ connections-per-server
์ค์ ๊ฐ์ผ๋ก ๋์ผ ์ ์์ต๋๋ค.",
+ "u_tu": '๊ฒฝ๊ณ : ํฐ๋ณด๊ฐ ํ์ฑํ๋์ด ํด๋ผ์ด์ธํธ๊ฐ ๋ถ์์ ํ ์ ๋ก๋๋ฅผ ๊ฐ์งํ๊ณ ์ฌ๊ฐํ์ง ๋ชปํ ์ ์์ต๋๋ค. ํฐ๋ณด ๋ฒํผ์ ํดํ์ ์ฐธ์กฐํ์ธ์
', + "u_ts": '๊ฒฝ๊ณ : ํฐ๋ณด๊ฐ ํ์ฑํ๋์ด ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ถ์ ํํ ์ ์์ต๋๋ค. ํฐ๋ณด ๋ฒํผ์ ํดํ์ ์ฐธ์กฐํ์ธ์
', + "u_turbo_c": "ํฐ๋ณด๊ฐ ์๋ฒ ๊ตฌ์ฑ์์ ๋นํ์ฑํ๋์์ต๋๋ค", + "u_turbo_g": '์ด ๋ณผ๋ฅจ ๋ด์์ ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก ๊ถํ์ด ์์ผ๋ฏ๋ก\nํฐ๋ณด๋ฅผ ๋นํ์ฑํํฉ๋๋ค', + "u_life_cfg": '์๋ ์ญ์ ์๊ฐ ๋ถ (๋๋ ์๊ฐ)', + "u_life_est": '์ ๋ก๋๊ฐ ---์ ์ญ์ ๋ฉ๋๋ค', + "u_life_max": '์ด ํด๋๋ ์ต๋ ์๋ช ์\n{0}(์ผ)๋ก ๊ฐ์ ํฉ๋๋ค', + "u_unp_ok": '์ฃผ์๋ด๊ธฐ๋ {0} ๋์ ํ์ฉ๋ฉ๋๋ค', + "u_unp_ng": '์ฃผ์๋ด๊ธฐ๋ ํ์ฉ๋์ง ์์ต๋๋ค', + "ue_ro": '์ด ํด๋์ ๋ํ ์ ๊ทผ์ ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค\n\n', + "ue_nl": 'ํ์ฌ ๋ก๊ทธ์ธ๋์ด ์์ง ์์ต๋๋ค', + "ue_la": 'ํ์ฌ \'{0}\'(์ผ)๋ก ๋ก๊ทธ์ธ๋์ด ์์ต๋๋ค', + "ue_sr": 'ํ์ฌ ํ์ผ ๊ฒ์ ๋ชจ๋์ ๋๋ค\n\nํฐ "๊ฒ์" ๋ฒํผ ์์ ๋๋ณด๊ธฐ ๐๋ฅผ ํด๋ฆญํ์ฌ ์ ๋ก๋ ๋ชจ๋๋ก ์ ํํ ํ ๋ค์ ์ ๋ก๋ํด๋ณด์ธ์\n\n์ฃ์กํฉ๋๋ค', + "ue_ta": '๋ค์ ์ ๋ก๋ํด๋ณด์ธ์, ์ด์ ์๋ํ ๊ฒ๋๋ค', + "ue_ab": '์ด ํ์ผ์ ์ด๋ฏธ ๋ค๋ฅธ ํด๋๋ก ์ ๋ก๋ ์ค์ด๋ฉฐ, ํ์ผ์ด ๋ค๋ฅธ ๊ณณ์ ์ ๋ก๋๋๊ธฐ ์ ์ ํด๋น ์ ๋ก๋๊ฐ ์๋ฃ๋์ด์ผ ํฉ๋๋ค.\n\n์ผ์ชฝ ์๋จ์ ๐งฏ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ธฐ ์ ๋ก๋๋ฅผ ์ค๋จํ๊ณ ์์ ์ ์์ต๋๋ค.', + "ur_1uo": "OK: ํ์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ๋ก๋๋์์ต๋๋ค", + "ur_auo": "OK: ๋ชจ๋ {0}๊ฐ์ ํ์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ๋ก๋๋์์ต๋๋ค", + "ur_1so": "OK: ์๋ฒ์์ ํ์ผ์ ์ฐพ์์ต๋๋ค", + "ur_aso": "OK: ์๋ฒ์์ ๋ชจ๋ {0}๊ฐ์ ํ์ผ์ ์ฐพ์์ต๋๋ค", + "ur_1un": "์ ๋ก๋์ ์คํจํ์ต๋๋ค, ์ฃ์ก", + "ur_aun": "๋ชจ๋ {0}๊ฐ์ ์ ๋ก๋์ ์คํจํ์ต๋๋ค, ์ฃ์ก", + "ur_1sn": "์๋ฒ์์ ํ์ผ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค", + "ur_asn": "์๋ฒ์์ {0}๊ฐ์ ํ์ผ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค", + "ur_um": "์๋ฃ;\n{0}๊ฐ ์ ๋ก๋ ์ฑ๊ณต,\n{1}๊ฐ ์ ๋ก๋ ์คํจ, ์ฃ์ก", + "ur_sm": "์๋ฃ;\n์๋ฒ์์ {0}๊ฐ ํ์ผ ์ฐพ์,\n์๋ฒ์์ {1}๊ฐ ํ์ผ ์ฐพ์ง ๋ชปํจ", + + "lang_set": '๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ธฐ ์ํด ์๋ก๊ณ ์นจํ์๊ฒ ์ต๋๊น?' + }, "nld": { "tt": "Nederlands", @@ -5151,6 +6429,7 @@ var Ls = { "gou": 'Bovenligende map">Omhoog', "gon": 'Volgende map">Volgende', "logout": "Uitloggen ", + "login": "Inloggen", //m "access": " Toegang", "ot_close": "Sluit onder-menu", "ot_search": "Zoek voor bestanden bij attributes, pad / naam, muziek tags, of elk andere combinatie tussen$N$N<code>foo bar</code> = moet beide ยซfooยป en ยซbarยป bevatten,$N<code>foo -bar</code> = moet ยซfooยป bevatten maar geen ยซbarยป,$N<code>^yana .opus$</code> = start met ยซyanaยป en moet een ยซopusยป bestand zijn$N<code>"try unite"</code> = moet precies ยซtry uniteยป bevatten$N$Nde datum formaat is iso-8601, zoals$N<code>2009-12-31</code> of <code>2020-09-12 23:30:00</code>", @@ -5204,12 +6483,12 @@ var Ls = { "ul_btnu": "U P L O A D", "ul_btns": "Z O E K E N", - "ul_hash": "Gash", - "ul_send": "Verstuur", + "ul_hash": "Hashing", + "ul_send": "Versturen", "ul_done": "Klaar", "ul_idle1": "Geen uploads in wachtrij", "ut_etah": "Gemiddelde <em>hashing</em> snelheid en geschatte tijd tot de voltooiing", - "ut_etau": "Gemiddelde <em>upload</em> snelheid en geschatte tijd tot voltooiing", + "ut_etau": "Gemiddelde <em>verzend</em> snelheid en geschatte tijd tot voltooiing", "ut_etat": "Gemiddelde <em>totale</em> snelheid en geschatte tijd tot voltooiing", "uct_ok": "Succesvol afgerond", @@ -5337,9 +6616,9 @@ var Ls = { "mt_mloop": "De open map herhalen\">๐ loop", "mt_mnext": "Laad de volgende map en ga verder\">๐ next", "mt_mstop": "Stoppen met afspelen\">โธ stop", - "mt_cflac": "flac / wav omzetten naar opus\">flac", - "mt_caac": "aac / m4a omzetten naar opus\">aac", - "mt_coth": "Alle andere bestanden (geen mp3) converteren naar opus\">oth", + "mt_cflac": "flac / wav omzetten naar {0}\">flac", + "mt_caac": "aac / m4a omzetten naar {0}\">aac", + "mt_coth": "Alle andere bestanden (geen mp3) converteren naar {0}\">oth", "mt_c2opus": "Beste keuze voor computers, laptops, android\">opus", "mt_c2owa": "opus-weba, voor iOS 17.5 en nieuwer\">owa", "mt_c2caf": "opus-caf, voor iOS 11 tot en met iOS 17\">caf", @@ -5356,7 +6635,7 @@ var Ls = { "mb_play": "Afspelen", "mm_hashplay": "Deze audio bestand afspelen?", - "mm_m3u": "Druk opEnter/OK
om af te spelen\nDruk op ESC/Cancel
om te bewerken",
+ "mm_m3u": "Druk op Enter/OK
om af te spelen\nDruk op ESC/Annuleren
om te bewerken",
"mp_breq": "Heeft firefox 82+ of chrome 73+ of iOS 15+",
"mm_bload": "Aan het laden...",
"mm_bconv": "Opmzetten naar {0}, even geduld...",
@@ -5419,7 +6698,7 @@ var Ls = {
"fs_tsrc": "Het bestand of de map die u wilt delen",
"fs_ppwd": "Optioneel wachtwoord",
"fs_w8": "Delen...",
- "fs_ok": "Druk op Enter/OK
naar klembord te zetten\Druk op ESC/Cancel
om te sluiten",
+ "fs_ok": "Druk op Enter/OK
naar klembord te zetten\Druk op ESC/Annuleren
om te sluiten",
"frt_dec": "Kan sommige gevallen van gebroken bestandsnamen oplossen\">url-decode",
"frt_rst": "Gewijzigde bestandsnamen terugzetten naar de oorspronkelijke namen\">โบ reset",
@@ -5464,6 +6743,7 @@ var Ls = {
"fcp_ok": "Kopiรซren OK",
"fp_busy": "{0} items verplaatsen...\n\n{1}",
"fcp_busy": "{0} items kopiรซren...\n\n{1}",
+ "fp_abrt": "afbreken...", //m
"fp_err": "Verplaatsen mislukt:\n",
"fcp_err": "Kopieรซren mislukt:\n",
"fp_confirm": "Verplaats deze {0} items hierheen?",
@@ -5608,7 +6888,7 @@ var Ls = {
"u_enoow": "Overschrijven zal hier niet werken; je heb verwijder toestemming nodig",
"u_badf": 'Deze {0} bestanden (van {1} totaal) zijn overgeslagen, mogelijk door bestandssysteemmachtigingen:\n\n',
"u_blankf": 'Deze {0} bestanden (van {1} totaal) zijn leeg; alsnog uploaden?\n\n',
- "u_applef": 'Deze {0} bestanden (van {1} totaal) zijn waarschijnlijk ongewenst;\nKlik op OK/Enter
om de volgende bestanden over te slaan,\Klik op Cancel/ESC
niet uit te sluiten en deze ook te uploaden:\n\n',
+ "u_applef": 'Deze {0} bestanden (van {1} totaal) zijn waarschijnlijk ongewenst;\nKlik op OK/Enter
om de volgende bestanden over te slaan,\Klik op Annuleren/ESC
niet uit te sluiten en deze ook te uploaden:\n\n',
"u_just1": '\nMisschien werkt het beter als je slechts รฉรฉn bestand selecteert',
"u_ff_many": "Als je Linux / MacOS / Android, gebruikt dan kan deze hoeveelheid bestanden Firefox crashen!\nals dat gebeurt, probeer het dan opnieuw (of gebruik Chrome).",
"u_up_life": "Deze upload wordt verwijderd van de server\n{0} nadat het is voltooid",
@@ -5672,6 +6952,1900 @@ var Ls = {
"lang_set": "Vernieuw de pagina om de wijziging door te voeren?",
},
+ "nno": {
+ "tt": "Nynorsk",
+
+ "cols": {
+ "c": "handlingsknappar",
+ "dur": "varigheit",
+ "q": "kvalitet / bitrate",
+ "Ac": "lydformat",
+ "Vc": "videoformat",
+ "Fmt": "format / innpakning",
+ "Ahash": "lydkontrollsum",
+ "Vhash": "videokontrollsum",
+ "Res": "opplรธysing",
+ "T": "filtype",
+ "aq": "lydkvalitet / bitrate",
+ "vq": "videokvalitet / bitrate",
+ "pixfmt": "fargekoding / detaljnivรฅ",
+ "resw": "horisontal opplรธysing",
+ "resh": "vertikal opplรธysing",
+ "chs": "lydkanaler",
+ "hz": "lydopplรธsing"
+ },
+
+ "hks": [
+ [
+ "ymse",
+ ["ESC", "lukk saker og ting"],
+
+ "filbehandlar",
+ ["G", "listevisning eller ikon"],
+ ["T", "miniatyrbilder pรฅ/av"],
+ ["โง A/D", "ikonstorleik"],
+ ["ctrl-K", "slett valde"],
+ ["ctrl-X", "klipp ut valde"],
+ ["ctrl-C", "kopiรฉr รฅt utklippstavle"],
+ ["ctrl-V", "lim inn (flytt/kopiรฉr)"],
+ ["Y", "last ned valde"],
+ ["F2", "endre namn pรฅ valde"],
+
+ "filmarkering",
+ ["space", "markรฉr fil"],
+ ["โ/โ", "flytt markรธr"],
+ ["ctrl โ/โ", "flytt markรธr og scroll"],
+ ["โง โ/โ", "velg forr./neste fil"],
+ ["ctrl-A", "velg alle filer / mapper"],
+ ], [
+ "navigering",
+ ["B", "mappehierarki eller filsti"],
+ ["I/K", "forr./neste mappe"],
+ ["M", "eitt nivรฅ opp (eller lukk)"],
+ ["V", "vis mapper eller tekstfiler"],
+ ["A/D", "panelstorleik"],
+ ], [
+ "musikkspelar",
+ ["J/L", "forr./neste song"],
+ ["U/O", "hopp 10sek bak/fram"],
+ ["0..9", "hopp รฅt 0%..90%"],
+ ["P", "pause, eller start / fortsett"],
+ ["S", "marker spelande song"],
+ ["Y", "last ned song"],
+ ], [
+ "bildevisar",
+ ["J/L, โ/โ", "forr./neste bilde"],
+ ["Home/End", "fรธrste/siste bilde"],
+ ["F", "fullskjermvisning"],
+ ["R", "rotรฉr รฅt hรธyre"],
+ ["โง R", "rotรฉr รฅt venstre"],
+ ["S", "markรฉr bilde"],
+ ["Y", "last ned bilde"],
+ ], [
+ "videospelar",
+ ["U/O", "hopp 10sek bak/fram"],
+ ["P/K/Space", "pause / fortsett"],
+ ["C", "fortsett รฅt neste fil"],
+ ["V", "gjenta avspeling"],
+ ["M", "lyd av/pรฅ"],
+ ["[ og ]", "gjentaksintervall"],
+ ], [
+ "dokumentvisar",
+ ["I/K", "forr./neste fil"],
+ ["M", "lukk tekstdokument"],
+ ["E", "redigรฉr tekstdokument"],
+ ["S", "markรฉr fil (for F2/ctrl-x/...)"],
+ ["Y", "last ned tekstfil"],
+ ]
+ ],
+
+ "m_ok": "OK",
+ "m_ng": "Avbryt",
+
+ "enable": "Aktiv",
+ "danger": "VARSKU",
+ "clipped": "kopiert รฅt utklippstavla",
+
+ "ht_s1": "sekund",
+ "ht_s2": "sekund",
+ "ht_m1": "minutt",
+ "ht_m2": "minutt",
+ "ht_h1": "time",
+ "ht_h2": "timar",
+ "ht_d1": "dag",
+ "ht_d2": "dagar",
+ "ht_and": " og ",
+
+ "goh": "kontrollpanel",
+ "gop": 'navigรฉr รฅt mappa fรธr den her">forr.',
+ "gou": 'navigรฉr eitt nivรฅ opp">opp',
+ "gon": 'navigรฉr รฅt mappa etter den her">neste',
+ "logout": "Logg ut ",
+ "login": "Logg inn",
+ "access": " รฅtgang",
+ "ot_close": "lukk reiskap",
+ "ot_search": "sรธk etter filer ved รฅ angje filnamn, mappenamn, tid, storleik, eller metadata som songtittel / artist / osv.$N$N<code>foo bar</code> = inneheld bรฅe ยซfooยป og ยซbarยป,$N<code>foo -bar</code> = innehold ยซfooยป men ikkje ยซbarยป,$N<code>^yana .opus$</code> = startar med ยซyanaยป, filtype ยซopusยป$N<code>"try unite"</code> = ยซtry uniteยป eksakt$N$Ndatoformat er iso-8601, sรฅ f.eks.$N<code>2009-12-31</code> eller <code>2020-09-12 23:30:00</code>",
+ "ot_unpost": "unpost: slett filer som du nyleg har lastet opp; ยซangre-knappenยป",
+ "ot_bup": "bup: tradisjonell / primitiv filopplasting,$N$Nfungerar i om lag samtlege nettlesarar",
+ "ot_mkdir": "mkdir: lag ei ny mappe",
+ "ot_md": "new-md: lag eit nytt markdown-dokument",
+ "ot_msg": "msg: send ein beskjed รฅt serverloggen",
+ "ot_mp": "musikkspelarinstillinger",
+ "ot_cfg": "andre innstillinger",
+ "ot_u2i": 'up2k: last opp filer (viss du har skriveรฅtgang) eller bytt รฅt sรธkemodus for รฅ sjekke om filene finnast ein eller annan plass pรฅ serveren$N$Nopplastinger kan startast opp att etter avbrot, skjer stykkevis for potensielt hรธgare ytelse, og ivaretek datostempling -- men bruker litt meir prosessorkraft enn [๐] (den primitive opplastaren "bup")๐ปcopy
senere)",
+ "wt_m3uc": "kopiรฉr m3u-spelelista รฅt utklippstavla",
+ "wt_grid": "bytt mellom ikon og listevising$NSnarvei: G",
+ "wt_prev": "fรธrre song$NSnarvei: J",
+ "wt_play": "play / pause$NSnarvei: P",
+ "wt_next": "neste song$NSnarvei: L",
+
+ "ul_par": "samtidige handl.:",
+ "ut_rand": "finn opp nye tilfeldige filnamn",
+ "ut_u2ts": "gje fila pรฅ serveren same$Ntidsstempel som lokalt hos deg\">๐
",
+ "ut_ow": "overskrive eksisterande filer pรฅ serveren?$N๐ก๏ธ: aldri (finn pรฅ eit nytt filnamn i staden for)$N๐: overskriv viss fila รฅt serveren er eldre$Nโป๏ธ: alltid, gitt at innholdet er annleis",
+ "ut_mt": "fortsett รฅ synfare kรธa mens opplasting fรธregรฅr$N$Nskru denne av dersom du har ein$Ntreig prosessor eller harddisk",
+ "ut_ask": 'bekreft filutvalg fรธr opplasting startar">๐ญ',
+ "ut_pot": "forbetre ytinga pรฅ treige einheiter ved รฅ$Nforenkle brukergrensesnittet",
+ "ut_srch": "gjer eit sรธk i staden for รฅ laste opp --$Nleitar gjennom alle mappane du har lov รฅt รฅ sjรฅ",
+ "ut_par": "sett รฅt 0 for รฅ midlertidig stoppe opplasting$N$Nhรธge verdier (4 eller 8) kan gje betre yting,$Nspesielt pรฅ treige internettlinjer$N$Nbรธr ikkje vere hรธgare enn 1 pรฅ LAN$Neller viss serveren sin harddisk er treig",
+ "ul_btn": "slepp filer / mapperEnter
= Filer (รฉin eller fleire)\nESC
= รi mappe (inkludert undermapper)',
+ "u_nav_b": 'Filerรi mappe',
+
+ "cl_opts": "brytarar",
+ "cl_themes": "utsjรฅnad",
+ "cl_langs": "sprรฅk",
+ "cl_ziptype": "nedlasting av mapper",
+ "cl_uopts": "up2k-brytarar",
+ "cl_favico": "favicon",
+ "cl_bigdir": "store mapper",
+ "cl_hsort": "#sort",
+ "cl_keytype": "notasjon for musikalsk dur",
+ "cl_hiddenc": "skjulte kolonner",
+ "cl_hidec": "skjul",
+ "cl_reset": "nullstill",
+ "cl_hpick": "klikk pรฅ overskrifta รฅt kolonnene du รธnskjer รฅ skjule i tabellen nedanfor",
+ "cl_hcancel": "kolonne-skjuling avbrote",
+
+ "ct_grid": '็ฐ ikon',
+ "ct_ttips": 'vis hjelpetekst ved รฅ holde musa over ting">โน๏ธ tips',
+ "ct_thumb": 'vis miniatyrbilder i staden for ikon$NSnarvei: T">๐ผ๏ธ bilder',
+ "ct_csel": 'bruk tastane CTRL og SHIFT for markering av filer i ikonvising">merk',
+ "ct_ihop": 'bla ned รฅt sist viste bilde nรฅr bildevisaren lukkast">gโฎฏ',
+ "ct_dots": 'vis skjulte filer (gitt at serveren tillรจt det)">.synlig',
+ "ct_qdel": 'sletteknappen spรธr berre รฉin gong om stadfesting">hurtig๐๏ธ',
+ "ct_dir1st": 'sortรฉr slik at mapper kjem framanfor filer">๐ fรธrst',
+ "ct_nsort": 'naturlig sortering (skjรธnar tal i filnamn)">nsort',
+ "ct_utc": 'bruk UTC for alle klokkeslett">UTC',
+ "ct_readme": 'vis README.md nedanfor filene">๐ readme',
+ "ct_idxh": 'vis index.html i staden for filliste">htm',
+ "ct_sbars": 'vis rullgardiner / skrollefelt">โ',
+
+ "cut_umod": 'i tilfelle ei fil du lastar opp alt finnast pรฅ serveren, sรฅ skal tidsstempelet รฅt serveren oppdaterast slik at det stemmer overeins med din lokale fil (krev rettigheitene write+delete)">re๐
',
+
+ "cut_turbo": "forenkla synfaring ved opplasting; bรธr etter alt รฅ dรธme ikkje skruast pรฅ:$N$Nnyttig dersom du var midt i ei svรฆr opplasting som mรฅtte startast pรฅ nytt av ein eller annan grunn, og du vil komme i gang igjen sรฅ raskt som i det heile mulig.$N$Nnรฅr denne er skrudd pรฅ sรฅ forenklast synfaringa kraftig; i staden for รฅ utfรธre ein trygg sjekk pรฅ om filene finnast pรฅ serveren i god stand, sรฅ sjekkast det kun om filstorleiken stemmer. Sรฅ dersom ein korrupt fil vere pรฅ serveren allerede, pรฅ same plass, med same storleik og namn, sรฅ blir det ikkje oppdaga.$N$Ndet anbefalast รฅ kun benytte denne funksjonen for รฅ komme seg raskt gjennom sjรธlve opplastinga, for sรฅ รฅ skru den av, og รฅt slutt "laste opp" dei same filene รฉin gong รฅt -- slik at integriteten kan verifiserast\">turbo",
+
+ "cut_datechk": "har ingen effekt dersom turbo er skrudd av$N$Ngjer turbo bittelitt tryggare ved รฅ sjekke datostemplinga pรฅ filene (i tillegg รฅt filstorleik)$N$Nburde oppdage og gjenoppta dei fleste ufullstendige opplastinger, men er ikkje ein fullverdig erstatning for รฅ deaktivere turbo og gjere ein skikkeleg sjekk\">date-chk",
+
+ "cut_u2sz": "storleik i megabyte for kvart bruddstykke for opplasting. Store verdiar flyg betre over atlanteren. Smรฅ verdiar kan vere betre pรฅ flettande ustabile samband",
+
+ "cut_flag": "samkรธyrer nettlesarfaner slik at berre รฉin $N kan holde pรฅ med synfaring / opplasting $N -- andre faner mรฅ รณg ha denne skrudd pรฅ $N -- fungerar kun innanom same domene",
+
+ "cut_az": "last opp filer i alfabetisk rekkefรธlge, i staden for minste-fil-fรธrst$N$Nalfabetisk kan gjere det lettare รฅ anslรฅ om alt gjekk bra, men er bittelitt treigare pรฅ fiber / LAN",
+
+ "cut_nag": "meldingsvarsel nรฅr opplasting er ferdig$N(kun om nettlesarfana ikkje er synlig)",
+ "cut_sfx": "lydvarsel nรฅr opplasting er ferdig$N(kun om nettlesarfanen ikkje er synlig)",
+
+ "cut_mt": "raskere synfaring ved รฅ bruke heile CPU'en$N$Ndenne funksjonen nytter web-workers$Nog krev meir RAM (opptil 512 MiB ekstra)$N$Ngjer https 30% raskare, http 4.5x raskare\">mt",
+
+ "cut_wasm": "bruk wasm i staden for nettlesaren sin sha512-funksjon; gjev betre yting pรฅ chrome-baserte nettlesarar, men brukar meir CPU, og eldre versjoner av chrome toler det ikkje (et opp all RAM og krรฆsjer)\">wasm",
+
+ "cft_text": "ikontekst (blank ut og last siden pรฅ nytt for รฅ deaktivere)",
+ "cft_fg": "farge",
+ "cft_bg": "bakgrunnsfarge",
+
+ "cdt_lim": "maks mengd filer รฅ vise per mappe",
+ "cdt_ask": "vis knappar for รฅ laste fleire filer nederst pรฅ sida i staden for รฅ gradvis laste meir av mappea nรฅr man scroller ned",
+ "cdt_hsort": "antall sorteringsreglar (<code>,sorthref</code>) som skal inkluderast nรฅr media-URL'ar genererast. Dersom denne er 0 sรฅ vil sorteringsreglar i URL'ar korkje bli generert eller lest",
+
+ "tt_entree": "bytt รฅt mappehierarki$NSnarvei: B",
+ "tt_detree": "bytt รฅt tradisjonell stivising$NSnarvei: B",
+ "tt_visdir": "bla ned รฅt den รฅpne mappa",
+ "tt_ftree": "bytt mellom filstruktur og tekstfiler$NSnarvei: V",
+ "tt_pdock": "vis dei overordna mappane i eit panel",
+ "tt_dynt": "รธk bredda pรฅ panelet ettersom treet utvider seg",
+ "tt_wrap": "linjebryting",
+ "tt_hover": "vis heile mappenamnet nรฅr musepeikaren treff mappa$N( gjer diverre at scrollhjulet fusker dersom musepeikaren ikkje finn seg i grรธfta )",
+
+ "ml_pmode": "ved enden av mappa",
+ "ml_btns": "knapper",
+ "ml_tcode": "konvertering",
+ "ml_tcode2": "konvertรฉr til",
+ "ml_tint": "tint",
+ "ml_eq": "audio equalizer (tonejustering)",
+ "ml_drc": "compressor (volumutjevning)",
+
+ "mt_loop": "spel den same songen om og om igjen\">๐",
+ "mt_one": "spel kun รฉin song\">1๏ธโฃ",
+ "mt_shuf": "songane i kvar mappe$Nspelast i tilfeldig rekkefรธlge\">๐",
+ "mt_aplay": "prรธv รฅ starte avspeling viss linken du trykte pรฅ for รฅ รฅpne nettsida inneheld ein song-ID$N$Nviss denne deaktiverast sรฅ vil heller ikkje nettside-URL'en bli oppdatert med song-ID'er nรฅr musikk spelast, i tilfelle innstillingane skulle gรฅ tapt og nettsida lastast pรฅ ny\">aโถ",
+ "mt_preload": "hent ned litt av neste song i forkant,$Nslik at pausa i overgangen blir mindre\">forsyn",
+ "mt_prescan": "ved behov, bla รฅt neste mappe$Nslik at nettlesaren lar oss$Nfortsetja รฅ spele musikk\">bla",
+ "mt_fullpre": "hent ned heile neste song, ikkje berre litt:$Nโ
skru pรฅ viss nettet ditt er ustabilt,$Nโ skru av viss nettet ditt er treigt\">full",
+ "mt_fau": "for telefoner: forhindre at avspeling stoppar viss nettet er for treigt รฅt รฅ laste neste song i tide. Viss pรฅskrudd kan det forรฅrsake at songinfo ikkje visast korrekt i OS'et\">โ๏ธ",
+ "mt_waves": "waveform seekbar:$Nvis volumkurve i avspelingsfeltet\">~s",
+ "mt_npclip": "vis knappar for รฅ kopiere info om songen du hรธyrer pรฅ\">/np",
+ "mt_m3u_c": "vis knapper for รฅ kopiere dei valde$Nsongene som innslag i ei m3u8-speleliste\">๐ป",
+ "mt_octl": "integrering med operativsystemet (fjernkontroll, infoskjerm)\">os-ctl",
+ "mt_oseek": "gje lรธyve รฅt spoling med fjernkontroll$N$Nmerk: pรฅ nokon eininger (iPhones) sรฅ vil$Ndette erstatte knappen for neste song\">spoling",
+ "mt_oscv": "vis albumcover pรฅ infoskjermen\">bilde",
+ "mt_follow": "bla slik at songen som spelast alltid er synleg\">๐ฏ",
+ "mt_compact": "tettpakka spelarpanel\">โ",
+ "mt_uncache": "prรธv denne viss ein song ikkje spelar riktig\">oppfrisk",
+ "mt_mloop": "repetรฉr heile mappa\">๐ gjenta",
+ "mt_mnext": "hopp รฅt neste mappe og fortsett\">๐ neste",
+ "mt_mstop": "stopp avspeling\">โธ stopp",
+ "mt_cflac": "konvertรฉr flac / wav-filer รฅt {0}\">flac",
+ "mt_caac": "konvertรฉr aac / m4a-filer รฅt to {0}\">aac",
+ "mt_coth": "konvertรฉr alt anna (men ikkje mp3) รฅt {0}\">andre",
+ "mt_c2opus": "det beste valget for alle PCar og Android\">opus",
+ "mt_c2owa": "opus-weba, for iOS 17.5 og nyare\">owa",
+ "mt_c2caf": "opus-caf, for iOS 11 รฅt og med 17\">caf",
+ "mt_c2mp3": "bra valg for steinalder-utstyr (slรฅr aldri feil)\">mp3",
+ "mt_c2flac": "gir best lydkvalitet, men et nettet ditt\">flac",
+ "mt_c2wav": "heilt rรฅ lydstrรธm (bruker enda meir data enn flac)\">wav",
+ "mt_c2ok": "bra valg!",
+ "mt_c2nd": "ikkje det fรธretrekte valget for din einheit, men funker sikkert greit",
+ "mt_c2ng": "ser verkelig ikkje ut som enheiten din taklar dette formatet... men ok, vi prรธver",
+ "mt_xowa": "iOS har fortsatt problem med avspeling av owa-musikk i bakgrunnen. Bruk caf eller mp3 i staden for",
+ "mt_tint": "nivรฅ av bakgrunnsfarge pรฅ sรธkestripa (0-100),$Ngjer oppdateringer mindre distraherande",
+ "mt_eq": "aktivรฉr tonekontroll og forsterker;$N$Nboost <code>0</code> = normal volumskala$N$Nwidth <code>1 </code> = normal stereo$Nwidth <code>0.5</code> = 50% blanding venstre-hรธgre$Nwidth <code>0 </code> = mono$N$Nboost <code>-0.8</code> & width <code>10</code> = instrumental :^)$N$Nreduserer รณg daudtid mellom songfiler",
+ "mt_drc": "aktivรฉr volum-utjevning (dynamic range compressor); vil รณg aktivere tonejustering, sรฅ sett alle EQ-feltene bortsett frรฅ 'width' รฅt 0 viss du ikkje vil ha nokon EQ$N$Nfilteret vil dempe volumet pรฅ alt som er hรธgare enn TRESH dB; for kvar RATIO dB over grensa er det 1dB som treff hรธgtalarane, sรฅ standardverdiane tresh -24 og ratio 12 skal bety at volumet ikkje gjeng hรธgare enn -22 dB, slik at ein trygt kan รธke boost-verdien i equalizeren รฅt rundt 0.8, eller 1.8 kombinert med ATK 0 og RLS 90 (berre mulig i firefox; andre nettlesarar tek ikkje hรธgare RLS enn 1)$N$Nwikipedia forklarar dette mykje betre forresten",
+
+ "mb_play": "lytt",
+ "mm_hashplay": "spel denne songen?",
+ "mm_m3u": "trykk Enter/OK
for รฅ spele\ntrykk ESC/Avbryt
for รฅ redigere",
+ "mp_breq": "krev firefox 82+, chrome 73+, eller iOS 15+",
+ "mm_bload": "lastar inn...",
+ "mm_bconv": "konverterer รฅt {0}, vent litt...",
+ "mm_opusen": "nettlesaren din skjรธnar ikkje aac / m4a;\nkonvertering รฅt opus er no aktivert",
+ "mm_playerr": "avspeling feilet: ",
+ "mm_eabrt": "Avspelingsforespรธrselen blei avbroten",
+ "mm_enet": "Nettet ditt er ustabilt",
+ "mm_edec": "Noko er galt med musikkfila",
+ "mm_esupp": "Nettleseren din skjรธnar ikkje filtypen",
+ "mm_eunk": "Ukjent feil",
+ "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_e500": "Avspeling feilet: Rusk i maskineriet, sjekk serverloggen.",
+ "mm_e5xx": "Avspeling feilet: ",
+ "mm_nof": "finn ikkje flere songer i nรฆrheita",
+ "mm_prescan": "Leitar etter neste song...",
+ "mm_scank": "Fann neste song:",
+ "mm_uncache": "alle songer vil lastast pรฅ nytt ved neste avspeling",
+ "mm_hnf": "songen finnast ikkje lenger",
+
+ "im_hnf": "bildet finnast ikkje lenger",
+
+ "f_empty": 'denne mappa er tom',
+ "f_chide": 'dette vil skjule kolonna ยซ{0}ยป\n\nfana for "andre innstillinger" let deg vise kolonna igjen',
+ "f_bigtxt": "denne fila er heeile {0} MiB -- vis som tekst?",
+ "f_bigtxt2": "vil du sjรฅ bunnen av filen i staden for? du vil da รณg sjรฅ nye linjer som blir lagd รฅt pรฅ slutten av filen i sanntid",
+ "fbd_more": '',
+ "fbd_all": '',
+ "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_partial": "For รฅ laste ned ei fil som enda ikkje er ferdig opplasta, klikk pรฅ filen som har same filnamn som denne, men uten .PARTIAL
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 .PARTIAL
-filen pรฅ ein ukontrollert mรฅte, trykk OK / Enter for รฅ ignorere denne advarselen. Slik vil du hรธgst sannsynleg motta korrupt data.",
+
+ "ft_paste": "Lim inn {0} filer$NSnarvei: ctrl-V",
+ "fr_eperm": 'kan ikkje endre namn:\ndu har ikkje hรธve รฅt โmoveโ i denne mappa',
+ "fd_eperm": 'kan ikkje slette:\ndu har ikkje hรธve รฅt โdeleteโ i denne mappa',
+ "fc_eperm": 'kan ikkje klippe ut:\ndu har ikkje hรธve รฅt โmoveโ i denne mappa',
+ "fp_eperm": 'kan ikkje lime inn:\ndu har ikkje hรธve รฅt โwriteโ i denne mappa',
+ "fr_emore": "vel minst รฉi fil som skal fรฅ nytt namn",
+ "fd_emore": "vel minst รฉi fil som skal slettast",
+ "fc_emore": "vel minst รฉi fil som skal klippast ut",
+ "fcp_emore": "vel minst รฉi fil som skal kopierast รฅt utklippstavla",
+
+ "fs_sc": "del mappa du er i no",
+ "fs_ss": "del dei valde filene",
+ "fs_just1d": "du kan ikkje markere flere mapper samtidig,\neller kombinere mapper og filer",
+ "fs_abrt": "โ avbryt",
+ "fs_rand": "๐ฒ tilfeldig namn",
+ "fs_go": "โ
opprett deling",
+ "fs_name": "namn",
+ "fs_src": "kjelde",
+ "fs_pwd": "passord",
+ "fs_exp": "varigheit",
+ "fs_tmin": "min",
+ "fs_thrs": "timar",
+ "fs_tdays": "dagar",
+ "fs_never": "for evig",
+ "fs_pname": "valfri namn (blir litt tilfeldig ellers)",
+ "fs_tsrc": "fil/mappe som skal delast",
+ "fs_ppwd": "valfri passord",
+ "fs_w8": "opprettar deling...",
+ "fs_ok": "trykk Enter/OK
for รฅ kopiere lenka (for CTRL-V)\ntrykk ESC/Avbryt
for รฅ kun bekrefta",
+
+ "frt_dec": "kan korrigere visse รธdelagte filnamn\">url-decode",
+ "frt_rst": "nullstillar endringar (tilbake รฅt dei originale filnamna)\">โบ reset",
+ "frt_abrt": "avbryt og lukk dette vindauget\">โ avbryt",
+ "frb_apply": "IVERKSETT",
+ "fr_adv": "automasjon basert pรฅ metadata<>:"\\|?*
med$Ntilsvarande som windows ikkje fรฅr panikk av\">win",
+ "fr_slash": "bytt ut bokstaven /
slik at den ikkje forรฅrsakar at nye mapper opprettes\">ikke /",
+ "fr_re": "regex-mรธnster som kรธyrast pรฅ kvart filnamn. Grupper kan leses ut i format-feltet nedanfor, f.eks. <code>(1)</code> og <code>(2)</code> osv.",
+ "fr_fmt": "inspirert av foobar2000:$N<code>(title)</code> byttast ut med songtittel,$N<code>[(artist) - ](title)</code> dropper [dette] viss artist er blank$N<code>$lpad((tn),2,0)</code> visar songnr. med 2 siffer",
+ "fr_pdel": "slett",
+ "fr_pnew": "lagre som",
+ "fr_pname": "gje innstillingane dine eit namn",
+ "fr_aborted": "avbrote",
+ "fr_lold": "gamalt namn",
+ "fr_lnew": "nytt namn",
+ "fr_tags": "metadata for dei valde filene (kun for referanse):",
+ "fr_busy": "endrar namn pรฅ {0} filer...\n\n{1}",
+ "fr_efail": "endring av namn feila:\n",
+ "fr_nchg": "{0} av namna blei justert pga. win
og/eller ikkje /
\n\nvil du fortsetja med dei nye namna som blei valde?",
+
+ "fd_ok": "sletting OK",
+ "fd_err": "sletting feila:\n",
+ "fd_none": "ingenting blei sletta; kanskje avvist av serverkonfigurasjon (xbd)?",
+ "fd_busy": "slettar {0} filer...\n\n{1}",
+ "fd_warn1": "SLETT disse {0} filene?",
+ "fd_warn2": "Siste sjanse! Dette kan ikkje angrast. Slett?",
+
+ "fc_ok": "klipte ut {0} filer",
+ "fc_warn": 'klipte ut {0} filer\n\nmen: kun denne nettlesarfana har muligheit รฅt รฅ lime dei inn ein annan plass, siden antallet filer er helt hinsides',
+
+ "fcc_ok": "kopierte {0} filer รฅt utklippstavla",
+ "fcc_warn": 'kopierte {0} filer รฅt utklippstavla\n\nmen: kun denne nettlesarfana har muligheit รฅt รฅ lime dei inn ein annan plass, sidan antallet filer er heilt pรฅ hi sida',
+
+ "fp_apply": "bekreft og lim inn no",
+ "fp_ecut": "du mรฅ klippe ut eller kopiere nokre filer / mapper fรธrst\n\nmerk: du kan gjerne jobbe pรฅ kryss av nettlesarfaner; klippe ut i รฉi fane, lime inn i ei anna",
+ "fp_ename": "{0} filer kan ikkje flyttast รฅt mรฅlmappa fordi det allereie finnast filer med same namn. Gi dei nye namn nedanfor, eller gje dei eit blankt namn for รฅ hoppe over dei:",
+ "fcp_ename": "{0} filer kan ikkje kopierast รฅt mรฅlmappa fordi det allereie finnast filer med same namn. Gi dei nye namn nedanfor, eller gje dei eit blankt namn for รฅ hoppe over dei:",
+ "fp_emore": "det er fortsatt fleire namn som mรฅ endrast",
+ "fp_ok": "flytting OK",
+ "fcp_ok": "kopiering OK",
+ "fp_busy": "flyttar {0} filer...\n\n{1}",
+ "fcp_busy": "kopierar {0} filer...\n\n{1}",
+ "fp_abrt": "avbryt...",
+ "fp_err": "flytting feila:\n",
+ "fcp_err": "kopiering feila:\n",
+ "fp_confirm": "flytt disse {0} filene hit?",
+ "fcp_confirm": "kopiรฉr disse {0} filene hit?",
+ "fp_etab": 'kunne ikkje lese lista med filer frรฅ den andre nettlesarfana',
+ "fp_name": "Lastar opp รฉi fil frรฅ einheita di. Velg filnamn:",
+ "fp_both_m": 'Enter
= Flytt {0} filer frรฅ ยซ{1}ยป\nESC
= Last opp {2} filer frรฅ einheita din',
+ "fcp_both_m": 'Enter
= Kopiรฉr {0} filer frรฅ ยซ{1}ยป\nESC
= Last opp {2} filer frรฅ einheita din',
+ "fp_both_b": 'FlyttLast opp',
+ "fcp_both_b": 'KopiรฉrLast opp',
+
+ "mk_noname": "skriv inn eit namn i tekstboksa รฅt venstre fรธrst :p",
+
+ "tv_load": "Lastar inn tekstfil:\n\n{0}\n\n{1}% ({2} av {3} MiB lasta ned)",
+ "tv_xe1": "kunne ikkje laste tekstfil:\n\nfeil ",
+ "tv_xe2": "404, Fil ikkje funne",
+ "tv_lst": "tekstfiler i mappa",
+ "tvt_close": "gรฅ tilbake รฅt mappa$NSnarvei: M (eller Esc)\">โ lukk",
+ "tvt_dl": "last ned denne fila$NSnarvei: Y\">๐พ last ned",
+ "tvt_prev": "vis fรธrre dokument$NSnarvei: i\">โฌ forr.",
+ "tvt_next": "vis neste dokument$NSnarvei: K\">โฌ neste",
+ "tvt_sel": "markรฉr fila ( for utklipp / sletting / ... )$NSnarvei: S\">merk",
+ "tvt_edit": "redigรฉr fila$NSnarvei: E\">โ๏ธ endre",
+ "tvt_tail": "overvak fila for endringar og vis nye linjer i sanntid\">๐ก fรธlg",
+ "tvt_wrap": "tekstbryting\">โต",
+ "tvt_atail": "hald dei nyaste linjene synlege (lรฅs รฅt botnen av sida)\">โ",
+ "tvt_ctail": "skjรธn og vis terminalfargar (ansi-sekvensar)\">๐",
+ "tvt_ntail": "maksgrense for antal bokstavar som skal visast i vindauget",
+
+ "m3u_add1": "songen blei lagd รฅt i m3u-spelelista",
+ "m3u_addn": "{0} songer blei lagde รฅt i m3u-spelelista",
+ "m3u_clip": "m3u-spelelista blei kopiert รฅt utklippstavla\n\nneste steg er รฅ oppretta eit tekstdokument med filnamn som sluttar pรฅ .m3u
og lime inn spelelista der",
+
+ "gt_vau": "ikkje vis videofiler, berre spel lyden\">๐ง",
+ "gt_msel": "markรฉr filer i staden for รฅ รฅpne dei; ctrl-klikk filer for รฅ overstyre$N$N<em>nรฅr aktiv: dobbelklikk ei fil / mappe for รฅ รฅpne</em>$N$NSnarvei: S\">markering",
+ "gt_crop": "skjer ikona slik at dei passar betre\">โ",
+ "gt_3x": "hรธgare opplรธysing pรฅ ikon\">3x",
+ "gt_zoom": "zoom",
+ "gt_chop": "trim",
+ "gt_sort": "sortรฉr",
+ "gt_name": "namn",
+ "gt_sz": "stรธrr.",
+ "gt_ts": "dato",
+ "gt_ext": "type",
+ "gt_c1": "redusรฉr makslengde pรฅ filnamn",
+ "gt_c2": "auk makslengde pรฅ filnamn",
+
+ "sm_w8": "sรธker...",
+ "sm_prev": "sรธkeresultata er frรฅ eit tidlegare sรธk:\n ",
+ "sl_close": "lukk sรธkeresultat",
+ "sl_hits": "visar {0} treff",
+ "sl_moar": "hent fleire",
+
+ "s_sz": "stรธrr.",
+ "s_dt": "dato",
+ "s_rd": "sti",
+ "s_fn": "namn",
+ "s_ta": "meta",
+ "s_ua": "up@",
+ "s_ad": "avns.",
+ "s_s1": "stรธrre enn โ MiB",
+ "s_s2": "mindre enn โ MiB",
+ "s_d1": "nyare enn <dato>",
+ "s_d2": "eldre enn",
+ "s_u1": "lasta opp etter",
+ "s_u2": "og/eller fรธr",
+ "s_r1": "mappaamn inneheld",
+ "s_f1": "filnamn inneheld",
+ "s_t1": "song-info inneheld",
+ "s_a1": "konkrete eigenskapar",
+
+ "md_eshow": "visar forenkla ",
+ "md_off": "[๐readme] er skrudd av i [โ๏ธ] -- dokument skjult",
+
+ "badreply": "Ugyldig svar frรฅ serveren",
+
+ "xhr403": "403: Hรธve nekta\n\nkanskje du blei logga ut? prรธv รฅ trykk F5",
+ "xhr0": "ukjend (enten nettverksproblem eller serverkrรฆsj)",
+ "cf_ok": "om orsak -- liten tilfeldig kontroll, alt OK\n\nting skal fortsetja om ca. 30 sekund\n\nviss ikkje noko skjer, trykk F5 for รฅ laste sida pรฅ nytt",
+ "tl_xe1": "kunne ikkje hente undermapper:\n\nfeil ",
+ "tl_xe2": "404: Mappa finnast ikkje",
+ "fl_xe1": "kunne ikkje hente filer i mappa:\n\nfeil ",
+ "fl_xe2": "404: Mappa finnast ikkje",
+ "fd_xe1": "kan ikkje opprette ny mappe:\n\nfeil ",
+ "fd_xe2": "404: Den overordna mappa finnast ikkje",
+ "fsm_xe1": "kunne ikkje sende melding:\n\nfeil ",
+ "fsm_xe2": "404: Den overordna mappa finnast ikkje",
+ "fu_xe1": "kunne ikkje hente lista med nyleg opplastede filer frรฅ serveren:\n\nfeil ",
+ "fu_xe2": "404: Fila finnast ikkje??",
+
+ "fz_tar": "ukomprimert gnu-tar arkiv, for linux og mac",
+ "fz_pax": "ukomprimert pax-tar arkiv, litt treigare",
+ "fz_targz": "gnu-tar pakket med gzip (nivรฅ 3)$N$NNB: denne er veldig treig;$Nukomprimert tar er betre",
+ "fz_tarxz": "gnu-tar pakket med xz (nivรฅ 1)$N$NNB: denne er veldig treig;$Nukomprimert tar er betre",
+ "fz_zip8": "zip med filnamn i utf8 (noko problematisk pรฅ windows 7 og eldre)",
+ "fz_zipd": "zip med filnamn i cp437, for hรธggamle maskiner",
+ "fz_zipc": "cp437 med tidlig crc32,$Nfor MS-DOS PKZIP v2.04g (oktober 1993)$N(รธker behandlingstid pรฅ server)",
+
+ "un_m1": "nedanfor kan du angre / slette filer som du nyleg har lastet opp, eller avbryte ufullstendige opplastinger",
+ "un_upd": "oppdater",
+ "un_m4": "eller viss du vil dele nedlastings-lenkene:",
+ "un_ulist": "vis",
+ "un_ucopy": "kopiรฉr",
+ "un_flt": "valgfritt filter: filnamn / filsti mรฅ inneholde",
+ "un_fclr": "nullstill filter",
+ "un_derr": 'unpost-sletting feilet:\n',
+ "un_f5": 'noko gjekk galt, prรธv รฅ oppdatere lista eller trykk F5',
+ "un_uf5": "om orsak, men du mรฅ laste sida pรฅ nytt (f.eks. ved รฅ trykkje F5 eller CTRL-R) fรธr denne opplastinga kan avbrytast",
+ "un_nou": 'advarsel: kan ikkje vise ufullstendige opplastingar akkurat no; klikk pรฅ oppdater-lenka om litt',
+ "un_noc": 'advarsel: angring av fullfรธrte opplastingar er deaktivert i serverkonfigurasjonen',
+ "un_max": "visar dei fรธrste 2000 filene (bruk filteret for รฅ snevre inn)",
+ "un_avail": "{0} nyleg opplasta filer kan slettastfiler: {0} ferdig, {1} feilet, {2} behandlast, {3} i kรธ
", + "u_ever": "dette er den primitive opplastaren; up2k krev minst:OK/Enter
for รฅ HOPPE OVER disse filene,\nTrykk Avbryt/ESC
for รฅ LASTE OPP disse filene รณg:\n\n',
+ "u_just1": '\nFunkar kanskje betre viss du berre tar รฉi fil om gangen',
+ "u_ff_many": 'Viss du bruker Linux / MacOS / Android, sรฅ kan dette antalet filer{1}
',
+ "u_unpt": "Du kan angre / slette opplastinga med ๐งฏ oppe รฅt venstre",
+ "u_bigtab": 'Vil no vise {0} filer...\n\nDette kan krรฆsje nettlesaren din. Fortsette?',
+ "u_scan": 'Les mappane...',
+ "u_dirstuck": 'Nettleseren din fekk ikkje hรธve รฅt รฅ lese fรธlgande {0} filer/mapper, sรฅ dei blir hoppa over:',
+ "u_etadone": 'Ferdig ({0}, {1} filer)',
+ "u_etaprep": '(forberedar opplasting)',
+ "u_hashdone": 'synfaring ferdig',
+ "u_hashing": 'les',
+ "u_hs": 'serveren tenkjer...',
+ "u_started": "filene blir no lasta opp ๐",
+ "u_dupdefer": "duplikat; vil bli hรฅndtert รฅt slutt",
+ "u_actx": "klikk her for รฅ forhindre tap avmt
brytaren under โ๏ธ innstillinger
๐ฅ
("enkelt UI") i opplastarenconnections-per-server
i about:config
",
+ "u_tu": 'ADVARSEL: turbo er pรฅ, avbrotne opplastingar vil muligens ikkje oppdagast og gjenopptakast; hald musepeikaren over turbo-knappen for meir info
', + "u_ts": 'ADVARSEL: turbo er pรฅ, sรธkeresultat kan vere feil; hold musepeikaren over turbo-knappen for meir info
', + "u_turbo_c": "turbo er deaktivert i serverkonfigurasjonen", + "u_turbo_g": 'turbo blei deaktivert fordi du ikkje har\nhรธve รฅt รฅ sjรฅ mappeinnhold i dette volumet', + "u_life_cfg": 'slett opplasting etter min (eller timar)', + "u_life_est": 'opplastingen slettast ---', + "u_life_max": 'denne mappa tillet ikkje รฅ \noppbevare filer i meir enn {0}', + "u_unp_ok": 'opplasting kan angrast i {0}', + "u_unp_ng": 'opplasting kan IKKE angrast', + "ue_ro": 'du har ikkje hรธve รฅt skriving i denne mappa\n\n', + "ue_nl": 'du er ikkje logga inn', + "ue_la": 'du er logga inn som "{0}"', + "ue_sr": 'du er i filsรธk-modus\n\nbytt รฅt opplasting ved รฅ klikke pรฅ forstรธrringsglaset ๐ (ved siden av den store FILSรK-knappen) og prรธv igjen\n\nsorry', + "ue_ta": 'prรธv รฅ last opp igjen, det burde fungere no', + "ue_ab": "den same filen er under opplasting รฅt ei anna mappe, og den mรฅ fullfรธrast der fรธr fila kan lastast opp andre plassar.\n\nDu kan avbryte og glรธyme den pรฅbegynte opplastinga ved hjelp av ๐งฏ oppe รฅt venstre", + "ur_1uo": "OK: Fila blei lastet opp", + "ur_auo": "OK: Alle {0} filene blei lastet opp", + "ur_1so": "OK: Fila blei funne pรฅ serveren", + "ur_aso": "OK: Alle {0} filene blei funne pรฅ serveren", + "ur_1un": "Opplasting feila!", + "ur_aun": "Alle {0} opplastingene gjekk feil!", + "ur_1sn": "Fila finnast IKKE pรฅ serveren", + "ur_asn": "Fann INGEN av dei {0} filene pรฅ serveren", + "ur_um": "Ferdig;\n{0} opplastingar gjekk bra,\n{1} opplastingar gjekk feil", + "ur_sm": "Ferdig;\n{0} filer blei funne,\n{1} filer finnast IKKJE pรฅ serveren", + + "lang_set": "passar det รฅ laste sida pรฅ nytt?", + }, + "pol": { + "tt": "Polski", + "cols": { + "c": "przyciski akcji", + "dur": "czas trwania", + "q": "jakoลฤ / bitrate", + "Ac": "kodek audio", + "Vc": "kodek wideo", + "Fmt": "format / kontener", + "Ahash": "suma kontrolna audio", + "Vhash": "suma kontrolna wideo", + "Res": "rozdzielczoลฤ", + "T": "rodzaj pliku", + "aq": "jakoลฤ / bitrate audio", + "vq": "jakoลฤ / bitrate wideo", + "pixfmt": "podprรณbkowanie / struktura pikseli", + "resw": "rozdzielczoลฤ pozioma", + "resh": "rozdzielczoลฤ pionowa", + "chs": "kanaลy audio", + "hz": "czฤstotliwoลฤ prรณbkowania" + }, + + "hks": [ + [ + "misc", + ["ESC", "zamknij rรณลผne rzeczy"], + + "file-manager", + ["G", "przeลฤ cz widok lista / siatka"], + ["T", "przeลฤ cz miniaturki / ikony"], + ["โง A/D", "wielkoลฤ miniaturki"], + ["ctrl-K", "usuล zaznaczone"], + ["ctrl-X", "wytnij zaznaczone do schowka"], + ["ctrl-C", "skopiuj zaznaczone do schowka"], + ["ctrl-V", "wklej (przenieล/skopiuj) tutaj"], + ["Y", "pobierz zaznaczone"], + ["F2", "zmieล nazwฤ zaznaczonych"], + + "file-list-sel", + ["spacja", "przeลฤ cz zaznaczanie plikรณw"], + ["โ/โ", "przenieล kursor zaznaczenia"], + ["ctrl โ/โ", "przenieล kursor i widok"], + ["โง โ/โ", "wybierz poprzedni/nastฤpny plik"], + ["ctrl-A", "wybierz wszystkie pliki/foldery"], + ], [ + "navigation", + ["B", "przeลฤ cz ลcieลผkฤ nawigacyjnฤ / panel nawigacyjny"], + ["I/K", "poprzedni/nastฤpny folder"], + ["M", "folder nadrzฤdny (lub zwiล aktualny)"], + ["V", "przeลฤ cz foldery / pliki tekstowe w panelu nawigacyjnym"], + ["A/D", "rozmiar panelu nawigacyjnego"], + ], [ + "audio-player", + ["J/L", "poprzedni/nastฤpny utwรณr"], + ["U/O", "przejdลบ 10 sek. do tyลu/przodu"], + ["0..9", "przeskocz do 0%..90%"], + ["P", "odtwรณrz/pauza (rรณwnieลผ rozpoczyna)"], + ["S", "wybierz odtwarzany utwรณr"], + ["Y", "pobierz utwรณr"], + ], [ + "image-viewer", + ["J/L, โ/โ", "poprzednie/nastฤpne zdjฤcie"], + ["Home/End", "pierwsze/ostatnie zdjฤcie"], + ["F", "peลny ekran"], + ["R", "obrรณฤ zgodnie ze wskaz. zegara"], + ["โง R", "obrรณฤ przeciwnie do ruchu wskaz. zegara"], + ["S", "wybierz zdjฤcie"], + ["Y", "pobierz zdjฤcie"], + ], [ + "video-player", + ["U/O", "przejdลบ 10 sek. do tyลu/przodu"], + ["P/K/Spacja", "odtwรณrz/pauza"], + ["C", "odtwarzaj nastฤpne po zakoลczeniu"], + ["V", "odtwarzaj w pฤtli"], + ["M", "wycisz"], + ["[ i ]", "ustaw opรณลบnienie pฤtli"], + ], [ + "textfile-viewer", + ["I/K", "poprzedni/nastฤpny plik"], + ["M", "zamknij plik"], + ["E", "edytuj plik"], + ["S", "wybierz plik (do wyciฤcia/skopiowania/zmiany nazwy)"], + ] + ], + + "m_ok": "OK", + "m_ng": "Anuluj", + + "enable": "Wลฤ cz", + "danger": "NIEBEZPIECZEลSTWO", + "clipped": "skopiowano do schowka", + + "ht_s1": "sekunda", + "ht_s2": "sekundy", + "ht_s5": "sekund", + "ht_m1": "minuta", + "ht_m2": "minuty", + "ht_m5": "minut", + "ht_h1": "godzina", + "ht_h2": "godziny", + "ht_h5": "godzin", + "ht_d1": "dzieล", + "ht_d2": "dni", + "ht_and": " i ", + + "goh": "panel sterowania", + "gop": 'poprzedni plik/folder">poprzedni', + "gou": 'nadrzฤdny folder">w gรณrฤ', + "gon": 'nastฤpny folder">nastฤpny', + "logout": "Wyloguj ", + "login": "Zaloguj siฤ", //m + "access": " dostฤp", + "ot_close": "zamknij pod-menu", + "ot_search": "szukaj plikรณw po atrybutach, ลcieลผce / nazwie, tagach muzyki, bฤ dลบ dowolnej ich kombinacji$N$N<code>foo bar</code> = musi zawieraฤ ยซfooยป oraz ยซbarยป,$N<code>foo -bar</code> = musi zawieraฤ ยซfooยป, lecz nie ยซbarยป,$N<code>^yana .opus$</code> = musi zaczynaฤ siฤ od ยซyanaยป i byฤ plikiem ยซopusยป$N<code>"try unite"</code> = zawieraฤ dokลadnie ยซtry uniteยป$N$Nformatem daty jest iso-8601, czyli$N<code>2009-12-31</code> lub <code>2020-09-12 23:30:00</code>", + "ot_unpost": "unpost: usuล ostatnio przesลane pliki lub przerwij przesyลanie", + "ot_bup": "bup: podstawowe przesyลanie danych, wspiera nawet netscape 4.0", + "ot_mkdir": "mkdir: tworzy nowy folder", + "ot_md": "new-md: tworzy nowy dokument markdown", + "ot_msg": "msg: wysyลa wiadomoลฤ do loga serwera", + "ot_mp": "opcje odtwarzacza multimediรณw", + "ot_cfg": "opcje konfiguracji", + "ot_u2i": 'up2k: przesyลa pliki (jeลผeli masz dostฤp do zapisu) lub uruchomia tryb wyszukiwania, aby sprawdziฤ czy juลผ istniejฤ na serwerze$N$Nprzesyลanie moลผna wznowiฤ, jest wielowฤ tkowe i znaczniki czasu sฤ zachowywane, lecz zuลผywa wiฤcej procesora niลผ [๐] (podstawowe przesyลanie)๐ปcopy
kliknij)",
+ "wt_m3uc": "skopiuj playlistฤ m3u do schowka",
+ "wt_grid": "przeลฤ
cz widok siatki / listy$NSkrรณt: G",
+ "wt_prev": "poprzeni utwรณr$NSkrรณt: J",
+ "wt_play": "odtwรณrz / pauza$NSkrรณt: P",
+ "wt_next": "nastฤpny utwรณr$NSkrรณt: L",
+
+ "ul_par": "przesyลane rรณwnolegle:",
+ "ut_rand": "losuj nazwy plikรณw",
+ "ut_u2ts": "kopiuj znacznik ostatniej modyfikacji$Nz twojego systemu plikรณw na serwer\">๐
",
+ "ut_ow": "nadpisywaฤ istniejฤ
ce pliki na serwerzฤ?$N๐ก๏ธ: nigdy (wygeneruje nowฤ
nazwฤ)$N๐: nadpisz jeลli pliki na serwerze sฤ
starsze niลผ przesyลane$Nโป๏ธ: zawsze nadpisuj jeลli zawartoลฤ plikรณw siฤ rรณลผni",
+ "ut_mt": "hashuj inne pliki podczas przesyลania$N$Nmoลผna wyลฤ
czyฤ w przypadku wystฤ
pienia wฤ
skiego gardลa na CPU lub HDD",
+ "ut_ask": 'pytaj o potwierdzenie rozpoczฤcia przesyลania">๐ญ',
+ "ut_pot": "przyspiesz przesyลanie na sลabszych urzฤ
dzeniach,$Nupraszczajฤ
c interfejs",
+ "ut_srch": "nie przesyลaj plikรณw, jedynie sprawdลบ czy istniejฤ
$Njuลผ na serwerze (przeskanuje wszystkie foldery dostฤpne do odczytu)",
+ "ut_par": "zatrzymuje przesyลanie jeลli wynosi 0$N$Nzwiฤksz w przypadku jeลli twoja sieฤ jest wolna / ma duลผe opรณลบnienia$N$Nustaw wartoลฤ 1 w sieci lokalnej lub w przypadku wolnego dysku serwerowego",
+ "ul_btn": "upuลฤ pliki / folderyEnter
= Pliki (jeden lub wiecej)\nESC
= Jeden folder (wลฤ
cznie z podfolderami)',
+ "u_nav_b": 'PlikiJeden folder',
+
+ "cl_opts": "przeลฤ
czniki",
+ "cl_themes": "motyw",
+ "cl_langs": "jฤzyk",
+ "cl_ziptype": "pobieranie folderรณw",
+ "cl_uopts": "przeลฤ
czniki przesyลania (up2k)",
+ "cl_favico": "favicon (ikona w przeglฤ
darce)",
+ "cl_bigdir": "duลผe foldery",
+ "cl_hsort": "#sortowanie",
+ "cl_keytype": "notacja klucza", // not sure
+ "cl_hiddenc": "ukryte kolumny",
+ "cl_hidec": "ukryj",
+ "cl_reset": "zresetuj",
+ "cl_hpick": "kliknij nagลรณwki kolumn, aby ukryฤ je w tabeli niลผej",
+ "cl_hcancel": "ukrywanie kolumn przerwane",
+
+ "ct_grid": '็ฐ siatka',
+ "ct_ttips": 'โ โก โ">โน๏ธ podpowiedzi',
+ "ct_thumb": 'w widoku siatki, przeลฤ
cz ikony i miniaturki$NSkrรณt: T">๐ผ๏ธ miniaturki',
+ "ct_csel": 'uลผyj CTRL i SHIFT do wybierania plikรณw w widoku siatki">wybierz',
+ "ct_ihop": 'przejdลบ do ostatniego pliku po zamkniฤciu przeglฤ
darki obrazรณw">gโฎฏ',
+ "ct_dots": 'pokaลผ ukryte pliki (jeลli pozwala serwer)">ukryte',
+ "ct_qdel": 'pytaj o potwierdzenie przy usuwaniu tylko raz">pyt. us.',
+ "ct_dir1st": 'pokazuj foldery na poczฤ
tku">๐ najpierw',
+ "ct_nsort": 'naturalne sortowanie (dla numerowanych plikรณw)">nsort',
+ "ct_utc": 'pokaลผ wszystkie daty/czas w UTC">UTC',
+ "ct_readme": 'pokazuj README.md w folderach">๐ readme',
+ "ct_idxh": 'pokazuj plik index.html zamiast zawartoลci folderu">htm',
+ "ct_sbars": 'pokazuj paski przewijania">โ',
+
+ "cut_umod": "uaktualnij znacznik ostatniej modyfikacji pliku, tak aby pasowaล do pliku lokalnego jeลผeli plik juลผ istnieje na serwerze (wymaga dostฤpu zapisu i usuwania)\">๐
ponownie",
+
+ "cut_turbo": "przycisk โraz siฤ ลผyjeโ, raczej NIE POWINIENEล tego wลฤ
czaฤ:$N$Nuลผywaj jeลli przesyลano ogromnฤ
liczbฤ plikรณw i z jakiegoล powodu musisz przesลaฤ pliki ponownie, kontynuujฤ
c jak najszybciej$N$Nzamienia sprawdzanie sumy kontrolnej plikรณw prostym "czy ten plik jest tego samego rozmiaru jak ten na serwerze?" wiฤc jeลli pliki rรณลผniฤ
siฤ zawartoลciฤ
, ale sฤ
tego samego rozmiaru, NIE ZOSTANฤ przesลane ponownie$N$Nta opcja powinna zostaฤ wyลฤ
czona po zakoลczeniu przesyลania, i potem "przesลaฤ" te same pliki ponownie w celu weryfikacji\">turbo",
+
+ "cut_datechk": "przy wyลฤ
czonym przycisku turbo nic nie robi$N$Nleciutko zmniejsza czynnik โraz siฤ ลผyjeโ; dodatkowo sprawdza czy znaczniki modyfikacji pliku przesyลanego zgadzajฤ
siฤ z serwerem$N$Nteorytycznie powinno zลapaฤ to wiฤkszoลฤ niedokoลczonych / uszkodzonych plikรณw, lecz nie jest zamiennikiem wykonania ponownego sprawdzenia bez wลฤ
czonego trybu turbo\">spr-daty",
+
+ "cut_u2sz": "rozmiar (w MiB) kaลผdego kawaลka do przesลania; wiฤksze wartoลci szybciej latajฤ
po Atlantyku. Mniejsze wartoลci dziaลajฤ
lepiej na bardzo niestabilnych poลฤ
czeniach (neostrada?)",
+
+ "cut_flag": "zapewnia, ลผe tylko jedna karta przesyลa dane w danym momencie$N -- opcja musi byฤ wลฤ
czona na innych kartach $N - dotyczy tylko kart w tej samej domenie",
+
+ "cut_az": "przesyลa pliki w kolejnoลci alfabetycznej, zamiast rozpoczฤ
ฤ od najmniejszego pliku$N$Nkolejnoลฤ alfabetyczna moลผe uลatwiฤ oszacowanie, co mogลo pรณjลฤ nie tak na serwerze, lecz lekko spowalnia przesyลanie po ลwiatลowodzie lub w sieci lokalnej",
+
+ "cut_nag": "powiadomienie systemowe po zakoลczeniu przesyลania$N(tylko jeลli przeglฤ
darka lub karta nie jest aktywna)",
+ "cut_sfx": "sygnaล dลบwiฤkowy po zakoลczeniu przesyลania$N(tylko jeลli przeklฤ
darka lub karta nie jest aktywna)",
+
+ "cut_mt": "uลผywaj wielowฤ
tkowoลci, aby przyspieszyฤ obliczanie sumy kontrolnej plikรณw$N$Nuลผywa web workerรณw i wymaga$Nwiฤcej pamiฤci RAM (do 512 MiB)$N$Nprzyspiesza https o 30% i http 4,5-krotnie\">ww",
+
+ "cut_wasm": "uลผywaj WASM zamiast wbudowanego hashera przeglฤ
darki; zwiฤksza prฤdkoลฤ na Chrome'o-pochodnych przeglฤ
darkach, zwiฤkszajฤ
c zuลผycie procesora, ponadto wiele starszych wersji Chrome'a zawiera bลฤdy powodujฤ
ce zeลผarcie caลej pamiฤci RAM komputera i przymusowe zamkniฤcie przeglฤ
darki jeลผeli ta opcja jest wลฤ
czona\">wasm",
+
+ "cft_text": "tekst favicon (aby wyลฤ
czyฤ, usuล zawartoลฤ i przeลaduj stronฤ)",
+ "cft_fg": "kolor tekstu",
+ "cft_bg": "kolor tลa",
+
+ "cdt_lim": "maksymalna liczba plikรณw do pokazania na raz w folderze",
+ "cdt_ask": "przy przewijaniu w dรณล,$Nzapytaj co robiฤ,$Nzamiast wczytywaฤ kolejne pliki",
+ "cdt_hsort": "ile zasad sortowania (<code>,sorthref</code>) zawieraฤ w generowanych linkach multimediรณw. Wartoลฤ 0 sprawi, ลผe zasady sortowania zawarte w linkach multimediรณw przy otwarciu rรณwnieลผ bฤdฤ
ignorowane",
+
+ "tt_entree": "pokaลผ panel nawigacyjny (panel boczny z drzewem folderรณw)$NSkrรณt: B",
+ "tt_detree": "pokaลผ ลlad nawigacyjny$NSkrรณt: B",
+ "tt_visdir": "przewiล do wybranego folderu",
+ "tt_ftree": "przeลฤ
cz drzewo folderรณw / pliki tekstowe$NSkrรณt: V",
+ "tt_pdock": "pokaลผ foldery nadrzฤdne w przypiฤtym u gรณry panelu",
+ "tt_dynt": "rozszerzaj panel wraz z drzewem",
+ "tt_wrap": "zawijaj tekst",
+ "tt_hover": "pokazuj za dลugie linie po najechaniu kursorem$N( psuje przewijanie gdy $N kursor nie jest w lewym marginesie )",
+
+ "ml_pmode": "na koลcu folderu...",
+ "ml_btns": "komendy",
+ "ml_tcode": "transkoduj",
+ "ml_tcode2": "transkoduj do",
+ "ml_tint": "odcieล",
+ "ml_eq": "korektor dลบwiฤku (equalizer)",
+ "ml_drc": "kompresor zasiฤgu dynamiki",
+
+ "mt_loop": "pฤtla/powtarzaj jeden utwรณr\">๐",
+ "mt_one": "zatrzymaj po jednym utworze\">1๏ธโฃ",
+ "mt_shuf": "odtwarzaj losowo w kaลผdym folderze\">๐",
+ "mt_aplay": "autoodtwarzanie po klikniฤciu linku do tego serwera, zawierajฤ
cego identyfikator utworu$N$Nwyลฤ
czenie tej opcji zapobiegnie aktualizowaniu adresu strony podczas odtwarzania muzyki, aby zapobiec autoodtwarzaniu przy utracie ustawieล\">aโถ",
+ "mt_preload": "rozpocznij ลadowanie kolejnego utworu blisko koลca aktualnego w celu uzyskania odtwarzania bez przerw\">preload",
+ "mt_prescan": "przechodzi do nastฤpnego folderu przed zakoลczeniem ostatniego utworu,$Naby udobruchaฤ przeglฤ
darkฤ,$Nลผeby nie zatrzymaลa odtwarzania\">naw",
+ "mt_fullpre": "prรณbuj zbuforowaฤ caลy utwรณr;$Nโ
wลฤ
cz na niestabilnych poลฤ
czeniach,$Nโ wyลฤ
cz na wolnych poลฤ
czeniach\">peลnebuf",
+ "mt_fau": "nie zatrzymuj muzyki jeลli nastฤpna piosenka bฤdzie siฤ zbyt wolno buforowaฤ na telefonach (moลผe sprawiฤ, ลผe tagi bฤdฤ
siฤ niepoprawnie wyลwietlaฤ)\">โ๏ธ",
+ "mt_waves": "falisty pasek:$Npokazuj amplitudฤ dลบwiฤku w pasku utworu\">~s",
+ "mt_npclip": "pokaลผ przyciski kopiowania aktualnie odtwarzanego utworu\">/np",
+ "mt_m3u_c": "pokaลผ przyciski kopiowania$Nwybranych piosenek jako playlista m3u8\">๐ป",
+ "mt_octl": "integracja z systemem operacyjnym (przyciski multimedialne / informacje o utworze)\">os-int",
+ "mt_oseek": "zezwรณl na przewijanie utworu poprzez integracjฤ z systemem$N$Nuwaga: na niektรณrych urzฤ
dzeniach (iPhone'y),$Nzamienia przycisk nastฤpnej piosenki\">seek",
+ "mt_oscv": "pokaลผ okลadkฤ albumu w widoku systemu\">okลadka",
+ "mt_follow": "podฤ
ลผaj za odtwarzanym utworem przewijajฤ
c widok\">๐ฏ",
+ "mt_compact": "kompaktowe sterowanie\">โ",
+ "mt_uncache": "wyczyลฤ pamiฤฤ podrฤcznฤ
(sprรณbuj jeลli przeglฤ
darka$Nzachowaลa zepsutฤ
kopiฤ utworu, przez co nie odtwarza siฤ ona)\">uncache",
+ "mt_mloop": "odtwarzaj utwory w folderze w pฤtli\">๐ loop",
+ "mt_mnext": "wczytaj nastฤpny folder i kontynuuj\">๐ next",
+ "mt_mstop": "zatrzymaj odtwarzanie\">โธ stop",
+ "mt_cflac": "przekonwertuj format flac / wav na {0}\">flac",
+ "mt_caac": "przekonwertuj format aac / m4a na {0}\">aac",
+ "mt_coth": "przekonwertuj wszystkie inne formaty (nie bฤdฤ
ce mp3) na {0}\">oth",
+ "mt_c2opus": "najlepszy wybรณr dla komputerรณw, laptopรณw i urzฤ
dzeล z androidem\">opus",
+ "mt_c2owa": "opus-weba, dla iOS 17.5 i nowszych\">owa",
+ "mt_c2caf": "opus-caf, dla iOS 11 do 17\">caf",
+ "mt_c2mp3": "uลผywaj na bardzo starych urzฤ
dzeniach\">mp3",
+ "mt_c2ok": "cudownie, dobry wybรณr",
+ "mt_c2nd": "ten format nie jest rekomendowany dla twojego urzฤ
dzenia, ale nadal jest w porzฤ
dku",
+ "mt_c2ng": "wyglฤ
da na to, ลผe to urzฤ
dzenie nie wspiera tego formatu, lecz sprรณbujmy i tak",
+ "mt_xowa": "iOS zawiera bลฤdy uniemoลผliwiajฤ
ce odtwarzanie w tle uลผywajฤ
c tego formatu; wybierz caf lub mp3",
+ "mt_tint": "jasnoลฤ tลa (0-100) paska,$Naby zmniejszyฤ widocznoลฤ buforowania",
+ "mt_eq": "wลฤ
cza korektor dลบwiฤku (equalizer) i kontrolฤ wzmocnienia dลบwiฤku;$N$Nboost <code>0</code> = standardowa gลoลnoลฤ 100% (niezmodyfikowana)$N$Nwidth <code>1 </code> = standardowe stereo (niezmodyfikowane)$Nwidth <code>0.5</code> = 50% crossfeed lewo-prawo$Nwidth <code>0 </code> = mono$N$Nboost <code>-0.8</code> & width <code>10</code> = usuwanie wokalu :^)$N$Nwลฤ
czenie korektora sprawia, ลผe albumy bezprzerwowe sฤ
w peลni bez przerw, wiฤc jeลli jest to dla ciebie waลผne, zostaw wszystko na 0 (poza width = 1)",
+ "mt_drc": "wลฤ
cza kompresor zakresu dynamiki (normalizacja gลoลnoลci); wลฤ
cza rรณwnieลผ korektor w celu zbalansowania tego spaghetti, wiฤc ustaw wszystkie opcje korektora, oprรณcz 'width',na 0, jeลli go nie chcesz$N$Nobniลผa gลoลnoลฤ audio nad THRESHOLD (prรณg) dB; dla kaลผdego RATIO (wspรณลczynnika) dB, bฤdฤ
cego ponad THRESHOLDem jest 1 dB wyjลcia, wiฤc domyลlne wartoลci progu -24 i wspรณลczynnika 12 znaczฤ
, ลผe nigdy nie powinno byฤ gลoลniej niลผ -22 dB i bezpieczne jest zwiฤkszenie wzmocnienia korektora do 0.8, lub nawet 1.8 z ATK 0 i ogromnym RLS, jak 90 (dziaลa tylko na firefoxie, inne przeglฤ
darki majฤ
limit RLS 1)$N$N(na wikipedii tลumaczฤ
to duลผo lepiej)",
+
+ "mb_play": "odtwรณrz",
+ "mm_hashplay": "odtworzyฤ ten plik audio?",
+ "mm_m3u": "naciลnij Enter/OK
, aby odtworzyฤ\nnaciลnij ESC/Anuluj
, aby edytowaฤ",
+ "mp_breq": "wymagany jest Firefox 82+, Chrome 73+ lub iOS 15+",
+ "mm_bload": "wczytywanie...",
+ "mm_bconv": "konwertowanie do {0}, proszฤ czekaฤ...",
+ "mm_opusen": "ta przeglฤ
darka nie moลผe odtwarzaฤ plikรณw aac / m4a;\ntranskodowanie do formatu opus wลฤ
czone",
+ "mm_playerr": "odtwarzanie nie powiodลo siฤ: ",
+ "mm_eabrt": "Odtwarzanie zostaลo przerwane",
+ "mm_enet": "Poลฤ
czenie z internetem jest sลabe",
+ "mm_edec": "Ten plik wydaje siฤ uszkodzony??",
+ "mm_esupp": "Twoja przeglฤ
darka nie rozumie tego formatu audio",
+ "mm_eunk": "Nieznany bลฤ
d",
+ "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_e500": "Nie moลผna odtworzyฤ; bลฤ
d 500: Sprawdลบ logi serwera.",
+ "mm_e5xx": "Nie moลผna odtworzyฤ; bลฤ
d serwera",
+ "mm_nof": "nie znaleziono wiฤcej plikรณw audio",
+ "mm_prescan": "Szukanie kolejnego utworu...",
+ "mm_scank": "Znaleziono nastฤpnฤ
piosenkฤ:",
+ "mm_uncache": "wyczyszczono pamiฤฤ podrฤcznฤ
; wszystkie utwory zostanฤ
pobrane ponownie przy nastฤpnym odtworzeniu",
+ "mm_hnf": "ten utwรณr juลผ nie istnieje",
+
+ "im_hnf": "ten obraz juลผ nie istnieje",
+
+ "f_empty": 'ten folder jest pusty',
+ "f_chide": 'schowa kolumnฤ ยซ{0}ยป\n\nkolumny moลผna ponownie pokazaฤ w zakลadce ustwaieล',
+ "f_bigtxt": "ten plik waลผy {0} MiB -- na pewno pokazaฤ jako tekst?",
+ "f_bigtxt2": "odczytaฤ jedynie koniec pliku? wลฤ
czy rรณwnieลผ ลledzenie, pokazujฤ
c nowo-dodane linie tekstu w czasie rzeczywistym",
+ "fbd_more": '',
+ "fbd_all": '',
+ "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_partial": "Aby bezpiecznie pobraฤ plik, ktรณry aktualnie jest przesyลany, wybierz plik o tej samej nazwie, lecz bez rozszerzenia .PARTIAL
. ลปeby to zrobiฤ, naciลnij ANULUJ lub klawisz ESC.\n\nWciลniฤcie OK / Enter zignoruje to ostrzeลผenie i pobierze plik tymczasowy .PARTIAL
, ktรณry prawie z pewnoลciฤ
bฤdzie zepsuty",
+
+ "ft_paste": "wklej {0} elementรณw$NSkrรณt: ctrl-V",
+ "fr_eperm": 'nie moลผna zmieniฤ nazwy:\nnie posiadasz uprawnienia โmoveโ w tym folderze',
+ "fd_eperm": 'nie moลผna usunฤ
ฤ:\nnie posiadasz uprawnienia โdeleteโ w tym folderze',
+ "fc_eperm": 'nie moลผna wyciฤ
ฤ:\nnie posiadasz uprawnienia โmoveโ w tym folderze',
+ "fp_eperm": 'nie moลผna wkleiฤ:\nnie posiadasz uprawnienia โwriteโ w tym folderze',
+ "fr_emore": "wybierz przynajmniej jeden element do zmiany nazwy",
+ "fd_emore": "wybierz przynajmniej jeden element do usuniฤcia",
+ "fc_emore": "wybierz przynajmniej jeden element do wyciฤcia",
+ "fcp_emore": "wybierz przynajmniej jeden element do skopiowania",
+
+ "fs_sc": "udostฤpnij ten folder",
+ "fs_ss": "udostฤpnij zaznaczone pliki",
+ "fs_just1d": "nie moลผna wybraฤ wiฤcej niลผ jednego folderu,\nani mieszaฤ plikรณw i folderรณw w jednym zaznaczeniu",
+ "fs_abrt": "โ przerwij",
+ "fs_rand": "๐ฒ losuj nazwฤ",
+ "fs_go": "โ
stwรณrz udostฤpnienie",
+ "fs_name": "nazwa",
+ "fs_src": "ลบrรณdลo",
+ "fs_pwd": "hasลo",
+ "fs_exp": "wygaลniฤcie",
+ "fs_tmin": "min",
+ "fs_thrs": "godz.",
+ "fs_tdays": "dni",
+ "fs_never": "na zawsze",
+ "fs_pname": "opcjonalna nazwa linku; zostanie wylosowana jeลli pusta",
+ "fs_tsrc": "plik lub folder do udostฤpnienia",
+ "fs_ppwd": "hasลo (opcjonalnie)",
+ "fs_w8": "udostฤpnianie...",
+ "fs_ok": "naciลnij Enter/OK
, aby skopiowaฤ do schowka\nnaciลnij ESC/Anuluj
, aby zamknฤ
ฤ",
+
+ "frt_dec": "moลผe naprawiฤ niektรณre zepsute nazwy plikรณw\">dekoduj-url",
+ "frt_rst": "zresetuj zmodyfikowane nazwy plikรณw do oryginalnych\">โบ zresetuj",
+ "frt_abrt": "przerwij i zamknij to okno\">โ anuluj",
+ "frb_apply": "ZASTOSUJ ZMIANฤ NAZWY",
+ "fr_adv": "zmiana nazwy hurtowa / metadanych / wzorcem\">zaawansowane",
+ "fr_case": "rozrรณลผnianie wielkoลci liter w regex\">wlit",
+ "fr_win": "nazwy bezpieczne dla systemu Windows; zamienia symbole <>:"\\|?*
na japoลskie odpowiedniki\">win",
+ "fr_slash": "zamienia /
symbolem, ktรณry nie tworzy nowych folderรณw\">brak /",
+ "fr_re": "wzorzec wyszukiwania regex stosowany do oryginalnych nazw plikรณw; do grup przechwytywania moลผna siฤ odwoลaฤ w polu formatu poniลผej, np. <code>(1)</code> i <code>(2)</code> itd.",
+ "fr_fmt": "inspirowane programem foobar2000:$N<code>(title)</code> zostaje zamienione na tytuล utworu,$N<code>[(artist) - ](title)</code> pomija [tฤ
] czฤลฤ jeลli pole artysty jest puste$N<code>$lpad((tn),2,0)</code> wyrรณwnuje numer utworu do 2 cyfr (np. 01, 06, 09, 16)",
+ "fr_pdel": "usuล",
+ "fr_pnew": "zapisz jako",
+ "fr_pname": "podaj nazwฤ nowego szablonu",
+ "fr_aborted": "anulowano",
+ "fr_lold": "poprzednia nazwa",
+ "fr_lnew": "nowa nazwa",
+ "fr_tags": "znaczniki dla wybranych plikรณw (tylko do odczytu, w celach informacyjnych):",
+ "fr_busy": "zmienianie nazwy {0} plikรณw...\n\n{1}",
+ "fr_efail": "zmiana nazwy zakoลczona niepowodzeniem:\n",
+ "fr_nchg": "{0} nowych nazw zostaลo zmienionych przez opcje win
i/lub brak /
\n\nKontynuowaฤ ze zmienionymi nazwami?",
+
+ "fd_ok": "usuniฤto",
+ "fd_err": "usuwanie zakoลczone niepowodzeniem:\n",
+ "fd_none": "nie usuniฤto nic; usuniฤcie mogลo zostaฤ zablokowane przez konfiguracjฤ serwera (xbd)?",
+ "fd_busy": "usuwanie {0} elementรณw...\n\n{1}",
+ "fd_warn1": "USUNฤฤ {0} elementรณw?",
+ "fd_warn2": "OSTATNIA SZANSA! Tej operacji nie da siฤ cofnฤ
ฤ. Usunฤ
ฤ?",
+
+ "fc_ok": "wyciฤto {0} elementรณw",
+ "fc_warn": 'wyciฤto {0} elementรณw,\n\nlecz moลผna je wkleiฤ tylko w tej karcie\n(ze wzglฤdu na ogromnฤ
iloลฤ wybranych elementรณw)',
+
+ "fcc_ok": "skopiowano {0} elementรณw do schowka",
+ "fcc_warn": 'skopiowano {0} elementรณw,\n\nlecz moลผna je wkleiฤ tylko w tej karcie\n(ze wzglฤdu na ogromnฤ
iloลฤ wybranych elementรณw)',
+
+ "fp_apply": "zastosuj te nazwy",
+ "fp_ecut": "najpierw wytnij lub skopiuj pliki / foldery, aby je wkleiฤ / przenieลฤ\n\nuwaga: moลผna wycinaฤ / wklejaฤ pomiฤdzy rรณลผnymi kartami przeglฤ
darki",
+ "fp_ename": "Nie udaลo siฤ przenieลฤ {0} elementรณw, gdyลผ ich nazwy juลผ istniejฤ
w tym folderze. Nadaj im nowe nazwy poniลผej, bฤ
dลบ zostaw pole nazwy puste, aby je pominฤ
ฤ:",
+ "fcp_ename": "Nie udaลo siฤ przekopiowaฤ {0} elementรณw, gdyลผ ich nazwy juลผ istniejฤ
w tym folderze. Nadaj im nowe nazwy poniลผej, bฤ
dลบ zostaw pole nazwy puste, aby je pominฤ
ฤ:",
+ "fp_emore": "pozostaลo jeszcze kilka kolizji nazw plikรณw do poprawy",
+ "fp_ok": "przeniesiono",
+ "fcp_ok": "przekopiowano",
+ "fp_busy": "przenoszenie {0} elementรณw...\n\n{1}",
+ "fcp_busy": "kopiowanie {0} elementรณw...\n\n{1}",
+ "fp_abrt": "przerywanie...", //m
+ "fp_err": "nie udaลo siฤ przenieลฤ:\n",
+ "fcp_err": "nie udaลo siฤ skopiowaฤ:\n",
+ "fp_confirm": "przenieลฤ tutaj {0} elementy(รณw)?",
+ "fcp_confirm": "skopiowaฤ tutaj {0} elementy(รณw)?",
+ "fp_etab": 'nie udaลo siฤ odczytaฤ schowka z innej karty przeglฤ
darki',
+ "fp_name": "przesyลanie pliku z twojego urzฤ
dzenia. Nadaj nazwฤ:",
+ "fp_both_m": 'Enter
= Przenieล {0} pliki(รณw) z ยซ{1}ยป\nESC
= Przeลlij {2} pliki(รณw) z twojego urzฤ
dzenia',
+ "fcp_both_m": 'Enter
= Skopiuj {0} pliki(รณw) z ยซ{1}ยป\nESC
= Przeลlij {2} pliki(รณw) z twojego urzฤ
dzenia',
+ "fp_both_b": 'PrzenieลPrzeลlij',
+ "fcp_both_b": 'KopiujPrzeลlij',
+
+ "mk_noname": "wpisz nazwฤ do pola po lewej zanim to zrobisz :p",
+
+ "tv_load": "Wczytywanie pliku tekstowego:\n\n{0}\n\n{1}% (wczytano {2} z {3} MiB)",
+ "tv_xe1": "nie udaลo siฤ wczytaฤ pliku:\n\nbลฤ
d ",
+ "tv_xe2": "404, nie znaleziono pliku",
+ "tv_lst": "lista plikรณw tekstowych w",
+ "tvt_close": "powrรณฤ do widoku folderรณw$NSkrรณt: M (lub Esc)\">โ zamknij",
+ "tvt_dl": "pobierz ten plik$NHotkey: Y\">๐พ pobierz",
+ "tvt_prev": "pokaลผ poprzedni dokument$NSkrรณt: i\">โฌ poprzedni",
+ "tvt_next": "pokaลผ nastฤpny dokument$NSkrรณt: K\">โฌ nastฤpny",
+ "tvt_sel": "wybierz plik ( do wyciฤcia / skopiowania / usuniฤcia / itp. )$NSkrรณt: S\">wyb",
+ "tvt_edit": "otwรณrz plik w edytorze tekstu$NSkrรณt: E\">โ๏ธ edytuj",
+ "tvt_tail": "ลledลบ zmiany w pliku; pokazuj nowe linie w czasie rzeczywistym\">๐ก ลledลบ",
+ "tvt_wrap": "zawijaj tekst\">โต",
+ "tvt_atail": "utrzymuj widok na dole strony\">โ",
+ "tvt_ctail": "dekoduj kolory terminala (sekwencje sterujฤ
ce ANSI)\">๐",
+ "tvt_ntail": "limit przewijania (ile bajtรณw tekstu przechowywaฤ w pamiฤci)",
+
+ "m3u_add1": "dodano utwรณr do playlisty m3u",
+ "m3u_addn": "dodano {0} utwory(รณw) do playlisty m3u",
+ "m3u_clip": "skopiowano playlistฤ m3u do schowka\n\nutwรณrz",
+
+ "gt_vau": "nie pokazuj obrazu, odtwarzaj tylko dลบwiฤk\">๐ง",
+ "gt_msel": "wybierz pliki; kliknij plik z wciลniฤtym klawiszem CTRL, aby zastฤ
piฤ$N$N<em>gdy tryb jest aktywny, kliknij dwukrotnie na plik / folder, ลผeby go otworzyฤ</em>$N$NSkrรณt: S\">wybierz wiele",
+ "gt_crop": "kadruj miniaturki do ลrodka\">kadruj",
+ "gt_3x": "miniaturki w wysokiej rozdzielczoลci\">3x",
+ "gt_zoom": "przybliลผ",
+ "gt_chop": "przytnij",
+ "gt_sort": "sortuj wedลug",
+ "gt_name": "nazwa",
+ "gt_sz": "rozmiar",
+ "gt_ts": "data",
+ "gt_ext": "typ",
+ "gt_c1": "przycinaj wiฤkszฤ
czฤลฤ nazw plikรณw (pokazuj mniej)",
+ "gt_c2": "przycinaj mniejszฤ
czฤลฤ nazw plikรณw (pokazuj wiฤcej)",
+
+ "sm_w8": "wyszukiwanie...",
+ "sm_prev": "wyniki wyszukiwania poniลผej pochodzฤ
z poprzedniego zapytania:\n ",
+ "sl_close": "zamknij wyniki wyszukiwania",
+ "sl_hits": "pokazujฤ {0} wyniki(รณw)",
+ "sl_moar": "pokaลผ wiฤcej",
+
+ "s_sz": "rozmiar",
+ "s_dt": "data",
+ "s_rd": "ลcieลผka",
+ "s_fn": "nazwa",
+ "s_ta": "znaczniki",
+ "s_ua": "data przesลania",
+ "s_ad": "zaawansowane",
+ "s_s1": "min. rozmiar (MiB)",
+ "s_s2": "maks. rozmiar (MiB)",
+ "s_d1": "min. data iso8601",
+ "s_d2": "maks. data iso8601",
+ "s_u1": "przesลane po",
+ "s_u2": "i/lub przed",
+ "s_r1": "ลcieลผka zawiera (oddzielone spacjฤ
)",
+ "s_f1": "nazwa zawiera (odwrรณฤ za pomocฤ
-nope)",
+ "s_t1": "znaczniki zawierajฤ
(^=start, koniec=$)",
+ "s_a1": "dokลadne wลaลciwoลci metadanych",
+
+ "md_eshow": "nie moลผna wyลwietliฤ ",
+ "md_off": "[๐readme] wyลฤ
czone w [โ๏ธ] -- dokument ukryty",
+
+ "badreply": "Nie udaลo siฤ przeanalizowaฤ odpowiedzi serwera",
+
+ "xhr403": "403: Odmowa dostฤpu.\n\nSprรณbuj przeลadowaฤ stronฤ (F5), moลผliwe, ลผe ciฤ wylogowano",
+ "xhr0": "nieznany (byฤ moลผe utracono poลฤ
czenie z serwerem, lub jest on nieaktywny)",
+ "cf_ok": "przepraszamy, wลฤ
czyลa siฤ ochrona przed DD" + wah + "oS\n\nwszystko powinno wrรณciฤ do normy za okoลo 30 sekund\n\njeลli nic siฤ nie zmieni, naciลnij klawisz F5, aby przeลadowaฤ stronฤ",
+ "tl_xe1": "nie moลผna wyลwietliฤ podfolderรณw:\n\nbลฤ
d ",
+ "tl_xe2": "404: Nie znaleziono folderu",
+ "fl_xe1": "nie moลผna wyลwietliฤ plikรณw w folderze:\n\nbลฤ
d ",
+ "fl_xe2": "404: Nie znaleziono folderu",
+ "fd_xe1": "nie moลผna stworzyฤ podfolderu:\n\nbลฤ
d ",
+ "fd_xe2": "404: Nie znaleziono folderu nadrzฤdnego",
+ "fsm_xe1": "nie moลผna wysลaฤ wiadomoลci:\n\nbลฤ
d ",
+ "fsm_xe2": "404: Nie znaleziono folderu nadrzฤdnego",
+ "fu_xe1": "nie udaลo siฤ wczytaฤ listy unpost z serwera:\n\nbลฤ
d ",
+ "fu_xe2": "404: Nie znaleziono pliku??",
+
+ "fz_tar": "nieskompresowane archiwum gnu-tar (linux / mac)",
+ "fz_pax": "nieskompresowane archiwum tar w formacie pax (wolniejsze)",
+ "fz_targz": "gnu-tar z kompresjฤ
gzip poziomu 3.,$N$Nzazwyczaj bardzo wolne, uลผywaj nieskompresowanego tar",
+ "fz_tarxz": "gnu-tar z kompresjฤ
xz poziomu 3.$N$Nzazwyczaj bardzo wolne, uลผywaj nieksompresowanego tar",
+ "fz_zip8": "zip z nazwami plikรณw UTF-8 (moลผe dziaลaฤ nieprawidลowo na systemie Windows 7 i starszych)",
+ "fz_zipd": "zip z nazwami plikรณw cp437, dobre dla bardzo starego oprogramowania",
+ "fz_zipc": "cp437 z CRC32 obliczonym wczeลniej,$Ndla MS-DOS PKZIP v2.04g (paลบdziernik 1993)$N(przetwarzanie do pobrania trwa dลuลผej)",
+
+ "un_m1": "moลผna usunฤ
ฤ ostatnio przesลane pliki (lub przerwaฤ trwajฤ
ce) poniลผej",
+ "un_upd": "odลwieลผ",
+ "un_m4": "lub udostฤpnij pliki widoczne poniลผej:",
+ "un_ulist": "pokaลผ",
+ "un_ucopy": "kopiuj",
+ "un_flt": "filtruj (opcjonalnie): URL musi zawieraฤ",
+ "un_fclr": "wyczyลฤ kryteria filtrowania",
+ "un_derr": 'nie udaลo siฤ usunฤ
ฤ unpost:\n',
+ "un_f5": 'coล poszลo nie tak, sprรณbuj odลwieลผyฤ lub wciลnij F5',
+ "un_uf5": "przed przerwaniem przesyลania trzeba odลwieลผyฤ stronฤ (za pomocฤ
CTRL-R lub F5)",
+ "un_nou": 'ostrzeลผenie: serwer jest aktualnie zbyt obciฤ
ลผony, ลผeby pokazaฤ niedokoลczone przesลania; kliknij link "odลwieลผ" za chwilฤ',
+ "un_noc": 'ostrzeลผenie: unpost w peลni przesลanych plikรณw jest wyลฤ
czone/zabronione w konfiguracji serwera',
+ "un_max": "pokazujฤ pierwsze 2000 plikรณw (uลผyj filtrowania)",
+ "un_avail": "{0} ostatnio przesลanych elementรณw moลผe zostaฤ usuniฤtepliki: {0} ukoลczonych, {1} nie powiodลo siฤ, {2} w trakcie, {3} oczekujฤ cych
", + "u_ever": "podstawowe przesyลanie; up2k wymaga minimalnie przeglฤ darek:OK/Enter
, aby pominฤ
ฤ je (wypisane poniลผej);\nNaciลnij Anuluj/ESC
, by je przesลaฤ mimo to:\n\n',
+ "u_just1": '\nTa funkcja moลผe dziaลaฤ lepiej z wybranym jednym plikiem',
+ "u_ff_many": "na systemach Linux / MacOS / Android, ta iloลc plikรณw moลผe spowodowaฤ przymusowe zamkniฤcie przeglฤ
darki Firefox\nw takim przypadku, sprรณbuj ponownie (lub uลผyj Chrome'a).",
+ "u_up_life": "Ten przesyลany plik zostanie usuniฤty z serwera\n{0} po zakoลczeniu przesyลania",
+ "u_asku": 'przeลlij {0} pliki(รณw) do {1}
',
+ "u_unpt": "moลผna cofnฤ
ฤ / usunฤ
ฤ ten przesลany plik za pomocฤ
๐งฏ w lewym gรณrnym rogu",
+ "u_bigtab": 'zaraz pokaลผฤ {0} plikรณw\n\nta operacja moลผe zawiesiฤ twojฤ
przeglฤ
darkฤ, na pewno kontynuowaฤ?',
+ "u_scan": 'Skanowanie plikรณw...',
+ "u_dirstuck": 'iterator katalogรณw utknฤ
ล podczas prรณby dostฤpu poniลผszych {0} elementรณw, pominiฤto:',
+ "u_etadone": 'Ukoลczono ({0}, {1} plikรณw)',
+ "u_etaprep": '(przygotowywanie do przesลania)',
+ "u_hashdone": 'obliczono sumฤ kontrolnฤ
',
+ "u_hashing": 'obliczanie sumy kontrolnej',
+ "u_hs": 'nawiฤ
zywanie poลฤ
czenia...',
+ "u_started": "rozpoczฤto przesyลanie; zobacz w [๐]",
+ "u_dupdefer": "duplikat; zostanie przetworzony na koลcu",
+ "u_actx": "kliknij ten napis, aby zapobiec spadkowi F5
, aby odลwieลผyฤ stronฤww
w menu โ๏ธ ustawienia
F5
, aby odลwieลผyฤ stronฤ๐ฅ
(lekkiego interfejsu) w interfejsie przesyลaniaconnections-per-server
w about:config
",
+ "u_tu": 'UWAGA: tryb turbo wลฤ czony, klient moลผe nie wykryฤ i nie kontynuowaฤ niedokoลczonych przesลaล; patrz wskazรณwka przycisku turbo
', + "u_ts": 'UWAGA: tryb turbo wลฤ czony, wyniki wyszukiwania mogฤ byฤ niepoprawne; patrz wskazรณwka przycisku turbo
', + "u_turbo_c": "tryb turbo jest wyลฤ czony w konfiguracji serwera", + "u_turbo_g": "wyลฤ czanie trybu turbo, nie posiadasz dostฤpu\ndo listy katalogu w tym wolumenie", + "u_life_cfg": 'autousuwanie po min (lub godz.)', + "u_life_est": 'przesลany plik zostanie usuniฤty ---', + "u_life_max": 'ten folder wymaga\nmaks. czasu do usuniฤcia rรณwnego {0}', + "u_unp_ok": 'unpost jest dozwolony przez {0}', + "u_unp_ng": 'unpost NIE jest dozwolony', + "ue_ro": 'dostฤp tylko-do-odczytu\n\n', + "ue_nl": 'nie jesteล zalogowany', + "ue_la": 'zalogowano jako "{0}"', + "ue_sr": 'jesteล w trybie wyszukiwania\n\nprzeลฤ cz siฤ na tryb przesyลania, klikajฤ c lupฤ ๐ (obok przycisku Szukaj), i sprรณbuj ponownie', + "ue_ta": 'sprรณbuj przesลaฤ ponownie, wszystko powinno byฤ w porzฤ dku', + "ue_ab": "ten plik juลผ jest przesyลany do innego folderu, przesyลanie musi siฤ zakoลczyฤ, zanim bฤdzie mรณgล byฤ on przesลany gdzie indziej.\n\nMoลผna przerwaฤ pierwsze przesyลanie za pomocฤ ๐งฏ w lewym gรณrnym rogu", + "ur_1uo": "OK: Plik przesลany pomyลlnie", + "ur_auo": "OK: Wszystkie ({0}) pliki zostaลy przesลane pomyลlnie", + "ur_1so": "OK: Znaleziono plik na serwerze", + "ur_aso": "OK: Znaleziono wszystkie ({0}) pliki na serwerze", + "ur_1un": "Przesyลanie nie powiodลo siฤ", + "ur_aun": "Wszystkie ({0}) przesลania nie powiodลy siฤ", + "ur_1sn": "NIE znaleziono pliku na serwerze", + "ur_asn": "NIE znaleziono {0} plikรณw na serwerze", + "ur_um": "Zakoลczono;\n{0} przesลaล OK,\n{1} przesลaล nie powiodลo siฤ", + "ur_sm": "Zakoลczono;\nznaleziono {0} pliki(รณw),\nnie znaleziono {1} pliki(รณw) na serwerze", + + "lang_set": "odลwieลผ stronฤ (F5), aby zastosowaฤ zmianฤ.", + }, + "por": { + "tt": "Portuguรชs", + + "cols": { + "c": "botรตes de aรงรฃo", + "dur": "duraรงรฃo", + "q": "qualidade / bitrate", + "Ac": "codec de รกudio", + "Vc": "codec de vรญdeo", + "Fmt": "formato / contรชiner", + "Ahash": "checksum de รกudio", + "Vhash": "checksum de vรญdeo", + "Res": "resoluรงรฃo", + "T": "tipo de arquivo", + "aq": "qualidade / bitrate de รกudio", + "vq": "qualidade / bitrate de vรญdeo", + "pixfmt": "subamostragem / estrutura de pixel", + "resw": "resoluรงรฃo horizontal", + "resh": "resoluรงรฃo vertical", + "chs": "canais de รกudio", + "hz": "taxa de amostragem" + }, + + "hks": [ + [ + "diversos", + ["ESC", "fechar vรกrias coisas"], + + "gerenciador de arquivos", + ["G", "alternar entre visualizaรงรฃo de lista / grade"], + ["T", "alternar entre miniaturas / รญcones"], + ["โง A/D", "tamanho da miniatura"], + ["ctrl-K", "excluir selecionados"], + ["ctrl-X", "recortar seleรงรฃo para a รกrea de transferรชncia"], + ["ctrl-C", "copiar seleรงรฃo para a รกrea de transferรชncia"], + ["ctrl-V", "colar (mover/copiar) aqui"], + ["Y", "baixar selecionado"], + ["F2", "renomear selecionado"], + + "seleรงรฃo de lista de arquivos", + ["espaรงo", "alternar seleรงรฃo de arquivo"], + ["โ/โ", "mover cursor de seleรงรฃo"], + ["ctrl โ/โ", "mover cursor e visualizaรงรฃo"], + ["โง โ/โ", "selecionar arquivo anterior/prรณximo"], + ["ctrl-A", "selecionar todos os arquivos / pastas"], + ], [ + "navegaรงรฃo", + ["B", "alternar entre breadcrumbs / painel de navegaรงรฃo"], + ["I/K", "pasta anterior/prรณxima"], + ["M", "pasta pai (ou desexpandir a atual)"], + ["V", "alternar entre pastas / arquivos de texto no painel de navegaรงรฃo"], + ["A/D", "tamanho do painel de navegaรงรฃo"], + ], [ + "reprodutor de รกudio", + ["J/L", "mรบsica anterior/prรณxima"], + ["U/O", "pular 10 segundos para trรกs/frente"], + ["0..9", "pular para 0%..90%"], + ["P", "reproduzir/pausar (tambรฉm inicia)"], + ["S", "selecionar a mรบsica que estรก tocando"], + ["Y", "baixar mรบsica"], + ], [ + "visualizador de imagens", + ["J/L, โ/โ", "imagem anterior/prรณxima"], + ["Home/End", "primeira/รบltima imagem"], + ["F", "tela cheia"], + ["R", "girar no sentido horรกrio"], + ["โง R", "girar no sentido anti-horรกrio"], + ["S", "selecionar imagem"], + ["Y", "baixar imagem"], + ], [ + "reprodutor de vรญdeo", + ["U/O", "pular 10 segundos para trรกs/frente"], + ["P/K/Espaรงo", "reproduzir/pausar"], + ["C", "continuar reproduzindo o prรณximo"], + ["V", "loop"], + ["M", "mudo"], + ["[ e ]", "definir intervalo de loop"], + ], [ + "visualizador de arquivos de texto", + ["I/K", "arquivo anterior/prรณximo"], + ["M", "fechar arquivo de texto"], + ["E", "editar arquivo de texto"], + ["S", "selecionar arquivo (para recortar/copiar/renomear)"], + ] + ], + + "m_ok": "OK", + "m_ng": "Cancelar", + + "enable": "Ativar", + "danger": "PERIGO", + "clipped": "copiado para a รกrea de transferรชncia", + + "ht_s1": "segundo", + "ht_s2": "segundos", + "ht_m1": "minuto", + "ht_m2": "minutos", + "ht_h1": "hora", + "ht_h2": "horas", + "ht_d1": "dia", + "ht_d2": "dias", + "ht_and": " e ", + + "goh": "painel de controle", + "gop": 'pai anterior">anterior', + "gou": 'pasta pai">acima', + "gon": 'prรณxima pasta">prรณximo', + "logout": "Sair ", + "login": "Fazer login", + "access": " acesso", + "ot_close": "fechar submenu", + "ot_search": "procurar arquivos por atributos, caminho / nome, tags de mรบsica ou qualquer combinaรงรฃo deles$N$N<code>foo bar</code> = deve conter ambos ยซfooยป e ยซbarยป,$N<code>foo -bar</code> = deve conter ยซfooยป mas nรฃo ยซbarยป,$N<code>^yana .opus$</code> = comeรงar com ยซyanaยป e ser um arquivo ยซopusยป$N<code>"try unite"</code> = conter exatamente ยซtry uniteยป$N$No formato de data รฉ iso-8601, como$N<code>2009-12-31</code> ou <code>2020-09-12 23:30:00</code>", + "ot_unpost": "despublicar: excluir seus uploads recentes, ou abortar os que nรฃo foram concluรญdos", + "ot_bup": "bup: uploader bรกsico, atรฉ suporta netscape 4.0", + "ot_mkdir": "mkdir: criar um novo diretรณrio", + "ot_md": "new-md: criar um novo documento markdown", + "ot_msg": "msg: enviar uma mensagem para o log do servidor", + "ot_mp": "opรงรตes do reprodutor de mรญdia", + "ot_cfg": "opรงรตes de configuraรงรฃo", + "ot_u2i": 'up2k: fazer upload de arquivos (se vocรช tiver acesso de escrita) ou alternar para o modo de busca para ver se eles jรก existem em algum lugar no servidor$N$Nuploads sรฃo reiniciรกveis, multithread, e os carimbos de data/hora dos arquivos sรฃo preservados, mas usa mais CPU que [๐] (o uploader bรกsico)๐ปcopiar
depois)",
+ "wt_m3uc": "copiar playlist m3u para a รกrea de transferรชncia",
+ "wt_grid": "alternar entre visualizaรงรฃo de grade / lista$NHotkey: G",
+ "wt_prev": "faixa anterior$NHotkey: J",
+ "wt_play": "reproduzir / pausar$NHotkey: P",
+ "wt_next": "prรณxima faixa$NHotkey: L",
+
+ "ul_par": "uploads paralelos:",
+ "ut_rand": "randomizar nomes de arquivos",
+ "ut_u2ts": "copiar o carimbo de data/hora de รบltima modificaรงรฃo$Ndo seu sistema de arquivos para o servidor\">๐
",
+ "ut_ow": "substituir arquivos existentes no servidor?$N๐ก๏ธ: nunca (irรก gerar um novo nome de arquivo em vez disso)$N๐: substituir se o arquivo no servidor for mais antigo que o seu$Nโป๏ธ: sempre substituir se os arquivos forem diferentes",
+ "ut_mt": "continuar a fazer o hash de outros arquivos enquanto faz upload$N$Ntalvez desativar se sua CPU ou HDD for um gargalo",
+ "ut_ask": 'pedir confirmaรงรฃo antes do upload comeรงar">๐ญ',
+ "ut_pot": "melhorar a velocidade de upload em dispositivos lentos$Ntornando a UI menos complexa",
+ "ut_srch": "nรฃo fazer upload, em vez disso verificar se os arquivos jรก$N existem no servidor (irรก escanear todas as pastas que vocรช pode ler)",
+ "ut_par": "pausar uploads definindo para 0$N$naumentar se sua conexรฃo for lenta / alta latรชncia$N$nmanter em 1 em LAN ou se o HDD do servidor for um gargalo",
+ "ul_btn": "soltar arquivos / pastasEnter
= Arquivos (um ou mais)\nESC
= Uma pasta (incluindo subpastas)',
+ "u_nav_b": 'ArquivosUma pasta',
+
+ "cl_opts": "interruptores",
+ "cl_themes": "tema",
+ "cl_langs": "idioma",
+ "cl_ziptype": "download de pasta",
+ "cl_uopts": "interruptores up2k",
+ "cl_favico": "favicon",
+ "cl_bigdir": "grandes dirs",
+ "cl_hsort": "#sort",
+ "cl_keytype": "notaรงรฃo de tecla",
+ "cl_hiddenc": "colunas ocultas",
+ "cl_hidec": "ocultar",
+ "cl_reset": "resetar",
+ "cl_hpick": "toque nos cabeรงalhos das colunas para ocultรก-los na tabela abaixo",
+ "cl_hcancel": "ocultar coluna abortado",
+
+ "ct_grid": '็ฐ a grade',
+ "ct_ttips": 'โ โก โ">โน๏ธ dicas de ferramentas',
+ "ct_thumb": 'na visualizaรงรฃo de grade, alternar entre รญcones ou miniaturas$NHotkey: T">๐ผ๏ธ miniaturas',
+ "ct_csel": 'usar CTRL e SHIFT para seleรงรฃo de arquivo na visualizaรงรฃo de grade">sel',
+ "ct_ihop": 'quando o visualizador de imagens for fechado, rolar para o รบltimo arquivo visualizado">gโฎฏ',
+ "ct_dots": 'mostrar arquivos ocultos (se o servidor permitir)">dotfiles',
+ "ct_qdel": 'ao excluir arquivos, pedir confirmaรงรฃo apenas uma vez">qdel',
+ "ct_dir1st": 'ordenar pastas antes de arquivos">๐ primeiro',
+ "ct_nsort": 'ordem natural (para nomes de arquivos com dรญgitos iniciais)">nsort',
+ "ct_utc": 'mostrar todas as datas/horas em UTC">UTC',
+ "ct_readme": 'mostrar README.md nas listas de pastas">๐ readme',
+ "ct_idxh": 'mostrar index.html em vez de lista de pastas">htm',
+ "ct_sbars": 'mostrar barras de rolagem">โ',
+
+ "cut_umod": "se um arquivo jรก existe no servidor, atualizar o carimbo de data/hora de รบltima modificaรงรฃo do servidor para corresponder ao seu arquivo local (requer permissรตes de escrita+exclusรฃo)\">re๐
",
+
+ "cut_turbo": "o botรฃo yolo, vocรช provavelmente NรO quer habilitar isso:$N$Nuse isto se vocรช estava fazendo upload de uma enorme quantidade de arquivos e teve que reiniciar por algum motivo, e quer continuar o upload o mais rรกpido possรญvel$N$Nisto substitui a verificaรงรฃo de hash por uma simples "este arquivo tem o mesmo tamanho no servidor?" entรฃo se o conteรบdo do arquivo for diferente ele NรO serรก enviado$N$Nvocรช deve desativar isso quando o upload estiver concluรญdo, e entรฃo "enviar" os mesmos arquivos novamente para permitir que o cliente os verifique\">turbo",
+
+ "cut_datechk": "nรฃo tem efeito a menos que o botรฃo turbo esteja ativado$N$Nreduz o fator yolo por uma pequena quantidade; verifica se os carimbos de data/hora dos arquivos no servidor correspondem aos seus$N$ndeve teoricamente pegar a maioria dos uploads incompletos / corrompidos, mas nรฃo รฉ um substituto para fazer uma verificaรงรฃo com o turbo desativado depois\">date-chk",
+
+ "cut_u2sz": "tamanho (em MiB) de cada bloco de upload; valores grandes voam melhor pelo atlรขntico. Tente valores baixos em conexรตes muito nรฃo confiรกveis",
+
+ "cut_flag": "garantir que apenas uma aba esteja fazendo upload por vez $N -- outras abas devem ter isso ativado tambรฉm $N -- sรณ afeta abas no mesmo domรญnio",
+
+ "cut_az": "enviar arquivos em ordem alfabรฉtica, em vez de o menor primeiro$N$na ordem alfabรฉtica pode tornar mais fรกcil de verificar se algo deu errado no servidor, mas torna o upload um pouco mais lento em fibra / LAN",
+
+ "cut_nag": "notificaรงรฃo do SO quando o upload for concluรญdo$N(somente se o navegador ou aba nรฃo estiver ativo)",
+ "cut_sfx": "alerta audรญvel quando o upload for concluรญdo$N(somente se o navegador ou aba nรฃo estiver ativo)",
+
+ "cut_mt": "usar multithreading para acelerar o hash de arquivos$N$nisto usa web-workers e requer$Nmais RAM (atรฉ 512 MiB extras)$N$ntorna https 30% mais rรกpido, http 4.5x mais rรกpido\">mt",
+
+ "cut_wasm": "usar wasm em vez do hasher embutido do navegador; melhora a velocidade em navegadores baseados em chrome mas aumenta a carga da CPU, e muitas versรตes antigas do chrome tรชm bugs que fazem o navegador consumir toda a RAM e travar se isso for ativado\">wasm",
+
+ "cft_text": "texto do favicon (deixe em branco e atualize para desativar)",
+ "cft_fg": "cor do primeiro plano",
+ "cft_bg": "cor do fundo",
+
+ "cdt_lim": "nรบmero mรกximo de arquivos para mostrar em uma pasta",
+ "cdt_ask": "ao rolar para o final,$nem vez de carregar mais arquivos,$nperguntar o que fazer",
+ "cdt_hsort": "quantas regras de ordenaรงรฃo (<code>,sorthref</code>) incluir em URLs de mรญdia. Definir isso para 0 tambรฉm ignorarรก as regras de ordenaรงรฃo incluรญdas em links de mรญdia quando vocรช clicar neles",
+
+ "tt_entree": "mostrar painel de navegaรงรฃo (รกrvore de diretรณrios)$NHotkey: B",
+ "tt_detree": "mostrar breadcrumbs$NHotkey: B",
+ "tt_visdir": "rolar para a pasta selecionada",
+ "tt_ftree": "alternar entre รกrvore de pastas / arquivos de texto$NHotkey: V",
+ "tt_pdock": "mostrar pastas pai em um painel acoplado no topo",
+ "tt_dynt": "crescer automaticamente ร medida que a รกrvore se expande",
+ "tt_wrap": "quebra de linha",
+ "tt_hover": "revelar linhas transbordando ao passar o mouse$N( quebra a rolagem a menos que o cursor do mouse $N esteja na margem esquerda )",
+
+ "ml_pmode": "ao final da pasta...",
+ "ml_btns": "comandos",
+ "ml_tcode": "transcodificar",
+ "ml_tcode2": "transcodificar para",
+ "ml_tint": "matiz",
+ "ml_eq": "equalizador de รกudio",
+ "ml_drc": "compressor de faixa dinรขmica",
+
+ "mt_loop": "loop/repetir uma mรบsica\">๐",
+ "mt_one": "parar depois de uma mรบsica\">1๏ธโฃ",
+ "mt_shuf": "embaralhar as mรบsicas em cada pasta\">๐",
+ "mt_aplay": "reproduzir automaticamente se houver um ID de mรบsica no link que vocรช clicou para acessar o servidor$N$ndesativar isso tambรฉm impedirรก que a URL da pรกgina seja atualizada com IDs de mรบsica ao tocar mรบsica, para evitar a reproduรงรฃo automรกtica se essas configuraรงรตes forem perdidas mas a URL permanecer\">aโถ",
+ "mt_preload": "comeรงar a carregar a prรณxima mรบsica perto do final para uma reproduรงรฃo sem interrupรงรตes\">preload",
+ "mt_prescan": "ir para a prรณxima pasta antes que a รบltima mรบsica$Ntermine, mantendo o navegador feliz$Npara que ele nรฃo pare a reproduรงรฃo\">nav",
+ "mt_fullpre": "tentar prรฉ-carregar a mรบsica inteira;$Nโ
ativar em conexรตes nรฃo confiรกveis,$Nโ desativar em conexรตes lentas provavelmente\">full",
+ "mt_fau": "em telefones, evitar que a mรบsica pare se a prรณxima mรบsica nรฃo prรฉ-carregar rรกpido o suficiente (pode fazer as tags aparecerem com falhas)\">โ๏ธ",
+ "mt_waves": "barra de busca de forma de onda:$Nmostrar amplitude de รกudio no scrubber\">~s",
+ "mt_npclip": "mostrar botรตes para copiar a mรบsica que estรก tocando para a รกrea de transferรชncia\">/np",
+ "mt_m3u_c": "mostrar botรตes para copiar as$Nmรบsicas selecionadas como entradas de playlist m3u8 para a รกrea de transferรชncia\">๐ป",
+ "mt_octl": "integraรงรฃo com o SO (atalhos de mรญdia / osd)\">os-ctl",
+ "mt_oseek": "permitir busca atravรฉs da integraรงรฃo com o SO$N$nnota: em alguns dispositivos (iPhones),$nisto substitui o botรฃo de prรณxima mรบsica\">seek",
+ "mt_oscv": "mostrar capa do รกlbum no osd\">art",
+ "mt_follow": "manter a faixa que estรก tocando rolando ร vista\">๐ฏ",
+ "mt_compact": "controles compactos\">โ",
+ "mt_uncache": "limpar cache (tente isso se seu navegador armazenou em cache$Numa cรณpia quebrada de uma mรบsica e se recusa a tocar)\">uncache",
+ "mt_mloop": "loop na pasta aberta\">๐ loop",
+ "mt_mnext": "carregar a prรณxima pasta e continuar\">๐ prรณximo",
+ "mt_mstop": "parar reproduรงรฃo\">โธ parar",
+ "mt_cflac": "converter flac / wav para {0}\">flac",
+ "mt_caac": "converter aac / m4a para {0}\">aac",
+ "mt_coth": "converter todos os outros (nรฃo mp3) para {0}\">oth",
+ "mt_c2opus": "melhor escolha para desktops, laptops, android\">opus",
+ "mt_c2owa": "opus-weba, para iOS 17.5 e mais recentes\">owa",
+ "mt_c2caf": "opus-caf, para iOS 11 a 17\">caf",
+ "mt_c2mp3": "use isso em dispositivos muito antigos\">mp3",
+ "mt_c2flac": "melhor qualidade de som, mas downloads enormes\">flac",
+ "mt_c2wav": "reproduรงรฃo nรฃo comprimida (ainda maior)\">wav",
+ "mt_c2ok": "legal, boa escolha",
+ "mt_c2nd": "esse nรฃo รฉ o formato de saรญda recomendado para o seu dispositivo, mas tudo bem",
+ "mt_c2ng": "seu dispositivo nรฃo parece suportar este formato de saรญda, mas vamos tentar mesmo assim",
+ "mt_xowa": "existem bugs no iOS que impedem a reproduรงรฃo em segundo plano usando este formato; por favor, use caf ou mp3 em vez disso",
+ "mt_tint": "nรญvel de fundo (0-100) na barra de busca$Npara tornar o buffer menos distrativo",
+ "mt_eq": "ativa o equalizador e o controle de ganho;$N$nimpulsรฃo <code>0</code> = volume padrรฃo de 100% (nรฃo modificado)$N$nlargura <code>1 </code> = estรฉreo padrรฃo (nรฃo modificado)$nlargura <code>0.5</code> = 50% de crossfeed esquerda-direita$nlargura <code>0 </code> = mono$N$nimpulsรฃo <code>-0.8</code> & largura <code>10</code> = remoรงรฃo de vocal :^)$N$natvar o equalizador torna os รกlbuns sem interrupรงรตes totalmente sem interrupรงรตes, entรฃo deixe-o ligado com todos os valores em zero (exceto largura = 1) se vocรช se importa com isso",
+ "mt_drc": "ativa o compressor de faixa dinรขmica (nivelador de volume / brickwaller); tambรฉm ativarรก o EQ para equilibrar o spaghetti, entรฃo defina todos os campos EQ exceto 'width' para 0 se vocรช nรฃo quiser$N$nabaixa o volume do รกudio acima do THRESHOLD dB; para cada RATIO dB apรณs o THRESHOLD hรก 1 dB de saรญda, entรฃo os valores padrรฃo de tresh -24 e ratio 12 significam que nunca deve ficar mais alto que -22 dB e รฉ seguro aumentar o impulso do equalizador para 0.8, ou atรฉ 1.8 com ATK 0 e um enorme RLS como 90 (sรณ funciona no firefox; RLS รฉ no mรกximo 1 em outros navegadores)$N$n(veja a wikipedia, eles explicam muito melhor)",
+
+ "mb_play": "reproduzir",
+ "mm_hashplay": "reproduzir este arquivo de รกudio?",
+ "mm_m3u": "pressione Enter/OK
para Reproduzir\npressione ESC/Cancelar
para Editar",
+ "mp_breq": "precisa do firefox 82+ ou chrome 73+ ou iOS 15+",
+ "mm_bload": "carregando...",
+ "mm_bconv": "convertendo para {0}, por favor, espere...",
+ "mm_opusen": "seu navegador nรฃo pode reproduzir arquivos aac / m4a;\na transcodificaรงรฃo para opus agora estรก ativada",
+ "mm_playerr": "reproduรงรฃo falhou: ",
+ "mm_eabrt": "A tentativa de reproduรงรฃo foi cancelada",
+ "mm_enet": "Sua conexรฃo de internet estรก instรกvel",
+ "mm_edec": "Este arquivo estรก supostamente corrompido??",
+ "mm_esupp": "Seu navegador nรฃo entende este formato de รกudio",
+ "mm_eunk": "Erro Desconhecido",
+ "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_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_nof": "nรฃo encontrando mais arquivos de รกudio por perto",
+ "mm_prescan": "Procurando mรบsica para tocar a seguir...",
+ "mm_scank": "Encontrei a prรณxima mรบsica:",
+ "mm_uncache": "cache limpo; todas as mรบsicas serรฃo baixadas novamente na prรณxima reproduรงรฃo",
+ "mm_hnf": "essa mรบsica nรฃo existe mais",
+
+ "im_hnf": "essa imagem nรฃo existe mais",
+
+ "f_empty": 'esta pasta estรก vazia',
+ "f_chide": 'isso irรก ocultar a coluna ยซ{0}ยป\n\nvocรช pode reexibir as colunas na aba de configuraรงรตes',
+ "f_bigtxt": "este arquivo tem {0} MiB de tamanho -- realmente ver como texto?",
+ "f_bigtxt2": "ver apenas o final do arquivo em vez disso? isso tambรฉm ativarรก o acompanhamento/tailing, mostrando linhas de texto recรฉm-adicionadas em tempo real",
+ "fbd_more": '',
+ "fbd_all": '',
+ "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_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 .PARTIAL
. Por favor, pressione CANCELAR ou Escape para fazer isso.\n\nPressionar OK / Enter irรก ignorar este aviso e continuar baixando o arquivo temporรกrio .PARTIAL
, o que quase certamente lhe darรก dados corrompidos.",
+
+ "ft_paste": "colar {0} itens$NHotkey: ctrl-V",
+ "fr_eperm": 'nรฃo รฉ possรญvel renomear:\nvocรช nรฃo tem permissรฃo de โmoverโ nesta pasta',
+ "fd_eperm": 'nรฃo รฉ possรญvel excluir:\nvocรช nรฃo tem permissรฃo de โexcluirโ nesta pasta',
+ "fc_eperm": 'nรฃo รฉ possรญvel recortar:\nvocรช nรฃo tem permissรฃo de โmoverโ nesta pasta',
+ "fp_eperm": 'nรฃo รฉ possรญvel colar:\nvocรช nรฃo tem permissรฃo de โescreverโ nesta pasta',
+ "fr_emore": "selecione pelo menos um item para renomear",
+ "fd_emore": "selecione pelo menos um item para excluir",
+ "fc_emore": "selecione pelo menos um item para recortar",
+ "fcp_emore": "selecione pelo menos um item para copiar para a รกrea de transferรชncia",
+
+ "fs_sc": "compartilhar a pasta em que vocรช estรก",
+ "fs_ss": "compartilhar os arquivos selecionados",
+ "fs_just1d": "vocรช nรฃo pode selecionar mais de uma pasta,\nou misturar arquivos e pastas em uma seleรงรฃo",
+ "fs_abrt": "โ abortar",
+ "fs_rand": "๐ฒ nome aleatรณrio",
+ "fs_go": "โ
criar compartilhamento",
+ "fs_name": "nome",
+ "fs_src": "fonte",
+ "fs_pwd": "senha",
+ "fs_exp": "expira",
+ "fs_tmin": "min",
+ "fs_thrs": "horas",
+ "fs_tdays": "dias",
+ "fs_never": "eterno",
+ "fs_pname": "nome do link opcional; serรก aleatรณrio se em branco",
+ "fs_tsrc": "o arquivo ou pasta a ser compartilhado",
+ "fs_ppwd": "senha opcional",
+ "fs_w8": "criando compartilhamento...",
+ "fs_ok": "pressione Enter/OK
para Copiar para a รrea de Transferรชncia\npressione ESC/Cancelar
para Fechar",
+
+ "frt_dec": "pode consertar alguns casos de nomes de arquivos quebrados\">url-decode",
+ "frt_rst": "resetar nomes de arquivos modificados de volta para os originais\">โบ resetar",
+ "frt_abrt": "abortar e fechar esta janela\">โ cancelar",
+ "frb_apply": "APLICAR RENOMEAรรO",
+ "fr_adv": "renomeaรงรฃo em lote / metadados / padrรฃo\">avanรงado",
+ "fr_case": "regex sensรญvel a maiรบsculas e minรบsculas\">case",
+ "fr_win": "nomes seguros para windows; substituir <>:"\\|?*
por caracteres japoneses de largura total\">win",
+ "fr_slash": "substituir /
por um caractere que nรฃo cause a criaรงรฃo de novas pastas\">no /",
+ "fr_re": "padrรฃo de busca regex para aplicar aos nomes de arquivos originais; grupos de captura podem ser referenciados no campo de formato abaixo como <code>(1)</code> e <code>(2)</code> e assim por diante",
+ "fr_fmt": "inspirado por foobar2000:$N<code>(tรญtulo)</code> รฉ substituรญdo pelo tรญtulo da mรบsica,$N<code>[(artista) - ](tรญtulo)</code> pula esta parte se o artista estiver em branco$N<code>$lpad((tn),2,0)</code> preenche o nรบmero da faixa com 2 dรญgitos",
+ "fr_pdel": "excluir",
+ "fr_pnew": "salvar como",
+ "fr_pname": "forneรงa um nome para seu novo preset",
+ "fr_aborted": "abortado",
+ "fr_lold": "nome antigo",
+ "fr_lnew": "novo nome",
+ "fr_tags": "tags para os arquivos selecionados (somente leitura, apenas para referรชncia):",
+ "fr_busy": "renomeando {0} itens...\n\n{1}",
+ "fr_efail": "renomeaรงรฃo falhou:\n",
+ "fr_nchg": "{0} dos novos nomes foram alterados devido a win
e/ou no /
\n\nOK para continuar com estes novos nomes alterados?",
+
+ "fd_ok": "exclusรฃo OK",
+ "fd_err": "exclusรฃo falhou:\n",
+ "fd_none": "nada foi excluรญdo; talvez bloqueado pela configuraรงรฃo do servidor (xbd)?",
+ "fd_busy": "excluindo {0} itens...\n\n{1}",
+ "fd_warn1": "EXCLUIR estes {0} itens?",
+ "fd_warn2": "รltima chance! Nรฃo hรก como desfazer. Excluir?",
+
+ "fc_ok": "recortar {0} itens",
+ "fc_warn": 'recortar {0} itens\n\nmas: apenas esta aba do navegador pode colรก-los\n(jรก que a seleรงรฃo รฉ tรฃo absolutamente massiva)',
+
+ "fcc_ok": "copiado {0} itens para a รกrea de transferรชncia",
+ "fcc_warn": 'copiado {0} itens para a รกrea de transferรชncia\n\nmas: apenas esta aba do navegador pode colรก-los\n(jรก que a seleรงรฃo รฉ tรฃo absolutamente massiva)',
+
+ "fp_apply": "usar estes nomes",
+ "fp_ecut": "primeiro recorte ou copie alguns arquivos / pastas para colar / mover\n\nnota: vocรช pode recortar / colar entre abas diferentes do navegador",
+ "fp_ename": "{0} itens nรฃo podem ser movidos para cรก porque os nomes jรก estรฃo em uso. Dรช a eles novos nomes abaixo para continuar, ou deixe o nome em branco para pular:",
+ "fcp_ename": "{0} itens nรฃo podem ser copiados para cรก porque os nomes jรก estรฃo em uso. Dรช a eles novos nomes abaixo para continuar, ou deixe o nome em branco para pular:",
+ "fp_emore": "ainda hรก algumas colisรตes de nome de arquivo para consertar",
+ "fp_ok": "movimento OK",
+ "fcp_ok": "cรณpia OK",
+ "fp_busy": "movendo {0} itens...\n\n{1}",
+ "fcp_busy": "copiando {0} itens...\n\n{1}",
+ "fp_abrt": "abortando...",
+ "fp_err": "movimento falhou:\n",
+ "fcp_err": "cรณpia falhou:\n",
+ "fp_confirm": "mover estes {0} itens para cรก?",
+ "fcp_confirm": "copiar estes {0} itens para cรก?",
+ "fp_etab": 'falha ao ler a รกrea de transferรชncia de outra aba do navegador',
+ "fp_name": "enviando um arquivo do seu dispositivo. Dรช-lhe um nome:",
+ "fp_both_m": 'Enter
= Mover {0} arquivos de ยซ{1}ยป\nESC
= Enviar {2} arquivos do seu dispositivo',
+ "fcp_both_m": 'Enter
= Copiar {0} arquivos de ยซ{1}ยป\nESC
= Enviar {2} arquivos do seu dispositivo',
+ "fp_both_b": 'MoverEnviar',
+ "fcp_both_b": 'CopiarEnviar',
+
+ "mk_noname": "digite um nome no campo de texto ร esquerda antes de fazer isso :p",
+
+ "tv_load": "Carregando documento de texto:\n\n{0}\n\n{1}% ({2} de {3} MiB carregados)",
+ "tv_xe1": "nรฃo foi possรญvel carregar o arquivo de texto:\n\nerro ",
+ "tv_xe2": "404, arquivo nรฃo encontrado",
+ "tv_lst": "lista de arquivos de texto em",
+ "tvt_close": "voltar para a visualizaรงรฃo da pasta$NHotkey: M (ou Esc)\">โ fechar",
+ "tvt_dl": "baixar este arquivo$NHotkey: Y\">๐พ baixar",
+ "tvt_prev": "mostrar documento anterior$NHotkey: i\">โฌ anterior",
+ "tvt_next": "mostrar prรณximo documento$NHotkey: K\">โฌ prรณximo",
+ "tvt_sel": "selecionar arquivo ( para recortar / copiar / excluir / ... )$NHotkey: S\">sel",
+ "tvt_edit": "abrir arquivo no editor de texto$NHotkey: E\">โ๏ธ editar",
+ "tvt_tail": "monitorar arquivo para alteraรงรตes; mostrar novas linhas em tempo real\">๐ก seguir",
+ "tvt_wrap": "quebra de linha\">โต",
+ "tvt_atail": "fixar rolagem no final da pรกgina\">โ",
+ "tvt_ctail": "decodificar cores do terminal (cรณdigos de escape ansi)\">๐",
+ "tvt_ntail": "limite de rolagem para trรกs (quantos bytes de texto manter carregados)",
+
+ "m3u_add1": "mรบsica adicionada ร playlist m3u",
+ "m3u_addn": "{0} mรบsicas adicionadas ร playlist m3u",
+ "m3u_clip": "playlist m3u agora copiada para a รกrea de transferรชncia\n\nvocรช deve criar um novo arquivo de texto chamado something.m3u e colar a playlist nesse documento; isso a tornarรก reproduzรญvel",
+
+ "gt_vau": "nรฃo mostrar vรญdeos, apenas tocar o รกudio\">๐ง",
+ "gt_msel": "ativar seleรงรฃo de arquivo; ctrl-clique em um arquivo para substituir$N$n<em>quando ativo: clique duas vezes em um arquivo / pasta para abri-lo&>t;/em>$N$nHotkey: S\">multisseleรงรฃo",
+ "gt_crop": "cortar miniaturas ao centro\">cortar",
+ "gt_3x": "miniaturas de alta resoluรงรฃo\">3x",
+ "gt_zoom": "zoom",
+ "gt_chop": "picar",
+ "gt_sort": "ordenar por",
+ "gt_name": "nome",
+ "gt_sz": "tamanho",
+ "gt_ts": "data",
+ "gt_ext": "tipo",
+ "gt_c1": "truncar nomes de arquivos mais (mostrar menos)",
+ "gt_c2": "truncar nomes de arquivos menos (mostrar mais)",
+
+ "sm_w8": "buscando...",
+ "sm_prev": "os resultados da busca abaixo sรฃo de uma consulta anterior:\n ",
+ "sl_close": "fechar resultados da busca",
+ "sl_hits": "mostrando {0} resultados",
+ "sl_moar": "carregar mais",
+
+ "s_sz": "tamanho",
+ "s_dt": "data",
+ "s_rd": "caminho",
+ "s_fn": "nome",
+ "s_ta": "tags",
+ "s_ua": "up@",
+ "s_ad": "adv.",
+ "s_s1": "MiB mรญnimo",
+ "s_s2": "MiB mรกximo",
+ "s_d1": "iso8601 min.",
+ "s_d2": "iso8601 max.",
+ "s_u1": "enviado depois de",
+ "s_u2": "e/ou antes de",
+ "s_r1": "caminho contรฉm (separado por espaรงo)",
+ "s_f1": "nome contรฉm (negar com -nope)",
+ "s_t1": "tags contรฉm (^=inรญcio, fim=$)",
+ "s_a1": "propriedades de metadados especรญficas",
+
+ "md_eshow": "nรฃo รฉ possรญvel renderizar ",
+ "md_off": "[๐readme] desativado em [โ๏ธ] -- documento oculto",
+
+ "badreply": "Falha ao analisar a resposta do servidor",
+
+ "xhr403": "403: Acesso negado\n\ntente pressionar F5, talvez vocรช tenha saรญdo da conta",
+ "xhr0": "desconhecido (provavelmente perdeu a conexรฃo com o servidor, ou o servidor estรก offline)",
+ "cf_ok": "desculpe por isso -- a proteรงรฃo DD" + "oS foi ativada\n\nas coisas devem ser retomadas em cerca de 30 segundos\n\nse nada acontecer, pressione F5 para recarregar a pรกgina",
+ "tl_xe1": "nรฃo foi possรญvel listar as subpastas:\n\nerro ",
+ "tl_xe2": "404: Pasta nรฃo encontrada",
+ "fl_xe1": "nรฃo foi possรญvel listar os arquivos na pasta:\n\nerro ",
+ "fl_xe2": "404: Pasta nรฃo encontrada",
+ "fd_xe1": "nรฃo foi possรญvel criar a subpasta:\n\nerro ",
+ "fd_xe2": "404: Pasta pai nรฃo encontrada",
+ "fsm_xe1": "nรฃo foi possรญvel enviar a mensagem:\n\nerro ",
+ "fsm_xe2": "404: Pasta pai nรฃo encontrada",
+ "fu_xe1": "falha ao carregar a lista de despublicaรงรฃo do servidor:\n\nerro ",
+ "fu_xe2": "404: Arquivo nรฃo encontrado??",
+
+ "fz_tar": "arquivo gnu-tar nรฃo comprimido (linux / mac)",
+ "fz_pax": "tar de formato pax nรฃo comprimido (mais lento)",
+ "fz_targz": "gnu-tar com compressรฃo gzip nรญvel 3$N$nisto รฉ geralmente muito lento, entรฃo$nuse tar nรฃo comprimido em vez disso",
+ "fz_tarxz": "gnu-tar com compressรฃo xz nรญvel 1$N$nisto รฉ geralmente muito lento, entรฃo$nuse tar nรฃo comprimido em vez disso",
+ "fz_zip8": "zip com nomes de arquivos utf8 (pode ser instรกvel no windows 7 e mais antigos)",
+ "fz_zipd": "zip com nomes de arquivos cp437 tradicionais, para software realmente antigo",
+ "fz_zipc": "cp437 com crc32 calculado antecipadamente,$npara MS-DOS PKZIP v2.04g (outubro de 1993)$n(leva mais tempo para processar antes que o download possa comeรงar)",
+
+ "un_m1": "vocรช pode excluir seus uploads recentes (ou abortar os que nรฃo foram concluรญdos) abaixo",
+ "un_upd": "atualizar",
+ "un_m4": "ou compartilhar os arquivos visรญveis abaixo:",
+ "un_ulist": "mostrar",
+ "un_ucopy": "copiar",
+ "un_flt": "filtro opcional: a URL deve conter",
+ "un_fclr": "limpar filtro",
+ "un_derr": 'a exclusรฃo da despublicaรงรฃo falhou:\n',
+ "un_f5": 'algo quebrou, por favor, tente uma atualizaรงรฃo ou pressione F5',
+ "un_uf5": "desculpe, mas vocรช tem que atualizar a pรกgina (por exemplo, pressionando F5 ou CTRL-R) antes que este upload possa ser abortado",
+ "un_nou": "aviso: o servidor estรก muito ocupado para mostrar uploads incompletos; clique no link \"atualizar\" em um momento",
+ "un_noc": "aviso: a despublicaรงรฃo de arquivos totalmente enviados nรฃo estรก ativada/permitida na configuraรงรฃo do servidor",
+ "un_max": "mostrando os primeiros 2000 arquivos (use o filtro)",
+ "un_avail": "{0} uploads recentes podem ser excluรญdosarquivos: {0} concluรญdos, {1} falhados, {2} ocupados, {3} na fila
", + "u_ever": "este รฉ o uploader bรกsico; up2k precisa de pelo menosOK/Enter
para PULAR os seguintes arquivos,\nPressione Cancelar/ESC
para NรO excluir, e ENVIAR esses tambรฉm:\n\n',
+ "u_just1": '\nTalvez funcione melhor se vocรช selecionar apenas um arquivo',
+ "u_ff_many": "se vocรช estiver usando Linux / MacOS / Android, entรฃo essa quantidade de arquivos pode travar o Firefox!\nse isso acontecer, por favor, tente novamente (ou use o Chrome).",
+ "u_up_life": "Este upload serรก excluรญdo do servidor\n{0} apรณs ser concluรญdo",
+ "u_asku": 'enviar estes {0} arquivos para {1}
',
+ "u_unpt": "vocรช pode desfazer / excluir este upload usando o ๐งฏ no canto superior esquerdo",
+ "u_bigtab": 'prestes a mostrar {0} arquivos\n\nisto pode travar seu navegador, tem certeza?',
+ "u_scan": 'Escaneando arquivos...',
+ "u_dirstuck": 'o iterador de diretรณrio travou ao tentar acessar os seguintes {0} itens; irรก pular:',
+ "u_etadone": 'Concluรญdo ({0}, {1} arquivos)',
+ "u_etaprep": '(preparando para enviar)',
+ "u_hashdone": 'hash concluรญdo',
+ "u_hashing": 'hash',
+ "u_hs": 'handshaking...',
+ "u_started": "os arquivos estรฃo sendo enviados agora; veja [๐]",
+ "u_dupdefer": "duplicado; serรก processado apรณs todos os outros arquivos",
+ "u_actx": "clique neste texto para evitar perda deF5
para atualizar a pรกginamt
nas โ๏ธ configuraรงรตes
F5
para atualizar a pรกgina๐ฅ
(batata) na UI de uploadconnections-per-server
em about:config
",
+ "u_tu": 'AVISO: turbo ativado, o cliente pode nรฃo detectar e retomar uploads incompletos; veja a dica de ferramenta do botรฃo turbo
', + "u_ts": 'AVISO: turbo ativado, os resultados da busca podem estar incorretos; veja a dica de ferramenta do botรฃo turbo
', + "u_turbo_c": "o turbo estรก desativado na configuraรงรฃo do servidor", + "u_turbo_g": "desativando o turbo porque vocรช nรฃo tem\n privilรฉgios de listagem de diretรณrio neste volume", + "u_life_cfg": 'excluir automaticamente depois de min (ou horas)', + "u_life_est": 'o upload serรก excluรญdo ---', + "u_life_max": 'esta pasta impรตe um\n tempo de vida mรกximo de {0}', + "u_unp_ok": 'a despublicaรงรฃo รฉ permitida para {0}', + "u_unp_ng": 'a despublicaรงรฃo NรO serรก permitida', + "ue_ro": 'seu acesso a esta pasta รฉ Somente Leitura\n\n', + "ue_nl": 'vocรช nรฃo estรก logado no momento', + "ue_la": 'vocรช estรก logado no momento como "{0}"', + "ue_sr": 'vocรช estรก no modo de busca de arquivos no momento\n\nmude para o modo de upload clicando na lupa ๐ (ao lado do grande botรฃo BUSCAR), e tente enviar novamente\n\ndesculpe', + "ue_ta": 'tente enviar novamente, deve funcionar agora', + "ue_ab": "este arquivo jรก estรก sendo enviado para outra pasta, e esse upload deve ser concluรญdo antes que o arquivo possa ser enviado para outro lugar.\n\nVocรช pode abortar e esquecer o upload inicial usando o ๐งฏ no canto superior esquerdo", + "ur_1uo": "OK: Arquivo enviado com sucesso", + "ur_auo": "OK: Todos os {0} arquivos enviados com sucesso", + "ur_1so": "OK: Arquivo encontrado no servidor", + "ur_aso": "OK: Todos os {0} arquivos encontrados no servidor", + "ur_1un": "O upload falhou, desculpe", + "ur_aun": "Todos os {0} uploads falharam, desculpe", + "ur_1sn": "O arquivo NรO foi encontrado no servidor", + "ur_asn": "Os {0} arquivos NรO foram encontrados no servidor", + "ur_um": "Concluรญdo;\n{0} uploads OK,\n{1} uploads falharam, desculpe", + "ur_sm": "Concluรญdo;\n{0} arquivos encontrados no servidor,\n{1} arquivos NรO encontrados no servidor", + + "lang_set": "atualizar para a mudanรงa ter efeito?" + }, "rus": { "tt": "ะ ัััะบะธะน", @@ -5780,6 +8954,7 @@ var Ls = { "gou": 'ัะพะดะธัะตะปััะบะฐั ะฟะฐะฟะบะฐ">ะฒะฒะตัั ', "gon": 'ัะปะตะดัััะฐั ะฟะฐะฟะบะฐ">ัะปะตะด', "logout": "ะัะนัะธ ", + "login": "ะะพะนัะธ", //m "access": " ะดะพัััะฟ", "ot_close": "ะทะฐะบัััั ะฟะพะดะผะตะฝั", "ot_search": "ะธัะบะฐัั ัะฐะนะปั ะฟะพ ะฐััะธะฑััะฐะผ, ะฟััะธ / ะธะผะตะฝะธ, ะผัะทัะบะฐะปัะฝัะผ ัะตะณะฐะผ ะธะปะธ ะปัะฑะพะน ะดััะณะพะน ะบะพะผะฑะธะฝะฐัะธะธ ะธะท ัะปะตะดัััะธั ะบะพะฝััััะบัะธะน$N$N<code>foo bar</code> = ะพะฑัะทะฐะฝะพ ัะพะดะตัะถะฐัั ยซfooยป ะ ยซbarยป,$N<code>foo -bar</code> = ะพะฑัะทะฐะฝะพ ัะพะดะตัะถะฐัั ยซfooยป, ะฝะพ ะฝะต ยซbarยป,$N<code>^yana .opus$</code> = ะฝะฐัะธะฝะฐะตััั ั ยซyanaยป ะธ ะธะผะตะตั ัะฐััะธัะตะฝะธะต ยซopusยป$N<code>"try unite"</code> = ัะพะดะตัะถะธั ะธะผะตะฝะฝะพ ยซtry uniteยป$N$Nัะพัะผะฐั ะฒัะตะผะตะฝะธ ะทะฐะดะฐัััั ะฟะพ ััะฐะฝะดะฐััั iso-8601, ะฝะฐะฟัะธะผะตั$N<code>2009-12-31</code> ะธะปะธ <code>2020-09-12 23:30:00</code>", @@ -5966,9 +9141,9 @@ var Ls = { "mt_mloop": "ะฟะพะฒัะพัััั ััะตะบะธ ะฒ ะฟะฐะฟะบะต\">๐ ัะธะบะป", "mt_mnext": "ะทะฐะณััะทะธัั ัะปะตะดััััั ะฟะฐะฟะบั ะธ ะฟัะพะดะพะปะถะธัั ะฒ ะฝะตะน\">๐ ัะปะตะด.", "mt_mstop": "ะฟัะธะพััะฐะฝะพะฒะธัั ะฒะพัะฟัะพะธะทะฒะตะดะตะฝะธะต\">โธ ััะพะฟ", - "mt_cflac": "ะบะพะฝะฒะตััะธัะพะฒะฐัั flac / wav ะฒ opus\">flac", - "mt_caac": "ะบะพะฝะฒะตััะธัะพะฒะฐัั aac / m4a ะฒ opus\">aac", - "mt_coth": "ะบะพะฝะฒะตััะธัะพะฒะฐัั ะฒัั ะพััะฐะปัะฝะพะต (ะบัะพะผะต mp3) ะฒ opus\">ะดั.", + "mt_cflac": "ะบะพะฝะฒะตััะธัะพะฒะฐัั flac / wav ะฒ {0}\">flac", + "mt_caac": "ะบะพะฝะฒะตััะธัะพะฒะฐัั aac / m4a ะฒ {0}\">aac", + "mt_coth": "ะบะพะฝะฒะตััะธัะพะฒะฐัั ะฒัั ะพััะฐะปัะฝะพะต (ะบัะพะผะต mp3) ะฒ {0}\">ะดั.", "mt_c2opus": "ะปัััะธะน ะฒะฐัะธะฐะฝั ะดะปั ะบะพะผะฟัััะตัะพะฒ ะธ ััััะพะนััะฒ ะฝะฐ Android\">opus", "mt_c2owa": "opus-weba, ะดะปั iOS 17.5 ะธ ะฒััะต\">owa", "mt_c2caf": "opus-caf, ะดะปั iOS 11-17\">caf", @@ -6048,7 +9223,7 @@ var Ls = { "fs_tsrc": "ะฟััั ะบ ัะฐะนะปั ะธะปะธ ะฟะฐะฟะบะต, ะบะพัะพััะผะธ ะฝัะถะฝะพ ะฟะพะดะตะปะธัััั", "fs_ppwd": "ะฟะฐัะพะปั (ะฝะตะพะฑัะทะฐัะตะปัะฝะพ)", "fs_w8": "ัะพะทะดะฐั ะดะพัััะฟ...", - "fs_ok": "ะฝะฐะถะผะธัะตEnter/OK
, ััะพะฑั ัะบะพะฟะธัะพะฒะฐัั\nะฝะฐะถะผะธัะต ESC/Cancel
, ััะพะฑั ะทะฐะบัััั",
+ "fs_ok": "ะฝะฐะถะผะธัะต Enter/OK
, ััะพะฑั ัะบะพะฟะธัะพะฒะฐัั\nะฝะฐะถะผะธัะต ESC/ะัะผะตะฝะฐ
, ััะพะฑั ะทะฐะบัััั",
"frt_dec": "ะผะพะถะตั ะธัะฟัะฐะฒะธัั ะฝะตะบะพัะพััะต ัะปััะฐะธ ั ะฝะตะบะพััะตะบัะฝัะผะธ ะธะผะตะฝะฐะผะธ ัะฐะนะปะพะฒ\">ะดะตะบะพะดะธัะพะฒะฐัั url",
"frt_rst": "ัะฑัะพัะธัั ะธะทะผะตะฝัะฝะฝัะต ะธะผะตะฝะฐ ะพะฑัะฐัะฝะพ ะบ ะพัะธะณะธะฝะฐะปัะฝัะผ\">โบ ัะฑัะพั",
@@ -6093,6 +9268,7 @@ var Ls = {
"fcp_ok": "ััะฟะตัะฝะพ ัะบะพะฟะธัะพะฒะฐะฝะพ",
"fp_busy": "ะฟะตัะตะผะตัะฐั {0} ัะฐะนะปะพะฒ...\n\n{1}",
"fcp_busy": "ะบะพะฟะธััั {0} ัะฐะนะปะพะฒ...\n\n{1}",
+ "fp_abrt": "ะฟัะตััะฒะฐะฝะธะต...", //m
"fp_err": "ะพัะธะฑะบะฐ ะฟะตัะตะผะตัะตะฝะธั:\n",
"fcp_err": "ะพัะธะฑะบะฐ ะบะพะฟะธัะพะฒะฐะฝะธั:\n",
"fp_confirm": "ะฟะตัะตะผะตััะธัั ััะธ {0} ัะฐะนะปะพะฒ ััะดะฐ?",
@@ -6409,6 +9585,7 @@ var Ls = {
"gou": 'carpeta de nivel superior">subir',
"gon": 'siguiente carpeta">siguiente',
"logout": "Cerrar sesiรณn ",
+ "login": "Iniciar sesiรณn", //m
"access": " acceso",
"ot_close": "cerrar submenรบ",
"ot_search": "buscar archivos por atributos, ruta / nombre, etiquetas de mรบsica, o cualquier combinaciรณn$N$N<code>foo bar</code> = debe contener ยซfooยป y ยซbarยป,$N<code>foo -bar</code> = debe contener ยซfooยป pero no ยซbarยป,$N<code>^yana .opus$</code> = empieza con ยซyanaยป y es un archivo ยซopusยป$N<code>"try unite"</code> = contiene exactamente ยซtry uniteยป$N$Nel formato de fecha es iso-8601, como$N<code>2009-12-31</code> o <code>2020-09-12 23:30:00</code>",
@@ -6594,9 +9771,9 @@ var Ls = {
"mt_mloop": 'repetir la carpeta actual">๐ bucle',
"mt_mnext": 'cargar la siguiente carpeta y continuar">๐ sig',
"mt_mstop": 'detener reproducciรณn">โธ parar',
- "mt_cflac": 'convertir flac / wav a opus">flac',
- "mt_caac": 'convertir aac / m4a a opus">aac',
- "mt_coth": 'convertir todos los demรกs (no mp3) a opus">oth',
+ "mt_cflac": 'convertir flac / wav a {0}">flac',
+ "mt_caac": 'convertir aac / m4a a {0}">aac',
+ "mt_coth": 'convertir todos los demรกs (no mp3) a {0}">oth',
"mt_c2opus": 'la mejor opciรณn para ordenadores, portรกtiles, android">opus',
"mt_c2owa": 'opus-weba, para iOS 17.5 y superior">owa',
"mt_c2caf": 'opus-caf, para iOS 11 a 17">caf',
@@ -6721,6 +9898,7 @@ var Ls = {
"fcp_ok": "copia correcta",
"fp_busy": "moviendo {0} elementos...\n\n{1}",
"fcp_busy": "copiando {0} elementos...\n\n{1}",
+ "fp_abrt": "cancelando...", //m
"fp_err": "fallo al mover:\n",
"fcp_err": "fallo al copiar:\n",
"fp_confirm": "ยฟmover estos {0} elementos aquรญ?",
@@ -8297,6 +11475,7 @@ var Ls = {
"gou": 'ะฑะฐััะบัะฒััะบะฐ ะฟะฐะฟะบะฐ">ะฒะณะพัั',
"gon": 'ะฝะฐัััะฟะฝะฐ ะฟะฐะฟะบะฐ">ะดะฐะปั',
"logout": "ะะธะนัะธ ",
+ "login": "ัะฒัะนัะธ", //m
"access": " ะดะพัััะฟ",
"ot_close": "ะทะฐะบัะธัะธ ะฟัะดะผะตะฝั",
"ot_search": "ะฟะพััะบ ัะฐะนะปัะฒ ะทะฐ ะฐััะธะฑััะฐะผะธ, ัะปัั
ะพะผ / ัะผะตะฝะตะผ, ะผัะทะธัะฝะธะผะธ ัะตะณะฐะผะธ, ะฐะฑะพ ะฑัะดั-ัะบะพั ะบะพะผะฑัะฝะฐัััั$N$N<code>foo bar</code> = ะผะฐั ะผัััะธัะธ ยซfooยป ั ยซbarยป,$N<code>foo -bar</code> = ะผะฐั ะผัััะธัะธ ยซfooยป, ะฐะปะต ะฝะต ยซbarยป,$N<code>^yana .opus$</code> = ะฟะพัะธะฝะฐัะธัั ะท ยซyanaยป ั ะฑััะธ ัะฐะนะปะพะผ ยซopusยป$N<code>"try unite"</code> = ะผัััะธัะธ ัะพัะฝะพ ยซtry uniteยป$N$Nัะพัะผะฐั ะดะฐัะธ - iso-8601, ะฝะฐะฟัะธะบะปะฐะด$N<code>2009-12-31</code> ะฐะฑะพ <code>2020-09-12 23:30:00</code>",
@@ -8483,9 +11662,9 @@ var Ls = {
"mt_mloop": "ะทะฐัะธะบะปะธัะธ ะฒัะดะบัะธัั ะฟะฐะฟะบั\">๐ loop",
"mt_mnext": "ะทะฐะฒะฐะฝัะฐะถะธัะธ ะฝะฐัััะฟะฝั ะฟะฐะฟะบั ั ะฟัะพะดะพะฒะถะธัะธ\">๐ next",
"mt_mstop": "ะทัะฟะธะฝะธัะธ ะฒัะดัะฒะพัะตะฝะฝั\">โธ stop",
- "mt_cflac": "ะบะพะฝะฒะตัััะฒะฐัะธ flac / wav ะฒ opus\">flac",
- "mt_caac": "ะบะพะฝะฒะตัััะฒะฐัะธ aac / m4a ะฒ opus\">aac",
- "mt_coth": "ะบะพะฝะฒะตัััะฒะฐัะธ ะฒัั ัะฝัั (ะฝะต mp3) ะฒ opus\">oth",
+ "mt_cflac": "ะบะพะฝะฒะตัััะฒะฐัะธ flac / wav ะฒ {0}\">flac",
+ "mt_caac": "ะบะพะฝะฒะตัััะฒะฐัะธ aac / m4a ะฒ {0}\">aac",
+ "mt_coth": "ะบะพะฝะฒะตัััะฒะฐัะธ ะฒัั ัะฝัั (ะฝะต mp3) ะฒ {0}\">oth",
"mt_c2opus": "ะฝะฐะนะบัะฐัะธะน ะฒะธะฑัั ะดะปั ัะพะฑะพัะธั
ััะพะปัะฒ, ะฝะพััะฑัะบัะฒ, android\">opus",
"mt_c2owa": "opus-weba, ะดะปั iOS 17.5 ั ะฝะพะฒััะธั
\">owa",
"mt_c2caf": "opus-caf, ะดะปั iOS 11 ะดะพ 17\">caf",
@@ -8502,7 +11681,7 @@ var Ls = {
"mb_play": "ะฒัะดัะฒะพัะธัะธ",
"mm_hashplay": "ะฒัะดัะฒะพัะธัะธ ัะตะน ะฐัะดัะพ ัะฐะนะป?",
- "mm_m3u": "ะฝะฐัะธัะฝััั Enter/OK
ะดะปั ะฒัะดัะฒะพัะตะฝะฝั\nะฝะฐัะธัะฝััั ESC/Cancel
ะดะปั ัะตะดะฐะณัะฒะฐะฝะฝั",
+ "mm_m3u": "ะฝะฐัะธัะฝััั Enter/ะะฐัะฐะทะด
ะดะปั ะฒัะดัะฒะพัะตะฝะฝั\nะฝะฐัะธัะฝััั ESC/ะกะบะฐััะฒะฐัะธ
ะดะปั ัะตะดะฐะณัะฒะฐะฝะฝั",
"mp_breq": "ะฟะพัััะฑะตะฝ firefox 82+ ะฐะฑะพ chrome 73+ ะฐะฑะพ iOS 15+",
"mm_bload": "ะทะฐัะฐะท ะทะฐะฒะฐะฝัะฐะถัััััั...",
"mm_bconv": "ะบะพะฝะฒะตัััััััั ะฒ {0}, ะฑัะดั ะปะฐัะบะฐ, ะทะฐัะตะบะฐะนัะต...",
@@ -8535,7 +11714,7 @@ var Ls = {
"f_dls": 'ะฟะพัะธะปะฐะฝะฝั ะฝะฐ ัะฐะนะปะธ ะฒ ะฟะพัะพัะฝัะน ะฟะฐะฟัั ะฑัะปะธ\nะทะผัะฝะตะฝั ะฝะฐ ะฟะพัะธะปะฐะฝะฝั ะดะปั ะทะฐะฒะฐะฝัะฐะถะตะฝะฝั',
- "f_partial": "ะฉะพะฑ ะฑะตะทะฟะตัะฝะพ ะทะฐะฒะฐะฝัะฐะถะธัะธ ัะฐะนะป, ัะบะธะน ะทะฐัะฐะท ะทะฐะฒะฐะฝัะฐะถัััััั, ะฑัะดั ะปะฐัะบะฐ, ะบะปะฐัะฝััั ะฝะฐ ัะฐะนะป, ัะบะธะน ะผะฐั ัะฐะบะต ัะฐะผะต ัะผ'ั, ะฐะปะต ะฑะตะท ัะพะทัะธัะตะฝะฝั .PARTIAL
. ะัะดั ะปะฐัะบะฐ, ะฝะฐัะธัะฝััั CANCEL ะฐะฑะพ Escape, ัะพะฑ ะทัะพะฑะธัะธ ัะต.\n\nะะฐัะธัะฝะตะฝะฝั OK / Enter ะฟัะพัะณะฝะพััั ัะต ะฟะพะฟะตัะตะดะถะตะฝะฝั ั ะฟัะพะดะพะฒะถะธัั ะทะฐะฒะฐะฝัะฐะถะตะฝะฝั .PARTIAL
ัะพะฑะพัะพะณะพ ัะฐะนะปั ะทะฐะผัััั ััะพะณะพ, ัะพ ะผะฐะนะถะต ะฝะฐะฟะตะฒะฝะพ ะดะฐััั ะฒะฐะผ ะฟะพัะบะพะดะถะตะฝั ะดะฐะฝั.",
+ "f_partial": "ะฉะพะฑ ะฑะตะทะฟะตัะฝะพ ะทะฐะฒะฐะฝัะฐะถะธัะธ ัะฐะนะป, ัะบะธะน ะทะฐัะฐะท ะทะฐะฒะฐะฝัะฐะถัััััั, ะฑัะดั ะปะฐัะบะฐ, ะบะปะฐัะฝััั ะฝะฐ ัะฐะนะป, ัะบะธะน ะผะฐั ัะฐะบะต ัะฐะผะต ัะผ'ั, ะฐะปะต ะฑะตะท ัะพะทัะธัะตะฝะฝั .PARTIAL
. ะัะดั ะปะฐัะบะฐ, ะฝะฐัะธัะฝััั ะกะบะฐััะฒะฐัะธ ะฐะฑะพ Escape, ัะพะฑ ะทัะพะฑะธัะธ ัะต.\n\nะะฐัะธัะฝะตะฝะฝั ะะฐัะฐะทะด / Enter ะฟัะพัะณะฝะพััั ัะต ะฟะพะฟะตัะตะดะถะตะฝะฝั ั ะฟัะพะดะพะฒะถะธัั ะทะฐะฒะฐะฝัะฐะถะตะฝะฝั .PARTIAL
ัะพะฑะพัะพะณะพ ัะฐะนะปั ะทะฐะผัััั ััะพะณะพ, ัะพ ะผะฐะนะถะต ะฝะฐะฟะตะฒะฝะพ ะดะฐััั ะฒะฐะผ ะฟะพัะบะพะดะถะตะฝั ะดะฐะฝั.",
"ft_paste": "ะฒััะฐะฒะธัะธ {0} ะตะปะตะผะตะฝััะฒ$Nะะฐัััะฐ ะบะปะฐะฒััะฐ: ctrl-V",
"fr_eperm": 'ะฝะต ะผะพะถั ะฟะตัะตะนะผะตะฝัะฒะฐัะธ:\nั ะฒะฐั ะฝะตะผะฐั ะดะพะทะฒะพะปั โะฟะตัะตะผััะตะฝะฝัโ ะฒ ััะน ะฟะฐะฟัั',
@@ -8565,7 +11744,7 @@ var Ls = {
"fs_tsrc": "ัะฐะนะป ะฐะฑะพ ะฟะฐะฟะบะฐ ะดะปั ัะฟัะปัะฝะพะณะพ ะดะพัััะฟั",
"fs_ppwd": "ะฝะตะพะฑะพะฒ'ัะทะบะพะฒะธะน ะฟะฐัะพะปั",
"fs_w8": "ััะฒะพัะตะฝะฝั ัะฟัะปัะฝะพะณะพ ะดะพัััะฟั...",
- "fs_ok": "ะฝะฐัะธัะฝััั Enter/OK
ะดะปั ะบะพะฟััะฒะฐะฝะฝั ะดะพ ะฑััะตัะฐ\nะฝะฐัะธัะฝััั ESC/Cancel
ะดะปั ะทะฐะบัะธััั",
+ "fs_ok": "ะฝะฐัะธัะฝััั Enter/ะะฐัะฐะทะด
ะดะปั ะบะพะฟััะฒะฐะฝะฝั ะดะพ ะฑััะตัะฐ\nะฝะฐัะธัะฝััั ESC/ะกะบะฐััะฒะฐัะธ
ะดะปั ะทะฐะบัะธััั",
"frt_dec": "ะผะพะถะต ะฒะธะฟัะฐะฒะธัะธ ะดะตัะบั ะฒะธะฟะฐะดะบะธ ะฟะพัะบะพะดะถะตะฝะธั
ัะผะตะฝ ัะฐะนะปัะฒ\">url-decode",
"frt_rst": "ัะบะธะฝััะธ ะทะผัะฝะตะฝั ัะผะตะฝะฐ ัะฐะนะปัะฒ ะฝะฐะทะฐะด ะดะพ ะพัะธะณัะฝะฐะปัะฝะธั
\">โบ reset",
@@ -8610,6 +11789,7 @@ var Ls = {
"fcp_ok": "ะบะพะฟััะฒะฐะฝะฝั OK",
"fp_busy": "ะฟะตัะตะผััะตะฝะฝั {0} ะตะปะตะผะตะฝััะฒ...\n\n{1}",
"fcp_busy": "ะบะพะฟััะฒะฐะฝะฝั {0} ะตะปะตะผะตะฝััะฒ...\n\n{1}",
+ "fp_abrt": "ะฟะตัะตัะธะฒะฐะฝะฝั...", //m
"fp_err": "ะฟะตัะตะผััะตะฝะฝั ะฝะตะฒะดะฐะปะต:\n",
"fcp_err": "ะบะพะฟััะฒะฐะฝะฝั ะฝะตะฒะดะฐะปะต:\n",
"fp_confirm": "ะฟะตัะตะผัััะธัะธ ัั {0} ะตะปะตะผะตะฝัะธ ััะดะธ?",
@@ -8754,7 +11934,7 @@ var Ls = {
"u_enoow": "ะฟะตัะตะทะฐะฟะธั ะฝะต ะฟัะฐััะฒะฐัะธะผะต ััั; ะฟะพัััะฑะตะฝ ะดะพะทะฒัะป ะฝะฐ ะฒะธะดะฐะปะตะฝะฝั",
"u_badf": 'ะฆั {0} ัะฐะนะปะธ (ะท {1} ะทะฐะณะฐะปัะฝะธั
) ะฑัะปะธ ะฟัะพะฟััะตะฝั, ะผะพะถะปะธะฒะพ, ัะตัะตะท ะดะพะทะฒะพะปะธ ัะฐะนะปะพะฒะพั ัะธััะตะผะธ:\n\n',
"u_blankf": 'ะฆั {0} ัะฐะนะปะธ (ะท {1} ะทะฐะณะฐะปัะฝะธั
) ะฟะพัะพะถะฝั; ะฒัะต ะพะดะฝะพ ะทะฐะฒะฐะฝัะฐะถะธัะธ ัั
?\n\n',
- "u_applef": 'ะฆั {0} ัะฐะนะปะธ (ะท {1} ะทะฐะณะฐะปัะฝะธั
), ะนะผะพะฒััะฝะพ, ะฝะตะฑะฐะถะฐะฝั;\nะะฐัะธัะฝััั OK/Enter
ัะพะฑ ะะ ะะะฃะกะขะะขะ ะฝะฐัััะฟะฝั ัะฐะนะปะธ,\nะะฐัะธัะฝััั Cancel/ESC
ัะพะฑ ะะ ะฒะธะบะปััะฐัะธ, ั ะะะะะะขะะะะขะ ัั
ัะฐะบะพะถ:\n\n',
+ "u_applef": 'ะฆั {0} ัะฐะนะปะธ (ะท {1} ะทะฐะณะฐะปัะฝะธั
), ะนะผะพะฒััะฝะพ, ะฝะตะฑะฐะถะฐะฝั;\nะะฐัะธัะฝััั ะะฐัะฐะทะด/Enter
ัะพะฑ ะะ ะะะฃะกะขะะขะ ะฝะฐัััะฟะฝั ัะฐะนะปะธ,\nะะฐัะธัะฝััั ะกะบะฐััะฒะฐัะธ/ESC
ัะพะฑ ะะ ะฒะธะบะปััะฐัะธ, ั ะะะะะะขะะะะขะ ัั
ัะฐะบะพะถ:\n\n',
"u_just1": '\nะะพะถะปะธะฒะพ, ัะต ัะฟัะฐััั ะบัะฐัะต, ัะบัะพ ะฒะธ ะฒะธะฑะตัะตัะต ะปะธัะต ะพะดะธะฝ ัะฐะนะป',
"u_ff_many": "ัะบัะพ ะฒะธ ะฒะธะบะพัะธััะพะฒัััะต Linux / MacOS / Android, ัะพ ัะฐะบะฐ ะบัะปัะบัััั ัะฐะนะปัะฒ ะผะพะถะต ะทะฐะฒััะธัะธ Firefox!\nัะบัะพ ัะต ััะฐะฝะตัััั, ะฑัะดั ะปะฐัะบะฐ, ัะฟัะพะฑัะนัะต ะทะฝะพะฒั (ะฐะฑะพ ะฒะธะบะพัะธััะพะฒัะนัะต Chrome).",
"u_up_life": "ะฆะต ะทะฐะฒะฐะฝัะฐะถะตะฝะฝั ะฑัะดะต ะฒะธะดะฐะปะตะฝะพ ะท ัะตัะฒะตัะฐ\n{0} ะฟััะปั ะนะพะณะพ ะทะฐะฒะตััะตะฝะฝั",
@@ -8820,7 +12000,7 @@ var Ls = {
},
};
-var LANGS = ["eng", "nor", "chi", "cze", "deu", "fin", "grc", "ita", "nld", "rus", "spa", "ukr"];
+var LANGS = ["eng", "nor", "chi", "cze", "deu", "fin", "fra", "grc", "ita", "kor", "nld", "nno", "pol", "por", "rus", "spa", "swe", "ukr"];
if (window.langmod)
langmod();
@@ -9257,6 +12437,9 @@ var ACtx = !IPHONE && (window.AudioContext || window.webkitAudioContext),
hash0 = location.hash,
sloc0 = '' + location,
noih = /[?&]v\b/.exec(sloc0),
+ dbg_kbd = /[?&]dbgkbd\b/.exec(sloc0),
+ abrt_key = "",
+ can_shr = false,
rtt = null,
ldks = [],
dks = {},
@@ -9532,6 +12715,9 @@ var mpl = (function () {
clmod(btns[a], 'on', fmts[a] == v)
r.ac2 = v;
+ ebi('ac_flac').setAttribute('tt', L.mt_cflac.split('"')[0].format(v));
+ ebi('ac_aac').setAttribute('tt', L.mt_caac.split('"')[0].format(v));
+ ebi('ac_oth').setAttribute('tt', L.mt_coth.split('"')[0].format(v));
};
r.pp = function () {
@@ -10434,6 +13620,10 @@ function song_skip(n, dirskip) {
}
function next_song(e) {
ev(e);
+ if (QS('.dumb_loader_thing')) {
+ treectl.ls_cb = next_song;
+ return;
+ }
if (mp.order.length) {
var dirskip = mpl.traversals;
mpl.traversals = 0;
@@ -10467,6 +13657,10 @@ function prev_song(e) {
if (mp.au && !mp.au.paused && mp.au.currentTime > 3)
return seek_au_sec(0);
+ if (QS('.dumb_loader_thing')) {
+ treectl.ls_cb = function () { song_skip(-1); };
+ return;
+ }
return song_skip(-1);
}
function dl_song() {
@@ -11516,9 +14710,11 @@ function eval_hash() {
d.onclick = function (e) {
ev(e);
if (a)
- QS(treectl.hidden ? '#path a:nth-last-child(2)' : '#treeul a.hl').focus();
+ d = QS(treectl.hidden ? '#path a:nth-last-child(2)' : '#treeul a.hl');
else
- QS(thegrid.en ? '#ggrid a' : '#files tbody tr[tabindex]').focus();
+ d = QS(thegrid.en ? '#ggrid a' : '#files tbody tr[tabindex]');
+ if (d)
+ d.focus();
};
})(a);
@@ -11786,6 +14982,16 @@ function fmt_ren(re, md, fmt) {
}
+function fs_abrt() {
+ toast.inf(30, L.fp_abrt);
+ fileman.sn++;
+ fileman.f.length = 0;
+ var xhr = new XHR();
+ xhr.open('POST', '/?fs_abrt=' + abrt_key, true);
+ xhr.send();
+}
+
+
var fileman = (function () {
var bren = ebi('fren'),
bdel = ebi('fdel'),
@@ -11796,6 +15002,8 @@ var fileman = (function () {
t_paste,
r = {};
+ r.f = [];
+ r.sn = 1;
r.clip = null;
try {
r.bus = new BroadcastChannel("fileman_bus");
@@ -11821,7 +15029,7 @@ var fileman = (function () {
hdel = !(have_del && has(perms, 'delete')),
hcut = !(have_mv && has(perms, 'move')),
hpst = !(have_mv && has(perms, 'write')),
- hshr = !(have_shr && acct != '*' && (has(perms, 'read') || has(perms, 'write')));
+ hshr = !can_shr;
if (!(enren || endel || encut || enpst))
hren = hdel = hcut = hpst = true;
@@ -11982,7 +15190,7 @@ var fileman = (function () {
exm.onkeydown = exh.onkeydown = exd.onkeydown =
sh_k.onkeydown = sh_pw.onkeydown = function (e) {
- var kc = (e.code || e.key) + '';
+ var kc = (e.key || e.code) + '';
if (kc.endsWith('Enter'))
sh_apply.click();
};
@@ -12080,9 +15288,12 @@ var fileman = (function () {
return toast.err(3, L.fr_eperm);
var f = [],
+ sn = ++r.sn,
base = vsplit(sel[0].vp)[0],
mkeys;
+ r.f = f;
+
for (var a = 0; a < sel.length; a++) {
var vp = sel[a].vp;
if (vp.endsWith('/'))
@@ -12189,7 +15400,7 @@ var fileman = (function () {
(function (a) {
f[a].inew.onkeydown = function (e) {
rn_ok(a, true);
- var kc = (e.code || e.key) + '';
+ var kc = (e.key || e.code) + '';
if (kc.endsWith('Enter'))
return rn_apply();
};
@@ -12287,7 +15498,7 @@ var fileman = (function () {
spresets();
ire.onkeydown = ifmt.onkeydown = function (e) {
- var k = (e.code || e.key) + '';
+ var k = (e.key || e.code) + '';
if (k == 'Escape' || k == 'Esc')
return rn_cancel();
@@ -12362,7 +15573,9 @@ var fileman = (function () {
return rn_cancel();
}
- toast.show('inf r', 0, esc(L.fr_busy.format(f.length, f[0].ofn)));
+ var msg = esc(L.fr_busy.format(f.length, f[0].ofn));
+ msg += '\n' + L.fs_abrt + '';
+ toast.show('inf r', 0, msg);
var dst = base + uricom_enc(f[0].inew.value, false);
function rename_cb() {
@@ -12371,13 +15584,17 @@ var fileman = (function () {
toast.err(9, L.fr_efail + msg);
return;
}
+ if (r.sn != sn)
+ return modal.confirm('WARNING: the rename was aborted');
f.shift().inew.value = '( OK )';
return rn_apply_loop();
}
+ abrt_key = randstr(9);
+
var xhr = new XHR();
- xhr.open('POST', f[0].src + '?move=' + dst, true);
+ xhr.open('POST', f[0].src + '?move=' + dst + '&akey=' + abrt_key, true);
xhr.onload = xhr.onerror = rename_cb;
xhr.send();
}
@@ -12385,6 +15602,7 @@ var fileman = (function () {
r.delete = function (e) {
var sel = msel.getsel(),
+ sn = ++r.sn,
vps = [];
for (var a = 0; a < sel.length; a++)
@@ -12421,6 +15639,9 @@ var fileman = (function () {
toast.err(9, L.fd_err + msg);
return;
}
+ if (r.sn != sn)
+ return modal.confirm('WARNING: the delete was aborted');
+
if (this.responseText.indexOf('deleted 0 files (and 0') + 1) {
toast.err(9, L.fd_none);
return deleter('xbd');
@@ -12633,12 +15854,15 @@ var fileman = (function () {
'' + L.fr_lnew + ' | ' + L.fr_lold + ' | user | groups | - {% for un, gn in rows %} + {%- for un, gn in rows %}
---|---|---|
forget | {{ un|e }} | {{ gn|e }} |