diff --git a/tl.js b/tl.js new file mode 100644 index 00000000..a4bc0ce3 --- /dev/null +++ b/tl.js @@ -0,0 +1,713 @@ +"use strict"; + + +// the three-letter name of the language you're translating to +var my_lang = "vie"; + + +//////////////////////////////////////////////////////////////////////// +// please ignore the next 5 lines: +var Ls={}, SR='', wah=''; +function langmod() { + if (window.LANGN) + LANGN.push([my_lang, Ls[my_lang].tt]); +} + + +//////////////////////////////////////////////////////////////////////// +// alright, +// below this point is where the actual translation happens; +// here is the pairs of "text-identifier": "text-to-translate" +// +// you do not need to translate the TLNotes, those are just for you :-) +// +// when you are happy with this translation and want to submit it, +// copy the text below into a new file in the translations folder; +// https://github.com/9001/copyparty/tree/hovudstraum/copyparty/web/tl + + +Ls.vie = { + "tt": "Tiếng Việt", + + "cols": { + "c": "nút hành động", + "dur": "thời lượng", + "q": "chất lượng / bitrate", + "Ac": "codec âm thanh", + "Vc": "codec video", + "Fmt": "định dạng / container", + "Ahash": "checksum âm thanh", + "Vhash": "checksum video", + "Res": "độ phân giải", + "T": "loại tệp", + "aq": "chất lượng âm thanh / bitrate", + "vq": "chất lượng video / bitrate", + "pixfmt": "subsampling / pixel structure", + "resw": "độ phân giải ngang", + "resh": "độ phân giải dọc", + "chs": "kênh âm thanh", + "hz": "tốc độ lấy mẫu", + }, + + "hks": [ + [ + "misc", + ["ESC", "đóng nhiều mục"], + + "file-manager", + ["G", "chuyển đổi chế độ xem danh sách / lưới"], + ["T", "chuyển đổi ảnh thu nhỏ / biểu tượng"], + ["⇧ A/D", "kích thước ảnh thu nhỏ"], + ["ctrl-K", "xoá mục đã chọn"], + ["ctrl-X", "cắt mục đã chọn vào bảng nhớ tạm"], + ["ctrl-C", "sao chép mục đã chọn vào bảng nhớ tạm"], + ["ctrl-V", "dán (di chuyển/sao chép) tại đây"], + ["Y", "tải xuống mục đã chọn"], + ["F2", "đổi tên mục đã chọn"], + + "file-list-sel", + ["space", "chuyển đổi chọn tệp"], + ["↑/↓", "di chuyển con trỏ chọn"], + ["ctrl ↑/↓", "di chuyển con trỏ và khung nhìn"], + ["⇧ ↑/↓", "chọn tệp trước / sau"], + ["ctrl-A", "chọn tất cả tệp / thư mục"], + ], [ + "navigation", + ["B", "chuyển đổi đường dẫn / thanh điều hướng"], + ["I/K", "thư mục trước / sau"], + ["M", "thư mục cha (hoặc thu gọn hiện tại)"], + ["V", "chuyển đổi thư mục / tệp văn bản trong thanh điều hướng"], + ["A/D", "kích thước thanh điều hướng"], + ], [ + "audio-player", + ["J/L", "bài trước / sau"], + ["U/O", "lùi / tiến 10 giây"], + ["0..9", "nhảy đến 0%..90%"], + ["P", "phát/tạm dừng (cũng khởi động)"], + ["S", "chọn bài đang phát"], + ["Y", "tải xuống bài hát"], + ], [ + "image-viewer", + ["J/L, ←/→", "ảnh trước / sau"], + ["Home/End", "ảnh đầu / cuối"], + ["F", "toàn màn hình"], + ["R", "xoay theo chiều kim đồng hồ"], + ["⇧ R", "xoay ngược chiều kim đồng hồ"], + ["S", "chọn ảnh"], + ["Y", "tải xuống ảnh"], + ], [ + "video-player", + ["U/O", "lùi / tiến 10 giây"], + ["P/K/Space", "phát/tạm dừng"], + ["C", "tiếp tục phát bài tiếp theo"], + ["V", "vòng lặp"], + ["M", "tắt tiếng"], + ["[ and ]", "đặt khoảng lặp"], + ], [ + "textfile-viewer", + ["I/K", "tệp trước / sau"], + ["M", "đóng tệp văn bản"], + ["E", "chỉnh sửa tệp văn bản"], + ["S", "chọn tệp (để cắt/sao chép/đổi tên)"], + ] + ], + + "m_ok": "OK", + "m_ng": "Hủy", + + "enable": "Bật", + "danger": "NGUY HIỂM", + "clipped": "đã sao chép vào bảng nhớ tạm", + + "ht_s1": "giây", + "ht_s2": "giây", + "ht_m1": "phút", + "ht_m2": "phút", + "ht_h1": "giờ", + "ht_h2": "giờ", + "ht_d1": "ngày", + "ht_d2": "ngày", + "ht_and": " và ", + + "goh": "bảng điều khiển", + "gop": 'thư mục trước">trước', + "gou": 'thư mục cha">lên', + "gon": 'thư mục sau">tiếp', + "logout": "Đăng xuất ", + "login": "Đăng nhập", + "access": "quyền truy cập", + "ot_close": "đóng menu con", + + "ot_search": "tìm kiếm các tệp theo thuộc tính, đường dẫn / tên, thẻ nhạc hoặc bất kỳ sự kết hợp nào của chúng$N$N<code>foo bar</code> = phải chứa cả «foo» và «bar»,$N<code>foo -bar</code> = phải chứa «foo» nhưng không chứa «bar»,$N<code>^yana .opus$</code> = bắt đầu bằng «yana» và là tệp «opus»$N<code>"try unite"</code> = chứa chính xác «try unite»$N$Nđịnh dạng ngày là iso-8601, như$N<code>2009-12-31</code> hoặc <code>2020-09-12 23:30:00</code>", + + + "ot_unpost": "unpost: xoá các tệp đã tải lên gần đây hoặc huỷ những tệp đang tải dở", + "ot_bup": "bup: trình tải lên cơ bản, hỗ trợ cả Netscape 4.0", + "ot_mkdir": "mkdir: tạo thư mục mới", + "ot_md": "new-file: tạo tệp văn bản mới", + "ot_msg": "msg: gửi tin nhắn đến nhật ký máy chủ", + "ot_mp": "tuỳ chọn trình phát phương tiện", + "ot_cfg": "tuỳ chọn cấu hình", + "ot_u2i": 'up2k: tải tệp lên (nếu bạn có quyền ghi) hoặc chuyển sang chế độ tìm kiếm để xem chúng có tồn tại ở đâu đó trên máy chủ không$N$Ntải lên có thế tiếp tục nếu bị gián đoạn, chạy đa luồng và giữ nguyên dấu thời gian tệp, nhưng tiêu tốn nhiều CPU hơn [🎈]  (trình tải lên cơ bản)

trong quá trình tải, biểu tượng này sẽ trở thành chỉ thị tiến trình!', + "ot_u2w": 'up2k: tải tệp lên với hỗ trợ tiếp tục (đóng trình duyệt và thả lại tệp đó lên sau)$N$Nchạy đa luồng và giữ nguyên dấu thời gian tệp, nhưng tiêu tốn nhiều CPU hơn [🎈]  (trình tải lên cơ bản)

trong quá trình tải, biểu tượng này sẽ trở thành chỉ thị tiến trình!', + "ot_noie": 'Vui lòng sử dụng Chrome / Firefox / Edge', + + "ab_mkdir": "tạo thư mục", + "ab_mkdoc": "tạo tệp văn bản", + "ab_msg": "gửi tin nhắn đến nhật ký máy chủ", + + "ay_path": "bỏ qua đến thư mục", + "ay_files": "bỏ qua đến tệp", + + "wt_ren": "đổi tên các mục đã chọn$NPhím tắt: F2", + "wt_del": "xóa các mục đã chọn$NPhím tắt: ctrl-K", + "wt_cut": "cắt các mục đã chọn <small>(sau đó dán ở nơi khác)</small>$NPhím tắt: ctrl-X", + "wt_cpy": "sao chép các mục đã chọn vào bảng nhớ tạm$N(để dán ở nơi khác)$NPhím tắt: ctrl-C", + "wt_pst": "dán một lựa chọn đã cắt / sao chép trước đó$NPhím tắt: ctrl-V", + "wt_selall": "chọn tất cả các tệp$NPhím tắt: ctrl-A (khi tệp được chọn)", + "wt_selinv": "đảo ngược lựa chọn", + "wt_zip1": "tải thư mục này dưới định dạng nén", + "wt_selzip": "tải lựa chọn dưới định dạng nén", + "wt_seldl": "tải lựa chọn dưới dạng các tệp riêng biệt$NPhím tắt: Y", + "wt_npirc": "sao chép thông tin bản nhạc theo định dạng irc", + "wt_nptxt": "sao chép thông tin bản nhạc dưới dạng văn bản thuần túy", + "wt_m3ua": "thêm vào danh sách phát m3u (bấm 📻sao chép sau)", + "wt_m3uc": "sao chép danh sách phát m3u vào bảng nhớ tạm", + "wt_grid": "chuyển đổi chế độ xem danh sách / lưới $NPhím tắt: G", + "wt_prev": "bài trước$NPhím tắt: J", + "wt_play": "phát / tạm dừng$NPhím tắt: P", + "wt_next": "bài sau$NPhím tắt: L", + + "ul_par": "tải lên song song:", + "ut_rand": "ngẫu nhiên hoá tên tệp", + "ut_u2ts": "sao chép dấu thời gian chỉnh sửa cuối$Ntừ hệ thống tệp của bạn lên máy chủ\">📅", + "ut_ow": "ghi đè các tệp đã có trên máy chủ?$N🛡️: không bao giờ (sẽ tạo tên tệp mới)$N🕒: ghi đè nếu tệp trên máy chủ cũ hơn$N♻️: luôn ghi đè nếu hai tệp khác nhau", + "ut_mt": "tiếp tục băm các tệp khác trong khi tải lên$N$NCó thể tắt nếu CPU hoặc HDD của bạn bị nghẽn", + "ut_ask": 'yêu cầu xác nhận trước khi bắt đầu tải lên">💭', + "ut_pot": "cải thiện tốc độ tải lên trên các thiết bị chậm$Nbằng cách đơn giản hoá giao diện người dùng", + "ut_srch": "không tải lên, chỉ kiểm tra xem tệp$Nđã tồn tại trên máy chủ hay chưa (sẽ quét toàn bộ thư mục bạn có quyền đọc)", + "ut_par": "tạm dừng tải lên bằng cách đặt thành 0$N$NTăng lên nếu kết nối chậm hoặc độ trễ cao$N$NGiữ ở mức 1 khi dùng LAN hoặc nếu ổ cứng máy chủ bị nghẽn", + "ul_btn": "thả tệp / thư mục
ở đây (hoặc nhấn vào tôi)", + "ul_btnu": "T Ả I L Ê N", + "ul_btns": "T Ì M K I Ế M", + + "ul_hash": "băm", + "ul_send": "gửi", + "ul_done": "hoàn tất", + "ul_idle1": "chưa có mục nào trong hàng chờ tải lên", + "ut_etah": "tốc độ <em>băm</em> trung bình và thời gian dự kiến để hoàn tất", + "ut_etau": "tốc độ <em>tải lên</em> trung bình và thời gian dự kiến để hoàn tất", + "ut_etat": "tốc độ <em>tổng</em> trung bình và thời gian dự kiến để hoàn tất", + + "uct_ok": "hoàn tất thành công", + "uct_ng": "không hợp lệ: lỗi / bị từ chối / không tìm thấy", + "uct_done": "đã xử lý: gồm cả thành công và không hợp lệ", + "uct_bz": "đang băm hoặc tải lên", + "uct_q": "nhàn rỗi, đang chờ", + + "utl_name": "tên tệp", + "utl_ulist": "danh sách", + "utl_ucopy": "sao chép", + "utl_links": "đường dẫn", + "utl_stat": "trạng thái", + "utl_prog": "tiến trình", + + // keep short: + + // phần up2k + "utl_404": "404", + "utl_err": "LỖI", + "utl_oserr": "Lỗi hệ thống", + "utl_found": "tìm thấy", + "utl_defer": "hoãn", + "utl_yolo": "YOLO", + "utl_done": "hoàn tất", + + "udt_up": "Tải lên", + "udt_srch": "Tìm kiếm", + "udt_drop": "thả vào đây", + + "udt_up": "Tải lên", + "udt_srch": "Tìm kiếm", + "udt_drop": "thả vào đây", + + "u_nav_m": '
chọn phương thức tải lên
Enter = Tệp (một hoặc nhiều)\nESC = Một thư mục (kèm thư mục con)', + "u_nav_b": 'TệpMột thư mục', + + // settings / config: + "cl_opts": "tuỳ chọn", + "cl_hfsz": "kích thước tệp", + "cl_themes": "giao diện", + "cl_langs": "ngôn ngữ", + "cl_ziptype": "định dạng nén", + "cl_uopts": "tuỳ chọn up2k", + "cl_favico": "favicon", + "cl_bigdir": "thư mục lớn", + "cl_hsort": "#sắp xếp", + "cl_keytype": "ghi chú bàn phím", + "cl_hiddenc": "cột đã ẩn", + "cl_hidec": "ẩn", + "cl_reset": "đặt lại", + "cl_hpick": "chạm vào tiêu đề cột để ẩn trong bảng bên dưới", + "cl_hcancel": "đã hủy việc ẩn cột", + + // settings / tuỳ chọn + "ct_grid": '田 chế độ lưới', + "ct_ttips": '༼ ◕_◕ ༽">ℹ️ tooltips', + "ct_thumb": 'ở chế độ lưới, chuyển biểu tượng hoặc hình thu nhỏ$NPhím tắt: T">🖼️ ảnh thu nhỏ', + "ct_csel": 'dùng CTRL và SHIFT để chọn tệp trong chế độ lưới">sel', + "ct_ihop": 'khi đóng trình xem ảnh, cuộn xuống tệp đã xem gần nhất">g⮯', + "ct_dots": 'hiển thị tệp ẩn (nếu máy chủ cho phép)">dotfiles', + "ct_qdel": 'khi xóa tệp, chỉ hỏi xác nhận một lần">qdel', + "ct_dir1st": 'sắp xếp thư mục trước tệp">📁 first', + "ct_nsort": 'sắp xếp tự nhiên (cho tên tệp có số ở đầu)">nsort', + "ct_utc": 'hiển thị mọi thời gian theo UTC">UTC', + "ct_readme": 'hiển thị README.md trong danh sách thư mục">📜 readme', + "ct_idxh": 'hiển thị index.html thay cho danh sách thư mục">htm', + "ct_sbars": 'hiển thị thanh cuộn">⟊', + + // + "cut_umod": "if a file already exists on the server, update the server's last-modified timestamp to match your local file (requires write+delete permissions)\">re📅", + + "cut_turbo": "the yolo button, you probably DO NOT want to enable this:$N$Nuse this if you were uploading a huge amount of files and had to restart for some reason, and want to continue the upload ASAP$N$Nthis replaces the hash-check with a simple "does this have the same filesize on the server?" so if the file contents are different it will NOT be uploaded$N$Nyou should turn this off when the upload is done, and then "upload" the same files again to let the client verify them\">turbo", + + "cut_datechk": "has no effect unless the turbo button is enabled$N$Nreduces the yolo factor by a tiny amount; checks whether the file timestamps on the server matches yours$N$Nshould theoretically catch most unfinished / corrupted uploads, but is not a substitute for doing a verification pass with turbo disabled afterwards\">date-chk", + + "cut_u2sz": "size (in MiB) of each upload chunk; big values fly better across the atlantic. Try low values on very unreliable connections", + + "cut_flag": "ensure only one tab is uploading at a time $N -- other tabs must have this enabled too $N -- only affects tabs on the same domain", + + "cut_az": "upload files in alphabetical order, rather than smallest-file-first$N$Nalphabetical order can make it easier to eyeball if something went wrong on the server, but it makes uploading slightly slower on fiber / LAN", + + "cut_nag": "OS notification when upload completes$N(only if the browser or tab is not active)", + "cut_sfx": "audible alert when upload completes$N(only if the browser or tab is not active)", + + "cut_mt": "use multithreading to accelerate file hashing$N$Nthis uses web-workers and requires$Nmore RAM (up to 512 MiB extra)$N$Nmakes https 30% faster, http 4.5x faster\">mt", + + "cut_wasm": "use wasm instead of the browser's built-in hasher; improves speed on chrome-based browsers but increases CPU load, and many older versions of chrome have bugs which makes the browser consume all RAM and crash if this is enabled\">wasm", + + "cft_text": "favicon text (blank and refresh to disable)", + "cft_fg": "foreground color", + "cft_bg": "background color", + + "cdt_lim": "max number of files to show in a folder", + "cdt_ask": "when scrolling to the bottom,$Ninstead of loading more files,$Nask what to do", + "cdt_hsort": "how many sorting rules (<code>,sorthref</code>) to include in media-URLs. Setting this to 0 will also ignore sorting-rules included in media links when clicking them", + + "tt_entree": "show navpane (directory tree sidebar)$NPhím tắt: B", + "tt_detree": "show breadcrumbs$NPhím tắt: B", + "tt_visdir": "scroll to selected folder", + "tt_ftree": "toggle folder-tree / textfiles$NPhím tắt: V", + "tt_pdock": "show parent folders in a docked pane at the top", + "tt_dynt": "autogrow as tree expands", + "tt_wrap": "word wrap", + "tt_hover": "reveal overflowing lines on hover$N( breaks scrolling unless mouse $N  cursor is in the left gutter )", + + "ml_pmode": "at end of folder...", + "ml_btns": "cmds", + "ml_tcode": "transcode", + "ml_tcode2": "transcode to", + "ml_tint": "tint", + "ml_eq": "audio equalizer", + "ml_drc": "dynamic range compressor", + + "mt_loop": "loop/repeat one song\">🔁", + "mt_one": "stop after one song\">1️⃣", + "mt_shuf": "shuffle the songs in each folder\">🔀", + "mt_aplay": "autoplay if there is a song-ID in the link you clicked to access the server$N$Ndisabling this will also stop the page URL from being updated with song-IDs when playing music, to prevent autoplay if these settings are lost but the URL remains\">a▶", + "mt_preload": "start loading the next song near the end for gapless playback\">preload", + "mt_prescan": "go to the next folder before the last song$Nends, keeping the webbrowser happy$Nso it doesn't stop the playback\">nav", + "mt_fullpre": "try to preload the entire song;$N✅ enable on unreliable connections,$N❌ disable on slow connections probably\">full", + "mt_fau": "on phones, prevent music from stopping if the next song doesn't preload fast enough (can make tags display glitchy)\">☕️", + "mt_waves": "waveform seekbar:$Nshow audio amplitude in the scrubber\">~s", + "mt_npclip": "show buttons for bảng nhớ tạming the currently playing song\">/np", + "mt_m3u_c": "show buttons for bảng nhớ tạming the$Nselected songs as m3u8 playlist entries\">📻", + "mt_octl": "os integration (media Phím tắts / osd)\">os-ctl", + "mt_oseek": "allow seeking through os integration$N$Nnote: on some devices (iPhones),$Nthis replaces the next-song button\">seek", + "mt_oscv": "show album cover in osd\">art", + "mt_follow": "keep the playing track scrolled into view\">🎯", + "mt_compact": "compact controls\">⟎", + "mt_uncache": "clear cache  (try this if your browser cached$Na broken copy of a song so it refuses to play)\">uncache", + "mt_mloop": "loop the open folder\">🔁 loop", + "mt_mnext": "load the next folder and continue\">📂 next", + "mt_mstop": "stop playback\">⏸ stop", + "mt_cflac": "convert flac / wav to {0}\">flac", + "mt_caac": "convert aac / m4a to {0}\">aac", + "mt_coth": "convert all others (not mp3) to {0}\">oth", + "mt_c2opus": "best choice for desktops, laptops, android\">opus", + "mt_c2owa": "opus-weba, for iOS 17.5 and newer\">owa", + "mt_c2caf": "opus-caf, for iOS 11 through 17\">caf", + "mt_c2mp3": "use this on very old devices\">mp3", + "mt_c2flac": "best sound quality, but huge downloads\">flac", + "mt_c2wav": "uncompressed playback (even bigger)\">wav", + "mt_c2ok": "nice, good choice", + "mt_c2nd": "that's not the recommended output format for your device, but that's fine", + "mt_c2ng": "your device does not seem to support this output format, but let's try anyways", + "mt_xowa": "there are bugs in iOS preventing background playback using this format; please use caf or mp3 instead", + "mt_tint": "background level (0-100) on the seekbar$Nto make buffering less distracting", + "mt_eq": "enables the equalizer and gain control;$N$Nboost <code>0</code> = standard 100% volume (unmodified)$N$Nwidth <code>1  </code> = standard stereo (unmodified)$Nwidth <code>0.5</code> = 50% left-right crossfeed$Nwidth <code>0  </code> = mono$N$Nboost <code>-0.8</code> & width <code>10</code> = vocal removal :^)$N$Nenabling the equalizer makes gapless albums fully gapless, so leave it on with all the values at zero (except width = 1) if you care about that", + "mt_drc": "enables the dynamic range compressor (volume flattener / brickwaller); will also enable EQ to balance the spaghetti, so set all EQ fields except for 'width' to 0 if you don't want it$N$Nlowers the volume of audio above THRESHOLD dB; for every RATIO dB past THRESHOLD there is 1 dB of output, so default values of tresh -24 and ratio 12 means it should never get louder than -22 dB and it is safe to increase the equalizer boost to 0.8, or even 1.8 with ATK 0 and a huge RLS like 90 (only works in firefox; RLS is max 1 in other browsers)$N$N(see wikipedia, they explain it much better)", + + "mb_play": "play", + "mm_hashplay": "play this audio file?", + "mm_m3u": "press Enter/OK to Play\npress ESC/Cancel to Edit", + "mp_breq": "need firefox 82+ or chrome 73+ or iOS 15+", + "mm_bload": "now loading...", + "mm_bconv": "converting to {0}, please wait...", + "mm_opusen": "your browser cannot play aac / m4a files;\ntranscoding to opus is now enabled", + "mm_playerr": "playback failed: ", + "mm_eabrt": "The playback attempt was cancelled", + "mm_enet": "Your internet connection is wonky", + "mm_edec": "This file is supposedly corrupted??", + "mm_esupp": "Your browser does not understand this audio format", + "mm_eunk": "Unknown Errol", + "mm_e404": "Could not play audio; error 404: File not found.", + "mm_e403": "Could not play audio; error 403: Access denied.\n\nTry pressing F5 to reload, maybe you got logged out", + "mm_e500": "Could not play audio; error 500: Check server logs.", + "mm_e5xx": "Could not play audio; server error ", + "mm_nof": "not finding any more audio files nearby", + "mm_prescan": "Looking for music to play next...", + "mm_scank": "Found the next song:", + "mm_uncache": "cache cleared; all songs will redownload on next playback", + "mm_hnf": "that song no longer exists", + + "im_hnf": "that image no longer exists", + + "f_empty": 'this folder is empty', + "f_chide": 'this will hide the column «{0}»\n\nyou can unhide columns in the settings tab', + "f_bigtxt": "this file is {0} MiB large -- really view as text?", + "f_bigtxt2": "view just the end of the file instead? this will also enable following/tailing, showing newly added lines of text in real time", + "fbd_more": '
showing {0} of {1} files; show {2} or show all
', + "fbd_all": '
showing {0} of {1} files; show all
', + "f_anota": "only {0} of the {1} items were selected;\nto select the full folder, first scroll to the bottom", + + "f_dls": 'the file links in the current folder have\nbeen changed into download links', + + "f_partial": "To safely download a file which is currently being uploaded, please click the file which has the same filename, but without the .PARTIAL file extension. Please press CANCEL or Escape to do this.\n\nPressing OK / Enter will ignore this warning and continue downloading the .PARTIAL scratchfile instead, which will almost definitely give you corrupted data.", + + "ft_paste": "paste {0} items$NPhím tắt: ctrl-V", + "fr_eperm": 'cannot rename:\nyou do not have “move” permission in this folder', + "fd_eperm": 'cannot delete:\nyou do not have “delete” permission in this folder', + "fc_eperm": 'cannot cut:\nyou do not have “move” permission in this folder', + "fp_eperm": 'cannot paste:\nyou do not have “write” permission in this folder', + "fr_emore": "select at least one item to rename", + "fd_emore": "select at least one item to delete", + "fc_emore": "select at least one item to cut", + "fcp_emore": "select at least one item to copy to bảng nhớ tạm", + + "fs_sc": "share the folder you're in", + "fs_ss": "share the selected files", + "fs_just1d": "you cannot select more than one folder,\nor mix files and folders in one selection", + "fs_abrt": "❌ abort", + "fs_rand": "🎲 rand.name", + "fs_go": "✅ create share", + "fs_name": "name", + "fs_src": "source", + "fs_pwd": "passwd", + "fs_exp": "expiry", + "fs_tmin": "min", + "fs_thrs": "hours", + "fs_tdays": "days", + "fs_never": "eternal", + "fs_pname": "optional link name; will be random if blank", + "fs_tsrc": "the file or folder to share", + "fs_ppwd": "optional password", + "fs_w8": "creating share...", + "fs_ok": "press Enter/OK to bảng nhớ tạm\npress ESC/Cancel to Close", + + "frt_dec": "may fix some cases of broken filenames\">url-decode", + "frt_rst": "reset modified filenames back to the original ones\">↺ reset", + "frt_abrt": "abort and close this window\">❌ cancel", + "frb_apply": "APPLY RENAME", + "fr_adv": "batch / metadata / pattern renaming\">advanced", + "fr_case": "case-sensitive regex\">case", + "fr_win": "windows-safe names; replace <>:"\\|?* with japanese fullwidth characters\">win", + "fr_slash": "replace / with a character that doesn't cause new folders to be created\">no /", + "fr_re": "regex search pattern to apply to original filenames; capturing groups can be referenced in the format field below like <code>(1)</code> and <code>(2)</code> and so on", + "fr_fmt": "inspired by foobar2000:$N<code>(title)</code> is replaced by song title,$N<code>[(artist) - ](title)</code> skips [this] part if artist is blank$N<code>$lpad((tn),2,0)</code> pads tracknumber to 2 digits", + "fr_pdel": "delete", + "fr_pnew": "save as", + "fr_pname": "provide a name for your new preset", + "fr_aborted": "aborted", + "fr_lold": "old name", + "fr_lnew": "new name", + "fr_tags": "tags for the selected files (read-only, just for reference):", + "fr_busy": "renaming {0} items...\n\n{1}", + "fr_efail": "rename failed:\n", + "fr_nchg": "{0} of the new names were altered due to win and/or no /\n\nOK to continue with these altered new names?", + + "fd_ok": "delete OK", + "fd_err": "delete failed:\n", + "fd_none": "nothing was deleted; maybe blocked by server config (xbd)?", + "fd_busy": "deleting {0} items...\n\n{1}", + "fd_warn1": "DELETE these {0} items?", + "fd_warn2": "Last chance! No way to undo. Delete?", + + "fc_ok": "cut {0} items", + "fc_warn": 'cut {0} items\n\nbut: only this browser-tab can paste them\n(since the selection is so absolutely massive)', + + "fcc_ok": "copied {0} items to bảng nhớ tạm", + "fcc_warn": 'copied {0} items to bảng nhớ tạm\n\nbut: only this browser-tab can paste them\n(since the selection is so absolutely massive)', + + "fp_apply": "use these names", + "fp_ecut": "first cut or copy some files / folders to paste / move\n\nnote: you can cut / paste across different browser tabs", + "fp_ename": "{0} items cannot be moved here because the names are already taken. Give them new names below to continue, or blank the name to skip them:", + "fcp_ename": "{0} items cannot be copied here because the names are already taken. Give them new names below to continue, or blank the name to skip them:", + "fp_emore": "there are still some filename collisions left to fix", + "fp_ok": "move OK", + "fcp_ok": "copy OK", + "fp_busy": "moving {0} items...\n\n{1}", + "fcp_busy": "copying {0} items...\n\n{1}", + "fp_abrt": "aborting...", + "fp_err": "move failed:\n", + "fcp_err": "copy failed:\n", + "fp_confirm": "move these {0} items here?", + "fcp_confirm": "copy these {0} items here?", + "fp_etab": 'failed to read bảng nhớ tạm from other browser tab', + "fp_name": "uploading a file from your device. Give it a name:", + "fp_both_m": '
choose what to paste
Enter = Move {0} files from «{1}»\nESC = Upload {2} files from your device', + "fcp_both_m": '
choose what to paste
Enter = Copy {0} files from «{1}»\nESC = Upload {2} files from your device', + "fp_both_b": 'MoveUpload', + "fcp_both_b": 'CopyUpload', + + "mk_noname": "type a name into the text field on the left before you do that :p", + "nmd_i1": "also add the file extension you want, for example .md", + "nmd_i2": "you can only create .md files because you don't have the delete-permission", + + "tv_load": "Loading text document:\n\n{0}\n\n{1}% ({2} of {3} MiB loaded)", + "tv_xe1": "could not load textfile:\n\nerror ", + "tv_xe2": "404, file not found", + "tv_lst": "list of textfiles in", + "tvt_close": "return to folder view$NPhím tắt: M (or Esc)\">❌ close", + "tvt_dl": "download this file$NPhím tắt: Y\">💾 download", + "tvt_prev": "show previous document$NPhím tắt: i\">⬆ prev", + "tvt_next": "show next document$NPhím tắt: K\">⬇ next", + "tvt_sel": "select file   ( for cut / copy / delete / ... )$NPhím tắt: S\">sel", + "tvt_edit": "open file in text editor$NPhím tắt: E\">✏️ edit", + "tvt_tail": "monitor file for changes; show new lines in real time\">📡 follow", + "tvt_wrap": "word-wrap\">↵", + "tvt_atail": "lock scroll to bottom of page\">⚓", + "tvt_ctail": "decode terminal colors (ansi escape codes)\">🌈", + "tvt_ntail": "scrollback limit (how many bytes of text to keep loaded)", + + "m3u_add1": "song added to m3u playlist", + "m3u_addn": "{0} songs added to m3u playlist", + "m3u_clip": "m3u playlist now copied to bảng nhớ tạm\n\nyou should create a new textfile named something.m3u and paste the playlist in that document; this will make it playable", + + "gt_vau": "don't show videos, just play the audio\">🎧", + "gt_msel": "enable file selection; ctrl-click a file to override$N$N<em>when active: doubleclick a file / folder to open it</em>$N$NPhím tắt: S\">multiselect", + "gt_crop": "center-crop thumbnails\">crop", + "gt_3x": "hi-res thumbnails\">3x", + "gt_zoom": "zoom", + "gt_chop": "chop", + "gt_sort": "sort by", + "gt_name": "name", + "gt_sz": "size", + "gt_ts": "date", + "gt_ext": "type", + "gt_c1": "truncate filenames more (show less)", + "gt_c2": "truncate filenames less (show more)", + + "sm_w8": "searching...", + "sm_prev": "search results below are from a previous query:\n ", + "sl_close": "close search results", + "sl_hits": "showing {0} hits", + "sl_moar": "load more", + + "s_sz": "size", + "s_dt": "date", + "s_rd": "path", + "s_fn": "name", + "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": "uploaded after", + "s_u2": "and/or before", + "s_r1": "path contains   (space-separated)", + "s_f1": "name contains   (negate with -nope)", + "s_t1": "tags contains   (^=start, end=$)", + "s_a1": "specific metadata properties", + + "md_eshow": "cannot render ", + "md_off": "[📜readme] disabled in [⚙️] -- document hidden", + + "badreply": "Failed to parse reply from server", + + "xhr403": "403: Access denied\n\ntry pressing F5, maybe you got logged out", + "xhr0": "unknown (probably lost connection to server, or server is offline)", + "cf_ok": "sorry about that -- DD" + wah + "oS protection kicked in\n\nthings should resume in about 30 sec\n\nif nothing happens, hit F5 to reload the page", + "tl_xe1": "could not list subfolders:\n\nerror ", + "tl_xe2": "404: Folder not found", + "fl_xe1": "could not list files in folder:\n\nerror ", + "fl_xe2": "404: Folder not found", + "fd_xe1": "could not create subfolder:\n\nerror ", + "fd_xe2": "404: Parent folder not found", + "fsm_xe1": "could not send message:\n\nerror ", + "fsm_xe2": "404: Parent folder not found", + "fu_xe1": "failed to load unpost list from server:\n\nerror ", + "fu_xe2": "404: File not found??", + + "fz_tar": "uncompressed gnu-tar file (linux / mac)", + "fz_pax": "uncompressed pax-format tar (slower)", + "fz_targz": "gnu-tar with gzip level 3 compression$N$Nthis is usually very slow, so$Nuse uncompressed tar instead", + "fz_tarxz": "gnu-tar with xz level 1 compression$N$Nthis is usually very slow, so$Nuse uncompressed tar instead", + "fz_zip8": "zip with utf8 filenames (maybe wonky on windows 7 and older)", + "fz_zipd": "zip with traditional cp437 filenames, for really old software", + "fz_zipc": "cp437 with crc32 computed early,$Nfor MS-DOS PKZIP v2.04g (october 1993)$N(takes longer to process before download can start)", + + "un_m1": "you can delete your recent uploads (or abort unfinished ones) below", + "un_upd": "refresh", + "un_m4": "or share the files visible below:", + "un_ulist": "show", + "un_ucopy": "copy", + "un_flt": "optional filter:  URL must contain", + "un_fclr": "clear filter", + "un_derr": 'unpost-delete failed:\n', + "un_f5": 'something broke, please try a refresh or hit F5', + "un_uf5": "sorry but you have to refresh the page (for example by pressing F5 or CTRL-R) before this upload can be aborted", + "un_nou": 'warning: server too busy to show unfinished uploads; click the "refresh" link in a bit', + "un_noc": 'warning: unpost of fully uploaded files is not enabled/permitted in server config', + "un_max": "showing first 2000 files (use the filter)", + "un_avail": "{0} recent uploads can be deleted
{1} unfinished ones can be aborted", + "un_m2": "sorted by upload time; most recent first:", + "un_no1": "sike! no uploads are sufficiently recent", + "un_no2": "sike! no uploads matching that filter are sufficiently recent", + "un_next": "delete the next {0} files below", + "un_abrt": "abort", + "un_del": "delete", + "un_m3": "loading your recent uploads...", + "un_busy": "deleting {0} files...", + "un_clip": "{0} links copied to bảng nhớ tạm", + + "u_https1": "you should", + "u_https2": "switch to https", + "u_https3": "for better performance", + "u_ancient": 'your browser is impressively ancient -- maybe you should use bup instead', + "u_nowork": "need firefox 53+ or chrome 57+ or iOS 11+", + "tail_2old": "need firefox 105+ or chrome 71+ or iOS 14.5+", + "u_nodrop": 'your browser is too old for drag-and-drop uploading', + "u_notdir": "that's not a folder!\n\nyour browser is too old,\nplease try dragdrop instead", + "u_uri": "to dragdrop images from other browser windows,\nplease drop it onto the big upload button", + "u_enpot": 'switch to potato UI (may improve upload speed)', + "u_depot": 'switch to fancy UI (may reduce upload speed)', + "u_gotpot": 'switching to the potato UI for improved upload speed,\n\nfeel free to disagree and switch back!', + "u_pott": "

files:   {0} finished,   {1} failed,   {2} busy,   {3} queued

", + "u_ever": "this is the basic uploader; up2k needs at least
chrome 21 // firefox 13 // edge 12 // opera 12 // safari 5.1", + "u_su2k": 'this is the basic uploader; up2k is better', + "u_uput": 'optimize for speed (skip checksum)', + "u_ewrite": 'you do not have write-access to this folder', + "u_eread": 'you do not have read-access to this folder', + "u_enoi": 'file-search is not enabled in server config', + "u_enoow": "overwrite will not work here; need Delete-permission", + "u_badf": 'These {0} files (of {1} total) were skipped, possibly due to filesystem permissions:\n\n', + "u_blankf": 'These {0} files (of {1} total) are blank / empty; upload them anyways?\n\n', + "u_applef": 'These {0} files (of {1} total) are probably undesirable;\nPress OK/Enter to SKIP the following files,\nPress Cancel/ESC to NOT exclude, and UPLOAD those as well:\n\n', + "u_just1": '\nMaybe it works better if you select just one file', + "u_ff_many": "if you're using Linux / MacOS / Android, then this amount of files may crash Firefox!\nif that happens, please try again (or use Chrome).", + "u_up_life": "This upload will be deleted from the server\n{0} after it completes", + "u_asku": 'upload these {0} files to {1}', + "u_unpt": "you can undo / delete this upload using the top-left 🧯", + "u_bigtab": 'about to show {0} files\n\nthis may crash your browser, are you sure?', + "u_scan": 'Scanning files...', + "u_dirstuck": 'directory iterator got stuck trying to access the following {0} items; will skip:', + "u_etadone": 'Done ({0}, {1} files)', + "u_etaprep": '(preparing to upload)', + "u_hashdone": 'hashing done', + "u_hashing": 'hash', + "u_hs": 'handshaking...', + "u_started": "the files are now being uploaded; see [🚀]", + "u_dupdefer": "duplicate; will be processed after all other files", + "u_actx": "click this text to prevent loss of
performance when switching to other windows/tabs", + "u_fixed": "OK!  Fixed it 👍", + "u_cuerr": "failed to upload chunk {0} of {1};\nprobably harmless, continuing\n\nfile: {2}", + "u_cuerr2": "server rejected upload (chunk {0} of {1});\nwill retry later\n\nfile: {2}\n\nerror ", + "u_ehstmp": "will retry; see bottom-right", + "u_ehsfin": "server rejected the request to finalize upload; retrying...", + "u_ehssrch": "server rejected the request to perform search; retrying...", + "u_ehsinit": "server rejected the request to initiate upload; retrying...", + "u_eneths": "network error while performing upload handshake; retrying...", + "u_enethd": "network error while testing target existence; retrying...", + "u_cbusy": "waiting for server to trust us again after a network glitch...", + "u_ehsdf": "server ran out of disk space!\n\nwill keep retrying, in case someone\nfrees up enough space to continue", + "u_emtleak1": "it looks like your webbrowser may have a memory leak;\nplease", + "u_emtleak2": ' switch to https (recommended) or ', + "u_emtleak3": ' ', + "u_emtleakc": 'try the following:\nUploads will be a bit slower, but oh well.\nSorry for the trouble !\n\nPS: chrome v107 has a bugfix for this', + "u_emtleakf": 'try the following:\n\nPS: firefox will hopefully have a bugfix at some point', + "u_s404": "not found on server", + "u_expl": "explain", + "u_maxconn": "most browsers limit this to 6, but firefox lets you raise it with connections-per-server in about:config", + "u_tu": '

WARNING: turbo enabled,  client may not detect and resume incomplete uploads; see turbo-button tooltip

', + "u_ts": '

WARNING: turbo enabled,  search results can be incorrect; see turbo-button tooltip

', + "u_turbo_c": "turbo is disabled in server config", + "u_turbo_g": "disabling turbo because you don't have\ndirectory listing privileges within this volume", + "u_life_cfg": 'autodelete after min (or hours)', + "u_life_est": 'upload will be deleted ---', + "u_life_max": 'this folder enforces a\nmax lifetime of {0}', + "u_unp_ok": 'unpost is allowed for {0}', + "u_unp_ng": 'unpost will NOT be allowed', + "ue_ro": 'your access to this folder is Read-Only\n\n', + "ue_nl": 'you are currently not logged in', + "ue_la": 'you are currently logged in as "{0}"', + "ue_sr": 'you are currently in file-search mode\n\nswitch to upload-mode by clicking the magnifying glass 🔎 (next to the big SEARCH button), and try uploading again\n\nsorry', + "ue_ta": 'try uploading again, it should work now', + "ue_ab": "this file is already being uploaded into another folder, and that upload must be completed before the file can be uploaded elsewhere.\n\nYou can abort and forget the initial upload using the top-left 🧯", + "ur_1uo": "OK: File uploaded successfully", + "ur_auo": "OK: All {0} files uploaded successfully", + "ur_1so": "OK: File found on server", + "ur_aso": "OK: All {0} files found on server", + "ur_1un": "Upload failed, sorry", + "ur_aun": "All {0} uploads failed, sorry", + "ur_1sn": "File was NOT found on server", + "ur_asn": "The {0} files were NOT found on server", + "ur_um": "Finished;\n{0} uploads OK,\n{1} uploads failed, sorry", + "ur_sm": "Finished;\n{0} files found on server,\n{1} files NOT found on server", + + "lang_set": "refresh to make the change take effect?", + + "splash": { + "a1": "refresh", + "b1": "howdy stranger   (you're not logged in)", + "c1": "logout", + "d1": "dump stack", // TLNote: "d2" is the tooltip for this button + "d2": "shows the state of all active threads", + "e1": "reload cfg", + "e2": "reload config files (accounts/volumes/volflags),$Nand rescan all e2ds volumes$N$Nnote: any changes to global settings$Nrequire a full restart to take effect", + "f1": "you can browse:", + "g1": "you can upload to:", + "cc1": "other stuff:", + "h1": "disable k304", // TLNote: "j1" explains what k304 is + "i1": "enable k304", + "j1": "enabling k304 will disconnect your client on every HTTP 304, which can prevent some buggy proxies from getting stuck (suddenly not loading pages), but it will also make things slower in general", + "k1": "reset client settings", + "l1": "login for more:", + "m1": "welcome back,", // TLNote: "welcome back, USERNAME" + "n1": "404 not found  ┐( ´ -`)┌", + "o1": 'or maybe you don\'t have access -- try a password or go home', + "p1": "403 forbiddena  ~┻━┻", + "q1": 'use a password or go home', + "r1": "go home", + ".s1": "rescan", + "t1": "action", // TLNote: this is the header above the "rescan" buttons + "u2": "time since the last server write$N( upload / rename / ... )$N$N17d = 17 days$N1h23 = 1 hour 23 minutes$N4m56 = 4 minutes 56 seconds", + "v1": "connect", + "v2": "use this server as a local HDD", + "w1": "switch to https", + "x1": "change password", + "y1": "edit shares", // TLNote: shows the list of folders that the user has decided to share + "z1": "unlock this share:", // TLNote: the password prompt to see a hidden share + "ta1": "fill in your new password first", + "ta2": "repeat to confirm new password:", + "ta3": "found a typo; please try again", + "aa1": "incoming files:", + "ab1": "disable no304", + "ac1": "enable no304", + "ad1": "enabling no304 will disable all caching; try this if k304 wasn't enough. This will waste a huge amount of network traffic!", + "ae1": "active downloads:", + "af1": "show recent uploads", + } +};