Compare commits

...

456 Commits

Author SHA1 Message Date
Tien Do Nam 5ccc6dea19 feat: move target discovery out of external isolate
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-03-30 22:57:59 +02:00
eason 9e4a5985b5 fix: prevent text starting with URL from being misidentified as link (#2975)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
Dart's Uri.tryParse is very permissive and will successfully parse
strings like "https://example.com some extra text" as valid absolute
URIs. This caused the receiver to incorrectly classify any message
beginning with a URL as a link, even when it contained additional
non-URL text.

Add a whitespace check before URI parsing so that only messages
consisting entirely of a single URL (with optional surrounding
whitespace) are treated as links.

Fixes #2904

Co-authored-by: easonysliu <easonysliu@tencent.com>
2026-03-18 17:39:17 +01:00
Gabbar 3ec2d77875 fix: migrate to dart run build_runner... (#2962)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-03-07 18:33:31 +01:00
Tien Do Nam 90de693a9b feat: integrate rust http client
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-03-03 02:34:20 +01:00
Tien Do Nam 70ba4f89af deps: bump flutter to 3.38.10 2026-03-02 23:40:54 +01:00
Tien Do Nam 50451b233a docs: update readme
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-03-02 04:16:40 +01:00
Tien Do Nam d27cdcc140 fix: i18n 2026-03-02 04:13:49 +01:00
Tien Do Nam 7dd96a9ad4 fix: test 2026-03-02 04:06:01 +01:00
Tien Do Nam ac5f1781d1 chore: format 2026-03-02 04:00:04 +01:00
Tien Do Nam 478a90d227 Translations update from Hosted Weblate (#2322) 2026-03-02 03:58:31 +01:00
deuteros-gex 37287d7bdc feat: add target for windows arm builds (#2952) 2026-03-02 03:54:16 +01:00
Tien Do Nam 535779802f feat: add http client bindings 2026-03-02 03:51:37 +01:00
Tien Do Nam 1048b71330 feat: add thiserror to client, prepare_upload should also return status code
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-02-28 02:26:43 +01:00
Tien Do Nam f657c76f56 refactor: verify_cert_from_res
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-02-27 03:10:09 +01:00
Tien Do Nam 731a48b10f feat: add v2 client 2026-02-27 02:43:16 +01:00
Carlos Guillén da6d18da43 Fix: CI correction and warning cleanup (#2943) (#2946)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2026-02-24 17:12:26 +01:00
ramyaramyarao11278-cmd 22d41c88ff fix: guard RefenaScope.defaultRef access in tray helper (#2927) (#2949)
Co-authored-by: ramyaramyarao11278-cmd <ramyaramyarao11278-cmd@users.noreply.github.com>
2026-02-22 16:19:37 +01:00
Tien Do Nam fba694b968 docs: update 2026-02-16 04:09:13 +01:00
Christopher Warner 1a9b8280ff Use gtk_widget_realize when starting with --hidden. This inits the (#2929)
window so the system tray can attach, but keeps the window
completely invisible from the screen. There is also an issue #2790
where there is a race condition and Refena hasn't fully loaded which
is part of the issue. More details are available in #2927
2026-02-07 21:22:41 +01:00
veygax 8f3cec85aa Merge commit from fork
Signed-off-by: Evan Lambert <veyga@veygax.dev>
2026-01-30 22:12:00 +01:00
Tien Do Nam 14db482bba deps: bump rust deps 2026-01-30 15:13:50 +01:00
Pádraic Slattery 568b2f2d8d chore: Update outdated GitHub Actions versions (#2913) 2026-01-21 23:51:43 +01:00
Tien Do Nam ef459592a1 refactor: use thiserror 2026-01-12 18:11:53 +01:00
Tien Do Nam 8fa3ade352 docs: remove sponsor 2026-01-04 01:23:21 +01:00
Tien Do Nam e7097299b3 refactor: remove struct
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
CI / format (push) Has been cancelled
2025-11-19 22:23:21 +01:00
Tien Do Nam 5ac1e66026 feat: prepare v2 http server 2025-11-18 22:51:05 +01:00
Ankit Bhankharia 03fbd70607 refactor: replace HorizontalClipListView with ResponsiveWrapView (#2821) 2025-11-14 13:02:06 +01:00
Shlomo 62f4a13166 docs: update changelog (#2796) 2025-11-11 17:12:24 +01:00
Tien Do Nam b32970b5d1 refactor: adjust import path 2025-11-01 18:50:21 +01:00
Tien Do Nam f9aa783669 refactor: http module 2025-10-31 04:17:32 +01:00
Guilherme Nandi Tiscoski 574a54acdb feat: enable starting text share via command line (#2661) 2025-10-27 02:59:23 +01:00
Voltra 98cc7488e6 feat(android): quick launch tile (#2676) 2025-10-27 02:54:06 +01:00
Marcos Fernandes ea25d1fceb docs(readme): fixes "Português" mistyping (#2794) 2025-10-27 02:35:07 +01:00
Shlomo a9e01b078a fix: save unsupported media formats to folder instead of gallery (#2766) 2025-10-27 02:33:43 +01:00
Tien Do Nam 96a37c71b9 ci: simplify format test 2025-10-27 02:00:24 +01:00
Tien Do Nam 2c0bfaf1cd chore: format 2025-10-27 01:54:38 +01:00
Lukas Klingsbo c8fd944776 chore: Preserve trailing commas (#2789)
Without this setting the formatter will sometimes remove trailing commas, which makes the diff and the code harder to read.
2025-10-27 01:21:29 +01:00
Shlomo fb4c6e9fe4 docs: update READMEs (#2777) 2025-10-20 18:21:15 +02:00
Shlomo 52f13086c9 chore(macos): enable secure restorable state (#2770)
Manual apply of https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/macos/migrations/secure_restorable_state_migration.dart
2025-10-20 16:07:25 +00:00
92 a8f9ece32f docs: Update issue templates (#2644) 2025-10-17 14:51:51 +02:00
Shlomo 6dea005c53 fix(android): preserve location data in media picker (#2742) 2025-10-17 14:49:05 +02:00
Shlomo 5cf8c06eb3 feat(macos): implement "open firewall settings" button (#2775) 2025-10-17 14:42:47 +02:00
Shlomo a6588717db fix(android): handle content URIs in url sharing (#2756) 2025-10-17 14:38:55 +02:00
Shlomo 1fe1e04b98 chore: bump MACOSX_DEPLOYMENT_TARGET (#2776) 2025-10-17 14:31:48 +02:00
Shlomo 07650f4643 feat: improve remaining time display during file transfer (#2765) 2025-10-15 18:14:47 +02:00
Tien Do Nam 4305868970 deps: bump kotlin, flutter 2025-10-13 17:55:35 +02:00
Jiaying Liu 5c279033d3 Provides a website entry point (#2762) 2025-10-13 13:25:25 +02:00
Tien Do Nam 39b467ba18 ci: remove openssl 2025-10-13 02:09:47 +02:00
Tien Do Nam f04dfce09b feat: remove native-tls from reqwest dependency 2025-10-13 02:09:22 +02:00
Tien Do Nam ce302adcf9 ci: update openssl path 2025-10-13 01:28:43 +02:00
Tien Do Nam c166ee480a ci: add openssl env 2025-10-12 23:46:37 +02:00
Tien Do Nam 1743a0f6cc ci: print path 2025-10-12 23:38:38 +02:00
Tien Do Nam 15c68c74f8 ci: install pkg-config 2025-10-12 19:50:28 +02:00
Tien Do Nam 3add4f2118 ci: install openssl 2025-10-12 18:24:33 +02:00
Tien Do Nam 01d40e93f9 fix: init issue on Android
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-10-06 17:38:53 +02:00
Shlomo 86adfd67af chore: migrate GitHub Actions runners from ubuntu-20 to ubuntu-24 (#2743)
CI / test (push) Has been cancelled
CI / format (push) Has been cancelled
CI / packaging (push) Has been cancelled
https://github.blog/changelog/2025-01-15-github-actions-ubuntu-20-runner-image-brownout-dates-and-other-breaking-changes/#ubuntu-20-image-is-closing-down
2025-10-06 00:17:51 +02:00
Tien Do Nam beaa3634bb fix: bump gradle heap space
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-10-05 20:57:35 +02:00
Tien Do Nam 076fba40ac fix: move appbar out of FOSS removal section 2025-10-05 20:23:26 +02:00
Tien Do Nam 77ae5c3782 fix: use system_settings_2
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-10-05 13:15:26 +02:00
Mr.Ebonycat 5ce851b604 fix: add CJK font support for Linux (#2719)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-10-04 00:01:33 +02:00
Shlomo 8bd9a1d843 fix: detect DNG files as image (#2728) 2025-10-04 00:00:53 +02:00
Shlomo 7a1bef4fbd feat: use ComputerName instead of hostname on macOS (#2729) 2025-10-03 23:59:42 +02:00
Shlomo dac49182f8 feat(macos): add command-comma shortcut to open settings (#2715)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-09-22 02:35:51 +02:00
Shlomo 343ef23448 fix: enable Hardened Runtime for Mac App Store vesion (#2716) 2025-09-22 02:33:52 +02:00
Shlomo 9da194b71f chore: add macOS targets to rust-toolchain.toml (#2717) 2025-09-22 02:32:52 +02:00
Shlomo d829a8b0a8 fix: link systemconfiguration framework (#2718) 2025-09-22 02:32:29 +02:00
Shlomo 2823bee062 feat: use NSService instead of Apple Events for dock icon text drops (#2712)
enables Dock icon text-drop even when the app is not running
2025-09-21 23:59:50 +08:00
Shlomo b00e187b5b fix: add delegate method for URL opening (#2711) 2025-09-21 23:59:01 +08:00
Tien Do Nam 46d96a6da8 feat: add sponsors 2025-09-18 00:35:13 +08:00
Tien Do Nam 1f135f10af Merge remote-tracking branch 'origin/sponsor-warp'
# Conflicts:
#	README.md
2025-09-01 17:33:28 +02:00
Tien Do Nam 8897dde46b docs: add linux dependencies 2025-08-26 12:04:20 +02:00
Tien Do Nam fd27037cac docs: update sponsor tag line 2025-08-21 01:08:49 +02:00
Tien Do Nam 9b45fadd13 docs: remove sponsor
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-08-20 12:37:10 +02:00
Tien Do Nam 9ac82e9ef7 fix: build issues on newest Flutter
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-08-14 23:25:59 +03:00
Tien Do Nam e36afb8ac1 docs: update sponsor 2025-08-14 23:23:51 +03:00
Tien Do Nam 8ee9b1bd13 deps: bump flutter from 3.24.5 to 3.32.8
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-08-14 17:41:54 +03:00
Tien Do Nam e4c9b0cd36 docs: add sponsor 2025-08-14 17:16:08 +03:00
Tien Do Nam f57cae5561 feat: complete nonce exchange 2025-07-16 21:20:45 +02:00
Tien Do Nam 5a7a15a553 feat: simplify server 2025-07-15 17:31:09 +02:00
Tien Do Nam e605e78ebd feat: add nonce route 2025-07-14 22:30:06 +02:00
Tien Do Nam 13ba9b7008 feat: extend http server structure 2025-07-12 22:54:12 +02:00
Tien Do Nam d7f73b9585 deps: bump Rust core dependencies 2025-07-12 20:58:03 +02:00
Tien Do Nam 0b332bdd61 feat: webrtc discovery (#2204) 2025-07-12 18:59:45 +02:00
Chenx Dust ae2780638d feat: support windows share sheet (#2555) 2025-07-09 22:32:58 +02:00
92 b6db22f1b5 Update bug_report.yaml (#2518) 2025-07-09 15:51:45 +02:00
stelle a14e610ee0 added the Malay translation (#2520) 2025-07-09 15:40:52 +02:00
Dario Landucci bebd6f3ebc Updated README_IT.md (#2509)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-06-24 13:38:51 +02:00
ReallLucky 42d8c82898 A clean UI revamp (#2416)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-05-26 18:49:52 +02:00
Ivan Saprykin 0f26007f6f fix: #2373 disable sleep preventing when files are uploaded/downloaded (#2457) 2025-05-14 03:51:43 +02:00
Ivan Saprykin 3ea7f142f0 Update files name duplicate counter (#2391) (#2455) 2025-05-14 02:12:26 +02:00
Shlomo 786d7fb257 feat: enable silent startup using LSUIElement (#2449) 2025-05-09 15:21:39 +02:00
Tien Do Nam 09b9482358 feat: polish system animation fetching
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-03-17 03:09:38 +01:00
Nitheesh Daram a1607fe5e3 FEAT #2333 Defaults to System Animations on Initial startup (andriod,ios and macos) (#2338) 2025-03-17 03:07:12 +01:00
Tien Do Nam 54ecdcd64f i18n: regenerate 2025-03-17 03:04:24 +01:00
Amerey 79519292ae updated czech translation (#2349) 2025-03-17 02:53:55 +01:00
Erik Junsved d67b84ffdb disable GTK3 headerbar by default on Linux (#2360) 2025-03-17 02:52:44 +01:00
Bryan James fd50a0130a Updated missing translations for fil-PH (#2356)
CI / format (push) Waiting to run
CI / test (push) Waiting to run
CI / packaging (push) Waiting to run
2025-03-16 16:31:47 +01:00
yoyo 24aea067a7 update ZH_CN (#2341)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-03-10 22:16:08 +01:00
Swagata Das 88d84d3dfd fix: error in bn translation (#2339)
CI / format (push) Waiting to run
CI / test (push) Waiting to run
CI / packaging (push) Waiting to run
2025-03-09 00:30:43 +01:00
Tien Do Nam acbb3ea45e i18n: regenerate 2025-03-07 21:31:01 +01:00
Ishtiaque Ahmed 3ac3b3584f improved bn translations (#2319) 2025-03-01 14:55:41 +01:00
飞机上的长电视 f397522b51 Update zh-TW.json (#2312) 2025-02-28 14:34:01 +01:00
Tien Do Nam b0bafc07bd Translated using Weblate (Chinese (Traditional Han script)) (#2302) 2025-02-28 14:08:23 +01:00
EFL 76eceb4f88 Update zh-CN.json (#2304)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-02-23 12:14:40 +01:00
Tien Do Nam ebdeb0d2b5 docs: add repology badge
CI / format (push) Waiting to run
CI / test (push) Waiting to run
CI / packaging (push) Waiting to run
2025-02-23 00:08:17 +01:00
Tien Do Nam 5627a304a1 style: remove unused import
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-02-20 13:37:39 +01:00
Jinwoo Lee 6586c6a3c3 i18n: Improve Korean (#2295) 2025-02-20 13:26:34 +01:00
Yevhenii Sirenko a2740fa537 fix: content of the text message written three times (#2296)
* fix: content of the text message in the info dialog box was written three times

* fix: text message content size is not calculated correctly
2025-02-20 12:36:46 +01:00
Yevhenii Sirenko 56f264d096 fix: text message content size is not calculated correctly (#2297) 2025-02-20 12:35:38 +01:00
Tien Do Nam 7f21d1f908 ci: release retry 3
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-02-19 16:22:33 +01:00
Tien Do Nam b989d9ee70 ci: release retry 2 2025-02-19 16:15:48 +01:00
Tien Do Nam d16cf82f6f ci: release 2025-02-19 16:03:00 +01:00
Tien Do Nam 24020968c0 release: 1.17.0+58 2025-02-19 15:04:13 +01:00
Tien Do Nam e7a09f367a deps: bump Rust to 1.84.1 2025-02-19 15:00:43 +01:00
Tien Do Nam 531bc714e0 deps: bump rhttp, shared_pref, wechat_assets_picker 2025-02-19 14:55:54 +01:00
Tien Do Nam 856e01b075 i18n: regenerate 2025-02-19 04:22:46 +01:00
Tien Do Nam 19b98d850b feat: deactivate sendignore 2025-02-19 04:08:58 +01:00
Tien Do Nam c9de11711f docs: update changelog 2025-02-19 04:08:58 +01:00
Tien Do Nam e8635204ec fix: path traversal 2025-02-19 04:08:57 +01:00
Tien Do Nam 221f40a90d fix(windows): unwanted location permission 2025-02-19 04:08:57 +01:00
Tien Do Nam a64373693e Translated using Weblate (#2168)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-02-17 23:55:31 +01:00
Simpidbit 8cda479950 Update README_ZH.md (#2286)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-02-16 13:33:18 +01:00
Eyüp Şengöz b776261d10 Update README.md (#2215)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-01-26 13:50:48 +01:00
Ali Eslamnejad e536ab4258 improved translation and space between words fa.json (#2209) 2025-01-26 13:49:48 +01:00
Amerey 13c45cb812 czech translation of README.md (#2236) 2025-01-26 13:46:41 +01:00
Aliet Expósito García afea53127f docs(readme): Update README_ES.md (#2223)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-01-19 00:00:15 +01:00
Tien Do Nam 03dccca3fe style: reformat
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-01-09 03:30:39 +01:00
Ethan Wang ef09826f3b .sendignore basics done (#2199)
CI / test (push) Waiting to run
CI / format (push) Waiting to run
CI / packaging (push) Waiting to run
2025-01-08 16:59:04 +01:00
涛之雨 f9a98512ba add inno chinesesimplified support (#2203)
CI / format (push) Waiting to run
CI / test (push) Waiting to run
CI / packaging (push) Waiting to run
2025-01-07 17:16:17 +01:00
Ali Mert d2df77f031 feat: update turkish language (#2188)
CI / format (push) Has been cancelled
CI / test (push) Has been cancelled
CI / packaging (push) Has been cancelled
2025-01-03 22:27:11 +01:00
Tien Do Nam 572955f1e0 chore: format
CI / format (push) Waiting to run
CI / test (push) Waiting to run
CI / packaging (push) Waiting to run
2025-01-03 00:03:27 +01:00
Sergiy Tkachuk a2b6f6aa65 README: Changing the language sequence for all available translations, based on the language order on the website (#2179) 2024-12-31 22:39:31 +01:00
Sergiy Tkachuk c5baa75250 README translation in Ukrainian and Russian (#2173) 2024-12-30 15:28:41 +01:00
Немања Димитријевић 0f3a69d190 Add me as a contributor (#2176) 2024-12-30 15:26:48 +01:00
Tien Do Nam 79e89c2ec2 feat: add advanced setting to filter network interfaces (#2167) 2024-12-28 02:55:37 +01:00
Tien Do Nam aaeb54b4f5 docs: update changelog 2024-12-27 03:20:44 +01:00
Tien Do Nam 311ff64381 fix: window disappears on command key (#2165) 2024-12-27 02:51:09 +01:00
Tien Do Nam 98253fe44a docs: update changelog 2024-12-27 00:03:53 +01:00
Tien Do Nam 838c84115e feat: decrease animation duration for progress bar 2024-12-26 23:59:37 +01:00
Tien Do Nam 54901f74c4 chore: update Podfile.lock 2024-12-26 23:53:15 +01:00
Tien Do Nam a4b938be55 i18n: update supported locales 2024-12-26 23:53:06 +01:00
Tien Do Nam 17d11c1b93 i18n: regenerate 2024-12-26 23:48:35 +01:00
Tien Do Nam eb0c1a1f9a Merge pull request #2164 from localsend/weblate
Translations update from Hosted Weblate
2024-12-26 23:46:52 +01:00
Hosted Weblate 1dcdb8b6df Translated using Weblate (German)
Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Mongolian)

Currently translated at 68.8% (254 of 369 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian (Cyrillic script))

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian (Cyrillic script))

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Estonian)

Currently translated at 63.9% (236 of 369 strings)

Translated using Weblate (Galician)

Currently translated at 32.7% (121 of 369 strings)

Translated using Weblate (Finnish)

Currently translated at 98.3% (363 of 369 strings)

Translated using Weblate (Estonian)

Currently translated at 18.9% (70 of 369 strings)

Added translation using Weblate (Estonian)

Translated using Weblate (Spanish)

Currently translated at 100.0% (369 of 369 strings)

Co-authored-by: Adrien N <adriennathaniel1999@gmail.com>
Co-authored-by: Alberto <amtaboada99@gmail.com>
Co-authored-by: Dedi Ananto <dedi.ananto@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kamborio <Kamborio15@users.noreply.hosted.weblate.org>
Co-authored-by: NEXI <nexiphotographer@gmail.com>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: Tien Do Nam <dev.tien.donam@gmail.com>
Co-authored-by: __filename <filename@inft.kr>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/localsend/app/ar/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/de/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/es/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/et/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/fi/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/gl/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/id/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/mn/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/sr/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/sr_Cyrl/
Translation: LocalSend/App
2024-12-26 23:45:52 +01:00
Tien Do Nam 6a6bdb351c feat: migrate to slang v4.4 2024-12-26 23:33:57 +01:00
Tien Do Nam 67a086ad13 i18n: regenerate 2024-12-26 23:23:54 +01:00
Tien Do Nam 2df255e7d7 Merge pull request #2115 from localsend/weblate
Translations update from Hosted Weblate
2024-12-26 23:12:14 +01:00
Tiago Barreto 4ecb64f7a6 Fix README translation to Brazilian Portuguese (#2158) 2024-12-26 22:49:56 +01:00
Hosted Weblate 01a77a4ebb Translated using Weblate (Mongolian)
Currently translated at 68.8% (254 of 369 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian (Cyrillic script))

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian (Cyrillic script))

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Estonian)

Currently translated at 63.9% (236 of 369 strings)

Translated using Weblate (Galician)

Currently translated at 32.7% (121 of 369 strings)

Translated using Weblate (Finnish)

Currently translated at 98.3% (363 of 369 strings)

Translated using Weblate (Estonian)

Currently translated at 18.9% (70 of 369 strings)

Added translation using Weblate (Estonian)

Translated using Weblate (Spanish)

Currently translated at 100.0% (369 of 369 strings)

Co-authored-by: Adrien N <adriennathaniel1999@gmail.com>
Co-authored-by: Alberto <amtaboada99@gmail.com>
Co-authored-by: Dedi Ananto <dedi.ananto@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kamborio <Kamborio15@users.noreply.hosted.weblate.org>
Co-authored-by: NEXI <nexiphotographer@gmail.com>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: __filename <filename@inft.kr>
Translate-URL: https://hosted.weblate.org/projects/localsend/app/es/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/et/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/fi/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/gl/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/id/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/mn/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/sr/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/sr_Cyrl/
Translation: LocalSend/App
2024-12-22 07:00:38 +01:00
Farshad Gh ade79974af fa translation update (#2143)
* Update strings_fa.json

* Update strings_fa.json

* Update strings_fa.json
2024-12-15 23:11:35 +01:00
xingnengmao666 9dd9c6cc3c Update strings_zh-CN.json (#2140) 2024-12-15 14:43:45 +01:00
LoboGuardian 🐺 3db73e2182 Add me as a contributor (#2134) 2024-12-14 17:31:11 +01:00
KISHORE KUMAR S 3a98edc4c8 Tamil Translation (#2129) 2024-12-12 00:03:00 +01:00
Jinwoo Lee 8fee4aada7 l10n: Update Korean Translation (#2103) 2024-12-04 00:14:58 +01:00
Tien Do Nam 0fbc9cc79b Merge pull request #2081 from localsend/weblate
Translations update from Hosted Weblate
2024-12-04 00:12:48 +01:00
Hosted Weblate 9701c0b5f1 Translated using Weblate (Tamil)
Currently translated at 20.8% (77 of 369 strings)

Added translation using Weblate (Tamil)

Translated using Weblate (Galician)

Currently translated at 30.0% (111 of 369 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (369 of 369 strings)

Added translation using Weblate (Galician)

Translated using Weblate (Mongolian)

Currently translated at 56.0% (207 of 369 strings)

Translated using Weblate (Azerbaijani)

Currently translated at 42.8% (158 of 369 strings)

Added translation using Weblate (Mongolian)

Translated using Weblate (Slovak)

Currently translated at 100.0% (369 of 369 strings)

Translated using Weblate (Azerbaijani)

Currently translated at 26.5% (98 of 369 strings)

Added translation using Weblate (Azerbaijani)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (369 of 369 strings)

Co-authored-by: Alberto <amtaboada99@gmail.com>
Co-authored-by: Arun Kumar <arunkumardec9@gmail.com>
Co-authored-by: Femini <nizamismidov4@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: LucasMZ <git@lucasmz.dev>
Co-authored-by: Vas R <mrkomododragon1234@gmail.com>
Co-authored-by: trunars <trunars@gmail.com>
Co-authored-by: Батмэнд Ганбаатар <batmend22@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/localsend/app/az/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/bg/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/gl/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/mn/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/sk/
Translate-URL: https://hosted.weblate.org/projects/localsend/app/ta/
Translation: LocalSend/App
2024-12-03 10:00:31 +01:00
Tien Do Nam f34d4fc40d deps: bump Rust to 1.83.0 2024-11-28 17:34:08 +01:00
Tien Do Nam cf67a77356 feat: open received file in gallery 2024-11-28 17:33:52 +01:00
Tien Do Nam 97d34dfa62 refactor: extract bmp to png converter 2024-11-28 14:15:46 +01:00
Tien Do Nam 8a38a89e32 feat: do not print file contents 2024-11-28 14:04:07 +01:00
Pitchaya Boonsarngsuk a3ec31620d feat: Convert Clipboard image to png (#2092) 2024-11-28 14:03:25 +01:00
Tien Do Nam 6c5f7ba060 docs: add troubleshooting to readme 2024-11-28 13:29:49 +01:00
Tien Do Nam 0986cd105e chore: format 2024-11-23 01:42:59 +01:00
Tien Do Nam 49fb2d8010 i18n: regenerate 2024-11-23 01:41:26 +01:00
Tien Do Nam 743d726701 fix: black screen when tapping on "Back" twice in "Share via link" (#2079) 2024-11-23 01:14:24 +01:00
Lightning-Lion df672340c6 Provided Animation for Progress Bar (#2067) 2024-11-23 00:56:52 +01:00
TheGuy 9ccf744597 Fix incorrect APP_NAME on macOS (#2069) 2024-11-23 00:55:25 +01:00
Tien Do Nam a4782234ec Translated using Weblate (Bulgarian) (#2075)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: trunars <trunars@gmail.com>
2024-11-23 00:42:15 +01:00
Tien Do Nam 36448c33d8 deps: update lock files to use new cocoapods version 2024-11-23 00:41:24 +01:00
Tien Do Nam 666e55e5ad deps: bump flutter to 3.24.5 2024-11-23 00:40:29 +01:00
Tien Do Nam 4a87715f82 deps: bump dependencies 2024-11-21 03:41:29 +01:00
Igor 86ce2ef591 Fix typo in strings_ro.json (#2060) 2024-11-21 03:33:33 +01:00
Tien Do Nam 10faedcffa Translated using Weblate (Kabyle) (#2012)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ahmet Gezici <ahmetgezici-01@hotmail.com>
Co-authored-by: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>
Co-authored-by: Giovanni Donisi <giovannidonisi0701@gmail.com>
Co-authored-by: KISHORE KUMAR S <livekishore2001@gmail.com>
Co-authored-by: Moo <hazap@hotmail.com>
Co-authored-by: Mücteba <muctebanesiri@gmail.com>
Co-authored-by: Nick Wick <NickWick@users.noreply.hosted.weblate.org>
Co-authored-by: R_SACI <rgebbid@gmail.com>
Co-authored-by: Sarp “zarpcik” Küçük <sarpkucuk@gmail.com>
Co-authored-by: Sehan Weerasekara <shehanrweerasekara@gmail.com>
Co-authored-by: Vasilis K <skyhirules@gmail.com>
Co-authored-by: ayushash1 <ayushashtikar95@gmail.com>
Co-authored-by: trunars <trunars@gmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
2024-11-21 03:33:23 +01:00
ray.zh ea13651762 fixbug #2043 (#2044) 2024-11-15 02:04:15 +01:00
xiaoxiaolexlh 5938321a0d docs: add getting started steps (#2027) 2024-11-13 17:30:18 +01:00
Anish Kargaonkar 17262cc19a fix: ensure screen stays awake during file transfer by periodically calling wakeLockPlus.enable() (#2022) 2024-11-09 01:16:56 +01:00
Tien Do Nam 3b143fd56f feat: update dependencyInfo by f-droid 2024-11-08 12:59:49 +01:00
Tien Do Nam 9a97584137 ci: install correct Rust toolchain also for the release action 2024-11-07 20:37:23 +01:00
Tien Do Nam eef02aac65 ci: install correct Rust toolchain 2024-11-07 20:05:32 +01:00
Tien Do Nam aa54405222 docs: update changelog 2024-11-06 00:59:49 +01:00
Tien Do Nam 4fc4376398 release: 1.16.2+57 2024-11-06 00:48:55 +01:00
Tien Do Nam 7b42deba77 deps: bump share_handler 2024-11-06 00:32:41 +01:00
Ahmet Burak 308d2f1289 i18n: add missing Turkish translations (#2008) 2024-11-05 14:44:05 +01:00
Tien Do Nam 216eb5e2ee fix: windows build 2024-11-05 00:25:53 +01:00
Tien Do Nam 02954b7f5b release: 1.16.1+56 2024-11-05 00:07:39 +01:00
Tien Do Nam 856ff716db feat: regenerate 2024-11-05 00:06:13 +01:00
Tien Do Nam 00c5cd6263 i18n: regenerate 2024-11-04 23:54:06 +01:00
Ali Mert 38d77f1633 Turkish language link add to README.md (#2004) 2024-11-04 23:53:26 +01:00
Tien Do Nam 19fd45e9ea Translated using Weblate (Polish) (#2005)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
2024-11-04 23:53:14 +01:00
Tien Do Nam cc66e88e9c feat: avoid necessary copy when saving file to Android 2024-11-04 23:29:08 +01:00
Tien Do Nam 3b88ab551f deps: bump dependencies 2024-11-04 23:28:43 +01:00
Tien Do Nam 7725b69944 docs: use correct homebrew repo url 2024-11-04 22:04:11 +01:00
Tien Do Nam 73d8c6d9a9 feat: migrate away from dio 2024-11-04 21:50:04 +01:00
Tien Do Nam 82e2d8c0de feat: use rhttp in all isolates 2024-11-04 19:04:17 +01:00
Tien Do Nam a155ebb57d feat: show exact error when typing IP address manually 2024-11-04 18:38:27 +01:00
Tien Do Nam 1941e542db docs: add translate badge 2024-11-04 15:28:33 +01:00
Tien Do Nam e515beef0b i18n: regenerate 2024-11-04 15:24:49 +01:00
Tien Do Nam 696eb757d4 Translated using Weblate (German) (#2000) 2024-11-04 15:06:11 +01:00
Tien Do Nam 2d40ab9a17 Translated using Weblate (English) (#1999) 2024-11-04 14:56:13 +01:00
Tien Do Nam 4e473f3ed7 docs: mention Weblate 2024-11-04 14:45:32 +01:00
Ali Mert 0f603d18cc Turkish Language (#1997)
* feat: Turkish language support has been added.

* feat: Turkish language support has been added

* up
2024-11-04 14:29:02 +01:00
Mohammad Jamalianpour 1a7927f7e8 Add Farsi to readme (#1995) 2024-11-03 16:44:25 +01:00
Tien Do Nam b9e7693000 feat: highlight file when tapping "Show in folder" (#1994) 2024-11-03 16:43:34 +01:00
Tien Do Nam 140546591e fix: close all isolates properly 2024-11-03 14:58:31 +01:00
soya_daizu d240a5b0d8 i18n: update ja (#1991) 2024-11-03 14:29:02 +01:00
Tien Do Nam 0645b9c367 fix: windows build issues 2024-11-03 04:10:48 +01:00
Tien Do Nam 02fe960261 chore: update Podfile.lock 2024-11-03 03:52:23 +01:00
Tien Do Nam 15fc9a891c fix: build issues 2024-11-03 02:35:19 +01:00
Tien Do Nam 1c97db551b docs: update changelog 2024-11-03 02:31:18 +01:00
Tien Do Nam 310addf92a fix: build issues 2024-11-03 02:15:56 +01:00
Tien Do Nam 4d05740380 release: 1.16.0+55 2024-11-03 01:53:12 +01:00
Tien Do Nam dd9f1dc7fe feat: set rust override 2024-11-03 01:49:00 +01:00
Tien Do Nam 2e6d24accc docs: update changelog 2024-11-03 01:41:21 +01:00
Tien Do Nam b3df83f14e i18n: regenerate 2024-11-03 01:34:28 +01:00
Tien Do Nam f56d6bde86 feat: use rhttp (#1988) 2024-11-03 00:33:22 +01:00
Martijn van B. 74ae622ff2 Update _missing_translations_nl.json (#1987) 2024-11-03 00:12:07 +01:00
Tatu f917db0599 capitalize only the first letter (#1986) 2024-11-01 22:36:14 +01:00
Giovanni Donisi 7b96d73fbf Update _missing_translations_it.json (#1985) 2024-11-01 22:36:03 +01:00
Tien Do Nam f9e6cfcc7f i18n: regenerate 2024-11-01 22:08:30 +01:00
UnifeGi 3deb5f38da Update _missing_translations_ro.json (#1984) 2024-11-01 13:00:50 +01:00
Tien Do Nam b12fabb644 i18n: regenerate 2024-10-31 23:49:24 +01:00
Tien Do Nam fa8170d05a Enable multithreading on sending side (#1983) 2024-10-31 21:07:08 +01:00
Tien Do Nam 8633e140e9 docs: move compatibility table up 2024-10-31 16:39:28 +01:00
Tien Do Nam 1cff64e493 docs: add compatibility table 2024-10-31 16:38:15 +01:00
Tien Do Nam 11197d115c feat: also compile dmg in sandboxed mode 2024-10-31 16:27:38 +01:00
Matthaiks 46b7f2ae0e Update Polish translation (#1980) 2024-10-31 16:11:51 +01:00
Shlomo f2f3b79bc3 fix(macos): persist destination folder access across app launches (#1979) 2024-10-31 16:11:24 +01:00
Tien Do Nam 4a03f85267 feat: add open in folder button 2024-10-31 01:46:38 +01:00
graphemecluster 68fdb3b27b Update (mainly) zh-* Translations for v1.16 (#1977) 2024-10-31 01:34:39 +01:00
Tien Do Nam 4e6284dbe5 fix: ios persistent folder access (not working) 2024-10-30 04:01:55 +01:00
Jozef Gaal d16ad0c626 Translated missing Slovak translations (#1973) 2024-10-30 02:12:41 +01:00
Petros Kyladitis 6a47e1ec0f Update Greek translation (#1972) 2024-10-30 00:23:35 +01:00
Andrew c163830269 add missing_translations_vi and fix readme_vi (#1970) 2024-10-29 16:18:17 +01:00
Matthaiks 12402031d7 Update Polish translation (#1967) 2024-10-28 23:02:45 +01:00
Tien Do Nam 96d8534fda i18n: regenerate 2024-10-28 22:19:45 +01:00
Sergiy Tkachuk 91261ba1c4 i18n: Updates for missing translations for Ukrainian and Russian. Also, a minor correction for English (#1965) 2024-10-28 22:14:10 +01:00
Amerey 93396cd45b updated czech translation (#1963) 2024-10-28 22:13:53 +01:00
tanmay63-design 1a3026599c Updated Screenshots for F-Droid and Google Playstore (#1964) 2024-10-28 22:12:55 +01:00
Vic 26e56627f3 i18n: add French README and update French translations (#1962) 2024-10-28 19:30:20 +01:00
Esteban Daniel Saracho 7292fff162 i18n: Minor translation changes for spanish (#1956) 2024-10-28 19:24:24 +01:00
nkh0472 0f02bc86fc Update strings_zh-CN.json (#1957) 2024-10-28 19:24:04 +01:00
Tien Do Nam 480d7dfab6 feat: set platform hint 2024-10-28 02:17:38 +01:00
Tien Do Nam f43c9da494 refactor: encapsulate isolate container 2024-10-28 02:00:33 +01:00
Tien Do Nam a87928b2e2 refactor: improve type safety for isolates 2024-10-28 01:27:33 +01:00
Tien Do Nam 447d77e285 i18n: regenerate 2024-10-27 23:08:40 +01:00
Farshad Gh bb81e00b24 Update _missing_translations_fa.json (#1954) 2024-10-27 22:51:36 +01:00
Chandara H. Wei d30fbdb817 Update '_missing_translations_km.json' and 'strings_km'. Create a new README for the Khmer language and include Indonesian md file mentioning in each README which missing. (#1955) 2024-10-27 22:51:21 +01:00
Tien Do Nam 7a5ab04554 fix: add missing locales to ios/macos config 2024-10-27 18:37:04 +01:00
Tien Do Nam fd26aec520 i18n: regenerate 2024-10-27 18:33:25 +01:00
LoboGuardian 🐺 82ab18d387 Update _missing_translations_es_ES.json (#1947) 2024-10-27 18:26:49 +01:00
ИEØ_ΙΙØZ f1b50adf17 Update _missing_translations_zh_TW.json (#1948) 2024-10-27 18:26:35 +01:00
gidano f033659621 Update _missing_translations_hu.json (#1949) 2024-10-27 18:24:25 +01:00
Matthaiks 3be57d4407 Update Polish translation (#1950) 2024-10-27 18:24:06 +01:00
Nebojsa Tomic 35a32e07a7 Update missing translations Serbian (#1951) 2024-10-27 18:17:14 +01:00
Bryan James 57a023a039 i18n: Added missing translation for fil-PH (#1952) 2024-10-27 18:16:59 +01:00
Arthur Lobo 76699a78d4 i18n: add missing translations (#1953) 2024-10-27 18:16:42 +01:00
Tien Do Nam d0ff18b8e1 feat: use Material3 "SegmentedButton" 2024-10-27 03:26:13 +01:00
Tien Do Nam d612d5ba71 i18n: regenerate 2024-10-27 03:16:52 +01:00
Tien Do Nam ae9d28f6b5 feat: use default alignment for NavigationRail 2024-10-27 03:15:55 +01:00
Shlomo d3921ad1b5 Update _missing_translations_he.json (#1946) 2024-10-27 03:15:37 +01:00
Tien Do Nam 0e1318bd14 docs: update changelog 2024-10-27 02:49:46 +01:00
Shlomo e109feac11 fix: link receiving buttons padding in RTL langs (#1945) 2024-10-27 02:49:31 +01:00
Tien Do Nam 6aa7173bd1 deps: bump flutter to 3.24.4 2024-10-27 02:42:37 +01:00
Tien Do Nam ef140266ed feat: update receive tab quick save buttons 2024-10-27 02:37:15 +01:00
Tien Do Nam f5e2094878 fix: load all locales in language page 2024-10-27 02:29:43 +01:00
Tien Do Nam 08fdc9165d i18n: regenerate, use slang v4 2024-10-27 02:45:17 +02:00
Tien Do Nam 7cc185373f fix: correctly close progress page 2024-10-27 02:26:56 +02:00
Shlomo be531e2317 fix: "would like to access data from other apps" warning popup on macOS Sequoia (#1944) 2024-10-27 01:33:21 +02:00
Tien Do Nam d0e864ddf6 feat: update iOS project 2024-10-26 14:25:55 +02:00
Tien Do Nam f6443e6461 fix(android): build issue 2024-10-26 14:25:29 +02:00
Matthaiks 9b3ed3d1ad Update Polish translation (#1928) 2024-10-26 13:26:29 +02:00
Saeed Rasooli 644542effd fix typo in Persian translation of "carrot" (#1937) 2024-10-25 15:38:33 +02:00
LoboGuardian 🐺 5e2be88e43 Update _missing_translations_es_ES.json (#1929) 2024-10-23 00:23:33 +02:00
Leaflet ff932bc9a6 update README.md to reference snap build instructions (#1926) 2024-10-22 17:56:30 +02:00
ReksaTresna 50df6a3a25 Update strings_id.json (#1910) 2024-10-22 13:39:59 +02:00
sf0nt e959e4a75c update catalan translation (#1905) 2024-10-22 13:39:41 +02:00
Himanshu 04c1aa3620 feature: Added auto-closing dialog (#1917) 2024-10-22 13:39:14 +02:00
dvsilch 7017dde1d0 fix: UninstallDisplayIcon missing in Windows Registry (#1904) 2024-10-16 00:08:11 +02:00
Tien Do Nam 83a2cc595c i18n: regenerate 2024-10-15 16:34:52 +02:00
Tien Do Nam ffb3a145dd style: single quotes 2024-10-15 16:34:45 +02:00
Pr0metheus 48aef534d4 Update strings_sk.json (#1903) 2024-10-15 16:33:24 +02:00
Guilherme Silva 09406512da fix(linux): use different tray icon path for flatpak (#1900) 2024-10-15 13:16:16 +02:00
Gavin John bd103c7d5a Fix window visibility bug (#1898) 2024-10-14 20:49:04 +02:00
Amerey 2d0f1e99fd updated czech translation (#1894) 2024-10-14 15:25:46 +02:00
Sergiy Tkachuk b25f1d5e2b Update strings_uk.json (#1895) 2024-10-14 15:25:37 +02:00
Martijn van B. ad2ef80b87 Update translators.dart (#1896) 2024-10-14 14:56:17 +02:00
Martijn van B. 233441bcc7 Update _missing_translations_nl.json (#1888) 2024-10-11 17:35:48 +02:00
Janez Troha 5e35363c1b Add: Slovenian translation (#1883) 2024-10-10 16:07:47 +02:00
Dario Landucci 48aa665e7f Fixed README_ID.md redirect and updated translators.dart (#1880) 2024-10-09 13:31:09 +02:00
Tien Do Nam 962b87c6c2 style: reformat 2024-10-08 22:11:38 +02:00
Tien Do Nam 11e508d5bd feat: migrate away from app_group_directory 2024-10-08 22:11:21 +02:00
Tien Do Nam 5eb6a1f328 feat: migrate to new Gradle structure 2024-10-08 22:10:29 +02:00
Iqbal F 9a068562ef Fix and update Indonesian translations in strings_id.json (#1878) 2024-10-08 22:08:40 +02:00
KISHORE KUMAR S e1a6bcff1d Select Multiple APK at once (Issue: #1439) (#1875) 2024-10-08 22:08:00 +02:00
Tien Do Nam 88bba52b10 feat: add ms to supported languages for iOS and macOS 2024-10-07 17:01:08 +02:00
Tien Do Nam 0a71dae66c docs: update changelog 2024-10-07 16:59:24 +02:00
AnessZurba 0a5b223ba5 file_picker: add clipboard option to iOS. (#1873) 2024-10-07 16:47:57 +02:00
ScupidC0des 86158e7112 Added Readme Indonesian (#1874) 2024-10-07 16:47:09 +02:00
ScupidC0des 076f8e6370 Update _missing_translations_id.json (#1867) 2024-10-06 16:55:07 +02:00
Nebojsa Tomic 6afb770444 Update missing translations Serbian (#1870) 2024-10-06 16:54:50 +02:00
Manuel Santos Souza 954664bebf Fix/ptbr translations (#1865) 2024-10-06 16:54:21 +02:00
Tien Do Nam b14caed66a docs: switch to official homebrew version 2024-10-06 14:36:51 +02:00
Tien Do Nam 6d9da43041 i18n: regenerate 2024-10-05 17:29:42 +02:00
Louis Painter ab0432d8e3 Update _missing_translations_fr.json (#1847) 2024-10-05 17:27:03 +02:00
Sergiy Tkachuk 4112232d47 i18n: Update of missing translations for Ukrainian and Russian languages (uk-UK; ru-Ru) (#1848) 2024-10-05 17:26:49 +02:00
Dario Landucci 3793f6d201 Added Italian localization, Fixed PT_BR incorrect redirect (#1850) 2024-10-05 17:26:33 +02:00
Robert Riebisch e3b93c230d Update strings_de.json (#1854) 2024-10-05 17:26:06 +02:00
nkh0472 6e928c854e Update strings_zh-CN.json (#1855) 2024-10-05 17:25:51 +02:00
Erel 910724c8d8 i18n: update _missing_translations_he.json (#1860) 2024-10-05 17:25:27 +02:00
Ethan Zou 67a3fc2c40 Update CHANGELOG.md (#1851) 2024-10-05 17:25:08 +02:00
Tien Do Nam ef027f7b83 docs: update changelog 2024-10-01 00:32:31 +02:00
Tien Do Nam 999df21c3b style: format 2024-10-01 00:30:13 +02:00
Tien Do Nam b39da6b871 i18n: regenerate 2024-10-01 00:29:35 +02:00
Seidko 2227716c9c feat: support clipboard for android (#1754) 2024-10-01 00:19:02 +02:00
Ethan Zou 43460f3d54 Create strings_ms.json (#1838) 2024-09-29 23:41:01 +02:00
Oliver Kirkegaard Svendsen 6757c0600a Add persistence for 'Advanced Settings' (#1837) 2024-09-29 23:39:14 +02:00
Olivetti 8e89165654 i18n: Minor spelling errors (DE) (#1843) 2024-09-29 23:37:00 +02:00
Matthaiks fd8002e3bf Update Polish translation (#1836) 2024-09-29 02:53:20 +02:00
Manuel Santos Souza 3a5cf555b2 docs(readme): add pt_BR README.md translation (#1834) 2024-09-28 22:56:48 +02:00
Oliver Kirkegaard Svendsen 6d356ed751 Add alias re-generation and system name buttons to settings page (#1829) 2024-09-28 22:54:44 +02:00
Tien Do Nam 66d88bf818 docs: remove snap as TODO 2024-09-28 12:19:37 +02:00
Oliver Kirkegaard Svendsen b50a5effb5 Update Translation for Danish Language (#1822) 2024-09-28 12:12:18 +02:00
LoboGuardian 🐺 7d8738dd41 Update _missing_translations_es_ES.json (#1820) 2024-09-28 12:11:45 +02:00
Martijn van B. 4e130cba3b Update Dutch (NL) translation (#1828) 2024-09-28 12:11:14 +02:00
Gavin Dang b50b9ec348 refactor + add vietnamese readme translation (#1831) 2024-09-28 12:10:24 +02:00
Tien Do Nam e0db2ca61f fix: analyzer warnings 2024-09-26 02:46:57 +02:00
Tien Do Nam e0d105d759 docs: update changelog 2024-09-26 02:44:36 +02:00
Tien Do Nam 8b16c9f372 i18n: regenerate 2024-09-26 02:43:10 +02:00
Oliver Kirkegaard Svendsen 382ea97cde Danish language - update missing translations (#1812) 2024-09-26 02:40:52 +02:00
Shlomo 15c416b4e5 refactor: remove platform checks in macos_channel.dart (#1813) 2024-09-26 02:40:31 +02:00
Tien Do Nam 61f3ffdb8d deps: bump flutter from 3.13.9 to 3.24.3 2024-09-26 02:39:22 +02:00
Dario Landucci 414ae3ba76 i18n: Updated the Italian translation for consistency. (#1816) 2024-09-26 01:50:35 +02:00
Shlomo 889461289f refactor: make future migration to LaunchAtLogin-Modern easier (#1815) 2024-09-26 01:50:04 +02:00
Shlomo 65aac3c965 feat(macos): add sandboxed launch at login for App Store version (#1793) 2024-09-25 14:14:08 +02:00
Tien Do Nam dbd588beba feat: update Info.plist 2024-09-25 00:47:25 +02:00
Tien Do Nam 70b579c064 docs: update changelog 2024-09-25 00:47:11 +02:00
Tien Do Nam 031c6f61fa i18n: regenerate 2024-09-25 00:40:10 +02:00
albanobattistella 59613861f3 Update _missing_translations_it.json (#1803) 2024-09-25 00:35:34 +02:00
AmerDje 99add6944a Update _missing_translations_ar.json (#1804) 2024-09-25 00:35:24 +02:00
Aliet Expósito García 7f4bc3ea61 docs(readme): Add Spanish README.md translation (#1805) 2024-09-25 00:35:03 +02:00
Ryota 05f2d8bc34 add missing ja translations (#1807) 2024-09-25 00:34:55 +02:00
Guilherme Moura 86a56feaf1 Update pt-BR translation (#1809) 2024-09-25 00:34:43 +02:00
Farshad Gh 34a5c039e9 Update _missing_translations_fa.json (#1798) 2024-09-23 09:05:59 +02:00
Shlomo 48c90d3141 feat(macos): open the main window when the app is reopened (#1797) 2024-09-23 01:00:37 +02:00
Florian 04d46f2523 fix: ERR_EMPTY_RESPONSE when sharing text via link #1777 (#1796) 2024-09-23 00:42:41 +02:00
Shlomo 9bef26a335 feat(macos): change "start hidden" to minimize to menubar (#1795) 2024-09-20 14:17:20 +09:00
Bryan James 78abc5e103 Added missing translation for Fil PH (#1786) 2024-09-18 01:44:02 +09:00
Shlomo c7ad84730d fix: dock progress shows only once (#1785) 2024-09-18 01:43:23 +09:00
Shlomo dd95961bc9 Update strings_he.json (#1784) 2024-09-17 09:05:15 +09:00
Tien Do Nam dbedac1464 feat: finalize app icon status 2024-09-17 01:31:02 +09:00
Shlomo 3b1ce0756a feat(macos): show checkmark/xmark in Dock icon on transfer success/failure (#1783) 2024-09-17 00:44:32 +09:00
Tien Do Nam 50c00115e6 i18n: regenerate 2024-09-14 00:04:08 +09:00
Shlomo 47ca597768 feat(macos): show transfer progress in Dock icon (#1770) 2024-09-11 10:35:33 +09:00
Shlomo 3e03e5cca4 Update strings_he.json (#1775) 2024-09-11 09:57:23 +09:00
Shlomo b5b760a712 refactor: simplified methodChannelInitialized awaiting (#1771) 2024-09-11 09:54:53 +09:00
Nebojsa Tomic d7ff57eabb Update missing translations Serbian (#1769) 2024-09-11 00:14:10 +09:00
nkh0472 0bdcb8bb9f Update strings_zh-CN.json (#1768) 2024-09-11 00:12:56 +09:00
Tien Do Nam cf48c539fd fix: share extension when LocalSend is not running 2024-09-11 00:10:21 +09:00
Sergiy Tkachuk e34d75bbcb i18n: Updates for missing translations for Ukrainian and Russian. Also, a minor correction for English (#1766) 2024-09-10 12:17:07 +09:00
Shlomo 4055ebb1c3 refactor: use the showLocalSendFromMenuBar convenience function (#1767) 2024-09-10 12:16:20 +09:00
Matthaiks 5b2bd28b8d Update Polish translation (#1764) 2024-09-10 01:10:06 +09:00
Shlomo e29e896402 Update _missing_translations_he.json (#1763) 2024-09-10 01:09:54 +09:00
Tien Do Nam 3bcfb5d641 docs: update changelog 2024-09-10 00:25:20 +09:00
Tien Do Nam f67c2b90c0 refactor: encapsulate stream controller 2024-09-10 00:24:20 +09:00
Tien Do Nam 71bbe5efdb i18n: missing regenerate 2024-09-10 00:07:15 +09:00
Tien Do Nam 565e2b8d13 i18n: regenerate 2024-09-10 00:06:32 +09:00
Jozef Gaal fdfc9c7f70 Added Slovak translation (#1762) 2024-09-09 22:51:27 +09:00
Shlomo aa838d7e68 fix(macos): add missing setActivationPolicy (#1760) 2024-09-09 22:48:27 +09:00
Shlomo f2e895820f fix(macos): setMethodCallHandler shadowing (#1759) 2024-09-09 22:45:07 +09:00
Shlomo ab52d6e1cd fix(macos): files dragged to the menu bar item was handled as text (#1757) 2024-09-09 22:38:52 +09:00
Shlomo fc810d1598 fix(macos): mismatched versions build warning (#1751) 2024-09-09 22:28:01 +09:00
Tien Do Nam 688f56266b docs: update changelog 2024-09-09 00:03:00 +09:00
Shlomo 1c5b98a19b feat(macos): add support for text sharing and dropping (#1750) 2024-09-08 23:59:42 +09:00
Shlomo b266ffe2f0 feat(macos): add share extension (#1739) 2024-09-08 10:37:11 +09:00
Sergiy Tkachuk ea538a21e9 i18n: Correction for English language (#1733) 2024-09-07 00:06:57 +09:00
Bryan James 7db9df0973 Fixed missing translation for fil_PH (#1738) 2024-09-07 00:04:10 +09:00
Shlomo 201f921c59 fix: help icon flipped in RTL lang (#1743) 2024-09-07 00:03:56 +09:00
Tien Do Nam fedd884160 docs: update changelog 2024-09-05 01:12:01 +02:00
Shlomo 4ae402f773 fix: file picker options padding in RTL lang (#1731) 2024-09-05 01:11:00 +02:00
Shlomo 6c6ba283d1 refactor(macos): replace deprecated @NSApplicationMain with @main (#1732) 2024-09-05 01:10:22 +02:00
Shlomo 3444cdeeb3 fix: selected files box padding in RTL lang (#1730) 2024-09-05 00:14:21 +02:00
Tien Do Nam f6ec66cfd4 docs: update changelog 2024-09-04 02:18:12 +02:00
Tien Do Nam 5354864063 chore: update macos files 2024-09-04 02:16:25 +02:00
Tien Do Nam 7263250718 feat: share i18n strings with macos status bar item 2024-09-04 02:14:02 +02:00
Davte 13880fa4f5 Implemented feature to accept quickSave if sender is in favorites (#1698) 2024-09-04 01:59:27 +02:00
Shlomo b5ed1e642d feat(macos): add drag-and-drop support for menubar icon (#1716) 2024-09-04 01:57:50 +02:00
Rafael González aecc8d2e86 Update _missing_translations_es_ES.json (#1726) 2024-09-04 01:43:32 +02:00
Shlomo f6158d6907 Update _missing_translations_he.json (#1715) 2024-09-01 03:08:40 +02:00
Tien Do Nam cb8709f82d i18n: regenerate 2024-08-27 18:15:54 +02:00
Mirza Jaun 0748f3ba39 Updated missing urdu translations (#1708) 2024-08-27 18:04:05 +02:00
LivioZ 87e748c6ce Update italian translation (#1707) 2024-08-27 18:03:14 +02:00
Tien Do Nam d1039266ad i18n: regenerate again 2024-08-27 15:36:34 +02:00
Tien Do Nam 92cfd4c61b i18n: regenerate 2024-08-27 15:27:28 +02:00
soya_daizu b97d845ccb i18n: update ja (#1702) 2024-08-26 03:46:45 +02:00
Igor Rückert 39fc2c183b Update strings_pt-BR.json (#1697) 2024-08-24 23:02:15 +02:00
Furkan İ. d35c0edf76 Update _missing_translations_tr.json (#1691) 2024-08-23 13:30:55 +02:00
albanobattistella c60103aa32 Update _missing_translations_it.json (#1687) 2024-08-22 23:38:40 +02:00
Nixuge 1b45e76f6d Update _missing_translations_fr.json (#1683) 2024-08-21 18:22:14 +02:00
Tien Do Nam 087535a381 i18n: regenerate 2024-08-20 14:29:37 +02:00
Such a big pebble 420915a3ed Polish readme: Fix section links, a typo and localize Google Play Store name (#1675) 2024-08-20 14:15:39 +02:00
ИEØ_ΙΙØZ a7e8f4a756 Update missing translations of zh_TW (#1676) 2024-08-20 14:15:26 +02:00
Such a big pebble 867c4cd3c0 Add Polish README translation (#1669) 2024-08-20 12:09:51 +02:00
Tien Do Nam caab80f663 feat: only automatically finish when files are either successfully received or skipped 2024-08-20 12:02:06 +02:00
Tien Do Nam c734216878 chore: update Podfile.lock 2024-08-20 12:00:34 +02:00
gidano 00f73a7964 Update strings_hu.json (#1670) 2024-08-20 11:55:03 +02:00
Sergiy Tkachuk 5e77567f18 Update strings.json (#1673) 2024-08-20 11:53:57 +02:00
Tien Do Nam fd8140b688 release: 1.15.4+54 2024-08-20 02:58:01 +02:00
Tien Do Nam 54fd3aff02 i18n: regenerate 2024-08-20 02:57:39 +02:00
Tien Do Nam 6ffe8f0f98 fix: remove print 2024-08-20 02:30:58 +02:00
Tien Do Nam 52edff436c feat: use HttpServer instead of shelf 2024-08-20 02:16:15 +02:00
Tien Do Nam 79791e1b2d docs: fix changelog 2024-08-20 00:30:39 +02:00
Tien Do Nam b6c82e10c2 feat: adjust button width instead of padding 2024-08-20 00:29:12 +02:00
Tien Do Nam 109cb4f066 feat: add option to retry failed files (#1667) 2024-08-19 23:11:15 +02:00
Nebojsa Tomic 33adde4215 Serbian language - update missing translations (#1663)
* Update _missing_translations_sr.json

* Update _missing_translations_sr_Cyrl.json
2024-08-19 14:29:51 +02:00
Tien Do Nam 02c51defc0 docs: update changelog 2024-08-19 12:27:47 +02:00
Tien Do Nam 1a68c54eb4 feat: treat any URI as link (#1662) 2024-08-19 12:27:00 +02:00
Tien Do Nam ecfe9a5c31 docs: fix changelog 2024-08-19 12:13:54 +02:00
Tien Do Nam bc4baba39d docs: update changelog 2024-08-19 12:11:50 +02:00
Tien Do Nam 41c2b81a1b fix: memory leak when sending files (#1661) 2024-08-19 12:09:35 +02:00
Tien Do Nam 7048537a12 i18n: regenerate 2024-08-19 10:29:08 +02:00
Tien Do Nam 4dd4cde868 feat(mobile): adjust padding between buttons in send tab to indicate that it's scrollable (#1660) 2024-08-19 10:21:28 +02:00
nkh0472 42a1036adf Update strings_zh-CN.json (#1659) 2024-08-19 10:10:20 +02:00
Tien Do Nam 242bb961a1 i18n: update de 2024-08-19 03:21:54 +02:00
Tien Do Nam e1c8ae51e8 docs: update changelog 2024-08-19 03:21:30 +02:00
Tien Do Nam 01233ee64c i18n: regenerate 2024-08-19 02:42:43 +02:00
Sergiy Tkachuk b070314465 i18n: Updating missing translations for Ukrainian and Russian languages (uk-UK; ru-Ru) (#1655) 2024-08-19 02:41:42 +02:00
Matthaiks 6bfd6efb2d Update Polish translation (#1656) 2024-08-18 22:34:30 +02:00
Tien Do Nam 4b6ede8684 i18n: differentiate between dialog title and button 2024-08-18 17:00:04 +02:00
Sergiy Tkachuk 1896fafc2b Update strings.json (#1653) 2024-08-18 16:01:58 +02:00
Tien Do Nam 3e627772b0 i18n: regenerate 2024-08-18 14:24:55 +02:00
Tien Do Nam 426741d3b6 fix: do actual distinguish between quit and exit 2024-08-18 14:22:40 +02:00
Tien Do Nam d9de718d09 fix: add hi to language list 2024-08-18 14:19:59 +02:00
Tien Do Nam 69104ec4a6 docs: update changelog 2024-08-18 14:19:09 +02:00
Tien Do Nam 49b5a5a19f feat: add tooltip for the instant scan button 2024-08-18 14:10:59 +02:00
Linwel C. 6d34b71153 Added Filipino Translation (#1622) 2024-08-18 14:06:55 +02:00
Matthaiks ca11351dbe Update Polish translation (#1651) 2024-08-18 14:05:22 +02:00
nkh0472 f5036ff009 Update strings_zh-CN.json (#1652) 2024-08-18 14:04:51 +02:00
Sergiy Tkachuk b48435c4cd i18n: Update for missing translations/small correction of missing translations (Exit instead of Exit LocalSend) for all languages (#1650) 2024-08-18 14:03:28 +02:00
Tien Do Nam cc331f1638 i18n: distinguish between mac/linux and windows 2024-08-18 02:09:00 +02:00
Tien Do Nam ee5e96b491 i18n: regenerate 2024-08-18 02:00:29 +02:00
Tien Do Nam 917cd1e002 docs: update changelog 2024-08-18 01:57:44 +02:00
Tien Do Nam 15ffa4b93c fix: screen in bounds check 2024-08-18 01:57:44 +02:00
Sergiy Tkachuk 357cc5db81 Update strings.json (#1635) 2024-08-18 01:57:31 +02:00
FutoTan c11529f059 [Windows] Use dark title bar on dark system theme. (#1636) 2024-08-18 00:41:19 +02:00
Tien Do Nam 1445d27dff chore: change to apache 2.0 (#1649) 2024-08-17 22:45:01 +02:00
Nabtang d9dff50d15 Add Thai Translation into README.md file (#1595) 2024-08-10 03:17:40 +02:00
Linwel C. d7cd310009 Update _missing_translations_fil_PH.json (#1617)
Add missing translations for Filipino (PH)
2024-08-10 03:17:02 +02:00
Farshad Gh cf9f150b94 missing_translations_fa (#1613) 2024-08-10 03:16:50 +02:00
Sergiy Tkachuk 3ef3a35364 Update strings_uk.json (#1610) 2024-08-07 02:58:35 +02:00
Rishi Singh 059c7a2110 Hindi translation added (#1611) 2024-08-07 02:57:52 +02:00
Amerey 852febbe4c updated czech translation (#1600) 2024-08-06 16:23:01 +02:00
Bumsoo Kim cc459f1d66 Update Korean translation (#1602) 2024-08-06 16:22:38 +02:00
Nixuge c850336223 Update _missing_translations_fr.json (#1592) 2024-07-30 23:38:39 +02:00
Nabsatang02 f0dca0ce53 Update Thai Translation (#1588) 2024-07-30 17:09:08 +02:00
Ryan 587670b080 Update Winget Releaser job to latest tag (#1586) 2024-07-30 12:16:19 +02:00
Ikko Eltociear Ashimine b6246d89ca docs: add Japanese README file (#1584) 2024-07-29 17:58:32 +02:00
703 changed files with 132338 additions and 38614 deletions
+1 -1
View File
@@ -1,3 +1,3 @@
{
"flutter": "3.13.9"
"flutter": "3.38.10"
}
-58
View File
@@ -1,58 +0,0 @@
name: Bug report
description: Create a report to help us improve
title: Bug report
labels: ["bug :bug:"]
body:
- type: textarea
id: bug_report_description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is
validations:
required: true
- type: textarea
id: bug_report_reproduce
attributes:
label: To reproduce
description: Steps to reproduce the behavior
value: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true
- type: textarea
id: bug_report_expected_behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen
validations:
required: true
- type: textarea
id: bug_report_screenshots
attributes:
label: Screenshots
description: |
If applicable, add screenshots to help explain your problem
Tip: You can attach images by clicking this area to highlight it and then dragging files in.
- type: textarea
id: bug_report_desktop
attributes:
label: Desktop (please complete the following information)
placeholder: |
- OS: [e.g. iOS]
- Version: [e.g. 1.6.2]
- type: textarea
id: bug_report_smartphone
attributes:
label: Smartphone (please complete the following information)
placeholder: |
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version: [e.g. 1.6.2]
- type: textarea
id: bug_report_additional_context
attributes:
label: Additional context
description: Add any other context about the problem here
+95
View File
@@ -0,0 +1,95 @@
name: Bug report
description: Create a report to help us address issues you are facing
title: "bug: "
labels: [bug]
body:
- type: checkboxes
id: confirm
attributes:
label: Read [this](https://github.com/localsend/localsend/issues/528) before anything
options:
- label: I have read it.
- label: Issues not fitting are closed.
- type: checkboxes
id: duplication
attributes:
label: "Make sure about:"
options:
- label: This issue is not duplicated with any other open or closed issues.
required: true
- label: I am using the latest version from the release.
required: true
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is
placeholder: |
App crashes on startup every time after changing settings.
/
App crashes when sending/receiving massive files.
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen
placeholder: |
App started normally, everything worked fine.
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Reproduction
description: Steps to reproduce the bug
placeholder: |
1. Turn on "..." in "... settings"
2. Restart the app
3. Crash
/
1. Transfer a "..." file is ... size takes ... long
2. Observe ...
3. Crash
validations:
required: true
- type: textarea
id: environment
attributes:
label: Device information
description: Provide details about your system environment
placeholder: |
Device: (Pixel 9 Pro/Lenovo Yoga 9i)
System: (Android 16 BP31.2505/Windows 11 24H2)
Special things: (Rooted/Hardware damaged)
If applicable, both info of sender and receiver.
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem
placeholder: |
modified_setting_items.jpg
files_to_send.jpg
crashed_screen.jpg
validations:
required: false
- type: textarea
id: additional
attributes:
label: Additional context
description: Add any other context about the problem here
placeholder: |
Crash report or any helpful information.
validations:
required: false
+18
View File
@@ -0,0 +1,18 @@
blank_issues_enabled: false
contact_links:
- name: Security issues
url: https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md#security-issues
about: Help us address security issues as quickly and effectively as possible
- name: Get latest LocalSend
url: https://localsend.org/download
about: Your issue may be version related, so try updating first
- name: GitHub Discussions
url: https://github.com/localsend/localsend/discussions
about: If you think your issue isn't that serious, you can discuss it here
- name: Contributing guide
url: https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md
about: Check our contributing guide if youre interested or have time
@@ -1,29 +0,0 @@
name: Feature request
description: Suggest an idea for this project
title: Feature request
labels: ["feature :sparkles:"]
body:
- type: textarea
id: feature_request_description
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
id: feature_request_solution_description
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen
validations:
required: true
- type: textarea
id: feature_request_alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered
- type: textarea
id: feature_request_additional_context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here
@@ -0,0 +1,59 @@
name: Feature request
description: Suggest an idea for this project
title: "fr: "
labels: ["enhancement"]
body:
- type: checkboxes
id: confirm
attributes:
label: Read [this](https://github.com/localsend/localsend/issues/528) before anything
options:
- label: I have read it.
- label: Issues not fitting are closed.
- type: checkboxes
id: duplication
attributes:
label: "Make sure about:"
options:
- label: This issue is not duplicated with any other open or closed issues.
required: true
- label: This issue is a feature request, not a bug report.
required: true
- type: textarea
id: reason
attributes:
label: Reason of the change
description: Why the things need to be changed? Inconvenient or logical wrong?
placeholder: |
Because if I want to ..., I'll need to ...
It's not very ... to do so ...
validations:
required: true
- type: textarea
id: solution
attributes:
label: Description of the change
description: What should we change or add, to make it better?
placeholder: |
If there's a choice like ..., it will be more ...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: The alternatives you've considered
description: If we are unable to do that above, any other solution?
placeholder: |
Add a ... also helps ...
- type: textarea
id: additional
attributes:
label: Additional context
description: Add any other context or screenshots about the request here
placeholder: |
Related app, website, system, or a design. Anything helpful can be here.
+19 -10
View File
@@ -7,49 +7,57 @@ on:
branches: [main]
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.38.10"
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
- uses: actions/checkout@v6
- name: Setup Flutter SDK
uses: flutter-actions/setup-flutter@v4
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Dependencies (app)
working-directory: app
run: flutter pub get
- name: Dependencies (cargokit - rust_builder)
working-directory: app/rust_builder/cargokit/build_tool
run: flutter pub get
- name: Remove gen directory (app)
working-directory: app
run: rm -rf lib/gen
- name: Check format (app)
working-directory: app
run: dart format --line-length 150 --set-exit-if-changed lib test
run: dart format --set-exit-if-changed lib test
- name: Dependencies (common)
working-directory: common
run: dart pub get
- name: Check format (common)
working-directory: common
run: dart format --line-length 150 --set-exit-if-changed lib test
run: dart format --set-exit-if-changed lib test
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
- uses: actions/checkout@v6
- name: Setup Flutter SDK
uses: flutter-actions/setup-flutter@v4
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Dependencies (app)
working-directory: app
run: flutter pub get
- name: Dependencies (cargokit - rust_builder)
working-directory: app/rust_builder/cargokit/build_tool
run: flutter pub get
- name: Analyze (app)
working-directory: app
run: flutter analyze
@@ -71,7 +79,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Extract version from pubspec.yaml
id: pubspec_version
run: |
@@ -94,3 +102,4 @@ jobs:
else
echo "Versions match."
fi
+13 -6
View File
@@ -4,17 +4,18 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
RUST_VERSION: "1.84.1"
APK_BUILD_DIR: "/tmp/build"
jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -28,7 +29,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Remove proprietary dependencies
run: sh scripts/remove_proprietary_dependencies.sh
@@ -51,7 +52,7 @@ jobs:
run: mkdir secrets && echo $ENCODED_STRING | base64 -di > secrets/android-keystore.jks
- name: Set up JDK 17
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
@@ -61,6 +62,12 @@ jobs:
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: ${{ env.RUST_VERSION }}
- name: Dependencies
working-directory: ${{ env.APK_BUILD_DIR }}/app
run: flutter pub get
@@ -70,7 +77,7 @@ jobs:
run: flutter build apk --split-per-abi
- name: Upload APK
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: apk-result
path: |
+4 -4
View File
@@ -4,7 +4,7 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
jobs:
build:
@@ -13,7 +13,7 @@ jobs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -28,7 +28,7 @@ jobs:
runs-on: [self-hosted, linux, arm64]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -66,7 +66,7 @@ jobs:
recipe: ./AppImageBuilder.yml
- name: Upload AppImage file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: appimage-arm-64-result
path: ./*.AppImage
+9 -9
View File
@@ -4,17 +4,17 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
APK_BUILD_DIR: "/tmp/build"
jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -34,23 +34,23 @@ jobs:
- name: Build generated files
working-directory: app
run: flutter pub run build_runner build -d
run: dart run build_runner build -d
- name: Upload updated lib files with generated code
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: lib-files
path: ./app/lib/*
build_appimage:
needs: build
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Download generated files
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: lib-files
path: app/lib
@@ -95,7 +95,7 @@ jobs:
recipe: ./app/AppImageBuilder.yml
- name: Upload AppImage file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: appimage-result
path: ./app/*.AppImage
+76 -35
View File
@@ -4,17 +4,18 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
RUST_VERSION: "1.84.1"
APK_BUILD_DIR: "/tmp/build"
jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -28,7 +29,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Remove proprietary dependencies
run: sh scripts/remove_proprietary_dependencies.sh
@@ -51,7 +52,7 @@ jobs:
run: mkdir secrets && echo $ENCODED_STRING | base64 -di > secrets/android-keystore.jks
- name: Set up JDK 17
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
@@ -61,6 +62,16 @@ jobs:
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: ${{ env.RUST_VERSION }}
- name: Check rust-toolchain.toml
working-directory: ${{ env.APK_BUILD_DIR }}/app
run: rustup show
- name: Dependencies
working-directory: ${{ env.APK_BUILD_DIR }}/app
run: flutter pub get
@@ -70,7 +81,7 @@ jobs:
run: flutter build apk --split-per-abi
- name: Upload APK
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: apk-result
path: |
@@ -80,10 +91,10 @@ jobs:
build_tar_x86_64:
needs: build
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -95,6 +106,16 @@ jobs:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: ${{ env.RUST_VERSION }}
- name: Check rust-toolchain.toml
working-directory: app
run: rustup show
- name: Dependencies
working-directory: app
run: flutter pub get
@@ -109,7 +130,7 @@ jobs:
tar -czvf ../../../../../result.tar.gz *
- name: Upload tar.gz archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: tar-gz-x86-64-result
path: ./app/*.tar.gz
@@ -121,7 +142,7 @@ jobs:
runs-on: [ self-hosted, linux, arm64 ]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -142,17 +163,17 @@ jobs:
tar -czvf ../../../../../result.tar.gz *
- name: Upload tar.gz archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: tar-gz-arm-64-result
path: ./app/*.tar.gz
build_deb_x86_64:
needs: build
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -164,6 +185,16 @@ jobs:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: ${{ env.RUST_VERSION }}
- name: Check rust-toolchain.toml
working-directory: app
run: rustup show
- name: Enable dart_distributor
run: dart pub global activate flutter_distributor
@@ -190,7 +221,7 @@ jobs:
fi
- name: Upload deb file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: deb-x86-64-result
path: ${{ steps.find_deb.outputs.deb_path }}
@@ -202,7 +233,7 @@ jobs:
runs-on: [ self-hosted, linux, arm64 ]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -232,17 +263,17 @@ jobs:
fi
- name: Upload deb file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: deb-arm-64-result
path: ${{ steps.find_deb.outputs.deb_path }}
build_appimage_x86_64:
needs: build
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -254,6 +285,16 @@ jobs:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: ${{ env.RUST_VERSION }}
- name: Check rust-toolchain.toml
working-directory: app
run: rustup show
- name: Dependencies
working-directory: app
run: flutter pub get
@@ -285,7 +326,7 @@ jobs:
recipe: ./AppImageBuilder.yml
- name: Upload AppImage file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: appimage-x86-64-result
path: ./*.AppImage
@@ -299,7 +340,7 @@ jobs:
run: git config --system core.longpaths true
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- uses: subosito/flutter-action@v2
with:
@@ -316,21 +357,21 @@ jobs:
- name: Create empty settings.json
working-directory: app
run: echo {} > build/windows/runner/Release/settings.json
run: echo {} > build/windows/x64/runner/Release/settings.json
- name: Add DLL files
working-directory: app
run: |
Copy-Item ../scripts/windows/x64/msvcp140.dll build/windows/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140.dll build/windows/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140_1.dll build/windows/runner/Release/
Copy-Item ../scripts/windows/x64/msvcp140.dll build/windows/x64/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140.dll build/windows/x64/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140_1.dll build/windows/x64/runner/Release/
- name: Zip compiled files
working-directory: app
run: Compress-Archive -Path build/windows/runner/Release/* -DestinationPath LocalSend.zip
run: Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath LocalSend.zip
- name: Upload zip
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: windows-zip-x86-64-result
path: app/LocalSend.zip
@@ -345,10 +386,10 @@ jobs:
- build_deb_arm_64
- build_appimage_x86_64
- build_windows_zip_x86_64
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Draft release
id: draft_release
@@ -361,7 +402,7 @@ jobs:
# APK
- name: Download apk file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: apk-result
path: apk-result
@@ -401,7 +442,7 @@ jobs:
# TAR.GZ (x86_64)
- name: Download tar.gz file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: tar-gz-x86-64-result
path: tar-gz-x86-64-result
@@ -424,7 +465,7 @@ jobs:
# TAR.GZ (arm_64)
- name: Download tar.gz file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: tar-gz-arm-64-result
path: tar-gz-arm-64-result
@@ -447,7 +488,7 @@ jobs:
# DEB (x86_64)
- name: Download deb file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: deb-x86-64-result
path: deb-x86-64-result
@@ -467,7 +508,7 @@ jobs:
# DEB (arm_64)
- name: Download deb file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: deb-arm-64-result
path: deb-arm-64-result
@@ -487,7 +528,7 @@ jobs:
# APPIMAGE (x86_64)
- name: Download AppImage file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: appimage-x86-64-result
path: appimage-x86-64-result
@@ -515,7 +556,7 @@ jobs:
# WINDOWS ZIP (x86_64)
- name: Download windows zip file
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: windows-zip-x86-64-result
path: windows-zip-x86-64-result
+4 -4
View File
@@ -4,7 +4,7 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
jobs:
build:
@@ -13,7 +13,7 @@ jobs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -28,7 +28,7 @@ jobs:
runs-on: [self-hosted, linux, arm64]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -69,7 +69,7 @@ jobs:
ar rcs ../${{ steps.find_deb.outputs.deb_path }} debian-binary control.tar.xz data.tar.xz
- name: Upload deb file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: deb-arm-64-result
path: ${{ steps.find_deb.outputs.deb_path }}
+4 -4
View File
@@ -4,7 +4,7 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
jobs:
build:
@@ -13,7 +13,7 @@ jobs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -28,7 +28,7 @@ jobs:
runs-on: [self-hosted, linux, arm64]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -49,7 +49,7 @@ jobs:
tar -czvf ../../../../../result.tar.gz *
- name: Upload tar.gz archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: tar-gz-arm-64-result
path: ./app/*.tar.gz
+5 -5
View File
@@ -4,16 +4,16 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
container: fedora:38
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: sudo dnf install -y clang cmake gtk3-devel ninja-build libappindicator-gtk3-devel jq findutils which git patchelf rpm-build
@@ -75,7 +75,7 @@ jobs:
fi
- name: Upload rpm file
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: rpm-result
path: ${{ steps.find_rpm.outputs.rpm_path }}
+10 -10
View File
@@ -4,16 +4,16 @@ on:
workflow_dispatch:
env:
FLUTTER_VERSION: "3.13.9"
FLUTTER_VERSION: "3.35.6"
jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.get_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get version from pubspec.yaml
id: get_version
@@ -30,7 +30,7 @@ jobs:
run: git config --system core.longpaths true
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- uses: subosito/flutter-action@v2
with:
@@ -47,21 +47,21 @@ jobs:
- name: Create empty settings.json
working-directory: app
run: echo {} > build/windows/runner/Release/settings.json
run: echo {} > build/windows/x64/runner/Release/settings.json
- name: Add DLL files
working-directory: app
run: |
Copy-Item ../scripts/windows/x64/msvcp140.dll build/windows/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140.dll build/windows/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140_1.dll build/windows/runner/Release/
Copy-Item ../scripts/windows/x64/msvcp140.dll build/windows/x64/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140.dll build/windows/x64/runner/Release/
Copy-Item ../scripts/windows/x64/vcruntime140_1.dll build/windows/x64/runner/Release/
- name: Zip compiled files
working-directory: app
run: Compress-Archive -Path build/windows/runner/Release/* -DestinationPath LocalSend.zip
run: Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath LocalSend.zip
- name: Upload zip
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: windows-zip-x86-64-result
path: app/LocalSend.zip
+1 -1
View File
@@ -7,7 +7,7 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: vedantmgoyal2009/winget-releaser@v2
- uses: vedantmgoyal9/winget-releaser@main
with:
identifier: LocalSend.LocalSend
token: ${{ secrets.WINGET_TOKEN }}
+3 -1
View File
@@ -1,4 +1,3 @@
/.fvm
.idea
# Linux AppImage
@@ -8,3 +7,6 @@
.refena_inspector/
/secrets
# FVM Version Cache
.fvm/
+8 -7
View File
@@ -11,8 +11,9 @@ If you're interested in contributing code to LocalSend, you'll need to follow th
After you have installed [Flutter](https://flutter.dev), then you can start this app by typing the following commands:
```shell
cd app
flutter pub get
flutter pub run build_runner build -d
dart run build_runner build -d
flutter run
```
@@ -26,9 +27,10 @@ You can help in translating this app to other languages!
- Fix existing translations: Update `strings_<locale>.i18n.json` in [assets/i18n](https://github.com/localsend/localsend/tree/main/app/assets/i18n)
- Add new languages: Create a new file, see also: [locale codes](https://saimana.com/list-of-country-locale-code/).
3. Optional: Re-run this app
1. Make sure you have [run](#run) this app once.
2. Update translations via `flutter pub run slang`
3. Run the app via `flutter run`
1. Run `cd app` to enter the app directory.
2. Make sure you have [run](#run) this app once.
3. Update translations via `flutter pub run slang`
4. Run the app via `flutter run`
4. Open a pull request
**_Take note:_ Fields decorated with `@` are not meant to be translated, they are not used in the app in any way, being merely informative text about the file or to give context to the translator.**
@@ -74,8 +76,8 @@ Git based distribution:
[scoop repo]: https://github.com/ScoopInstaller/Extras/blob/master/bucket/localsend.json
[chocolatey]: https://community.chocolatey.org/packages/localsend
[chocolatey repo]: https://github.com/brogers5/chocolatey-package-localsend/tree/main
[homebrew]: https://github.com/localsend/homebrew-localsend
[homebrew repo]: https://github.com/localsend/homebrew-localsend
[homebrew]: https://formulae.brew.sh/cask/localsend
[homebrew repo]: https://github.com/Homebrew/homebrew-cask/blob/master/Casks/l/localsend.rb
[flathub]: https://flathub.org/apps/details/org.localsend.localsend_app
[flathub repo]: https://github.com/flathub/org.localsend.localsend_app
[aur]: https://aur.archlinux.org/packages/localsend-bin
@@ -128,7 +130,6 @@ TODO:
You can help in publishing LocalSend on more platforms. Please create an issue to notify us!
- Traditional Linux distributions (Debian, Fedora, etc.)
- Snap
- (Your idea here)
## Notes
+197 -17
View File
@@ -1,21 +1,201 @@
MIT License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright (c) 2022-2024 Tien Do Nam
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
1. Definitions.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2022-2024 Tien Do Nam
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+58 -22
View File
@@ -1,13 +1,19 @@
# LocalSend
[![CI status][ci-badge]][ci-workflow]
[![Translations][translate-badge]][translate-link]
[![Packaging status][packaging-badge]][packaging-link]
[ci-badge]: https://github.com/localsend/localsend/actions/workflows/ci.yml/badge.svg
[ci-workflow]: https://github.com/localsend/localsend/actions/workflows/ci.yml
[translate-badge]: https://hosted.weblate.org/widget/localsend/app/svg-badge.svg
[translate-link]: https://hosted.weblate.org/engage/localsend/
[packaging-badge]: https://repology.org/badge/tiny-repos/localsend.svg
[packaging-link]: https://repology.org/project/localsend/versions
[Homepage][homepage] • [Discord][discord] • [GitHub][github] • [Codeberg][codeberg]
[中文](README_ZH.md)
[English (Default)](README.md) • [Español](readme_i18n/README_ES.md) • [فارسی](readme_i18n/README_FA.md) • [Filipino](readme_i18n/README_PH.md) • [Français](readme_i18n/README_FR.md) • [Indonesia](readme_i18n/README_ID.md) • [Italiano](readme_i18n/README_IT.md) • [日本語](readme_i18n/README_JA.md) • [ភាសាខ្មែរ](readme_i18n/README_KM.md) • [한국어](readme_i18n/README_KO.md) • [Polski](readme_i18n/README_PL.md) • [Português Brasil](readme_i18n/README_PT_BR.md) • [Русский](readme_i18n/README_RU.md) • [ภาษาไทย](readme_i18n/README_TH.md) • [Türkçe](readme_i18n/README_TR.md) • [Українська](readme_i18n/README_UK.md) • [Tiếng Việt](readme_i18n/README_VI.md) • [中文](readme_i18n/README_ZH.md)
[homepage]: https://localsend.org
[discord]: https://discord.gg/GSRWmQNP87
@@ -17,6 +23,7 @@
LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.
- [About](#about)
- [Sponsors](#sponsors)
- [Screenshots](#screenshots)
- [Download](#download)
- [How It Works](#how-it-works)
@@ -24,6 +31,7 @@ LocalSend is a free, open-source app that allows you to securely share files and
- [Contributing](#contributing)
- [Translation](#translation)
- [Bug Fixes and Improvements](#bug-fixes-and-improvements)
- [Troubleshooting](#troubleshooting)
- [Building](#building)
- [Android](#android)
- [iOS](#ios)
@@ -35,12 +43,22 @@ LocalSend is a free, open-source app that allows you to securely share files and
LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn't require an internet connection or third-party servers, making it a fast and reliable solution for local communication.
## Sponsors
Browser testing via
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=localsend" target="_blank">
<img src="https://localsend.org/img/sponsors/tesmu.svg" style="vertical-align: middle;" width="250" height="45" />
</a>
## Screenshots
<img src="https://localsend.org/img/screenshot-iphone.webp" alt="iPhone screenshot" height="300"/> <img src="https://localsend.org/img/screenshot-pc.webp" alt="PC screenshot" height="300"/>
## Download
[![Packaging status](https://repology.org/badge/tiny-repos/localsend.svg)](https://repology.org/project/localsend/versions)
It is recommended to download the app either from an app store or from a package manager because the app does not have an auto-update.
| Windows | macOS | Linux | Android | iOS | Fire OS |
@@ -55,6 +73,9 @@ It is recommended to download the app either from an app store or from a package
Read more about [distribution channels][].
> [!CAUTION]
> **Unofficial MSIX preview:** you can try builds from the latest commits at [localsend.ob-buff.dev](https://localsend.ob-buff.dev/). Stability is not guaranteed and all custom code tweaks are listed on that site.
[windows store]: https://www.microsoft.com/store/apps/9NCB4Z0TZ6RR
[app store]: https://apps.apple.com/us/app/localsend/id1661733229
[play store]: https://play.google.com/store/apps/details?id=org.localsend.localsend_app
@@ -63,7 +84,7 @@ Read more about [distribution channels][].
[winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LocalSend/LocalSend
[scoop]: https://scoop.sh/#/apps?s=0&d=1&o=true&q=localsend&id=fb88113be361ca32c0dcac423cb4afdeda0b0c66
[chocolatey]: https://community.chocolatey.org/packages/localsend
[homebrew]: https://github.com/localsend/homebrew-localsend
[homebrew]: https://formulae.brew.sh/cask/localsend
[flathub]: https://flathub.org/apps/details/org.localsend.localsend_app
[nixpkgs]: https://search.nixos.org/packages?show=localsend
[snap]: https://snapcraft.io/localsend
@@ -71,6 +92,16 @@ Read more about [distribution channels][].
[latest]: https://github.com/localsend/localsend/releases/latest
[distribution channels]: https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md#distribution
**Compatibility**
| Platform | Minimum Version | Note |
|----------|-----------------|-----------------------------------------------------------------------------------------------------------------------------|
| Android | 5.0 | - |
| iOS | 12.0 | - |
| macOS | 11 Big Sur | Use OpenCore Legacy Patcher 2.0.2 (See [#1005](https://github.com/localsend/localsend/issues/1005#issuecomment-2449899384)) |
| Windows | 10 | The last version to support Windows 7 is v1.15.4. There might be backports of newer versions for Windows 7 in the future. |
| Linux | N.A. | Deps: Gnome: `xdg-desktop-portal` and `xdg-desktop-portal-gtk`, KDE: `xdg-desktop-portal` and `xdg-desktop-portal-kde` |
## Setup
In most cases, LocalSend should work out of the box. However, if you are having trouble sending or receiving files, you may need to configure your firewall to allow LocalSend to communicate over your local network.
@@ -81,6 +112,7 @@ In most cases, LocalSend should work out of the box. However, if you are having
| Outgoing | TCP, UDP | Any | Allow |
Also make sure to disable AP isolation on your router. It should be usually disabled by default but some routers may have it enabled (especially guest networks).
See [troubleshooting](#troubleshooting) for more information.
**Portable Mode**
@@ -109,10 +141,11 @@ For more information on the LocalSend Protocol, see the [documentation](https://
To compile LocalSend from the source code, follow these steps:
1. Install Flutter [directly](https://flutter.dev) or using [fvm](https://fvm.app) (see [version required](.fvmrc))
2. Clone the `LocalSend` repository
3. Run `cd app` to enter the app directory
4. Run `flutter pub get` to download dependencies
5. Run `flutter run` to start the app
2. Install [Rust](https://www.rust-lang.org/tools/install)
3. Clone the `LocalSend` repository
4. Run `cd app` to enter the app directory
5. Run `flutter pub get` to download dependencies
6. Run `flutter run` to start the app
> [!NOTE]
> LocalSend currently requires an older Flutter version (specified in [.fvmrc](.fvmrc))
@@ -126,22 +159,15 @@ We welcome contributions from anyone interested in helping improve LocalSend. If
### Translation
You can help translate this app to other languages!
You can help translate LocalSend into other languages. We use the [Weblate](https://hosted.weblate.org/projects/localsend/app) platform to manage translations.
1. Fork this repository
2. Choose one
- Add missing translations in existing languages: Only update `_missing_translations_<locale>.json` in [app/assets/i18n][i18n]
- Fix existing translations: Update `strings_<locale>.i18n.json` in [app/assets/i18n][i18n]
- Add new languages: Create a new file; see also: [locale codes][].
3. Optional: Re-run this app
1. Run `cd app` to enter the app directory.
2. Make sure you have [run](#getting-started) this app once.
3. Update translations via `flutter pub run slang`
4. Run the app via `flutter run`
5. Open a pull request
Alternatively, you can also contribute by forking this repository and adding translations manually.
[i18n]: https://github.com/localsend/localsend/tree/main/app/assets/i18n
[locale codes]: https://saimana.com/list-of-country-locale-code/
The translations are located in the [app/assets/i18n](https://github.com/localsend/localsend/tree/main/app/assets/i18n) directory. Edit the `_missing_translations_<locale>.json` or `strings_<locale>.i18n.json` file to add or update translations.
<a href="https://hosted.weblate.org/engage/localsend/">
<img src="https://hosted.weblate.org/widget/localsend/app/multi-auto.svg" alt="Translation status" />
</a>
**_Take note:_ Fields decorated with `@` are not meant to be translated; they are not used in the app in any way, being merely informative text about the file or to give context to the translator.**
@@ -152,9 +178,19 @@ You can help translate this app to other languages!
For more information, see the [contributing guide](https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md).
## Troubleshooting
| Issue | Platform (Sending) | Platform (Receiving) | Solution |
|--------------------|--------------------|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| Device not visible | Any | Any | Make sure to disable AP-Isolation on your router. If it is enabled, connections between devices are forbidden. |
| Device not visible | Any | Windows | Make sure to configure your network as a "private" network. Windows might be more restrictive when the network is configured as public. |
| Device not visible | macOS, iOS | Any | You can try to toggle the "Local Network" permission under "Privacy" in the OS settings. |
| Speed too slow | Any | Any | Use 5 Ghz; Disable encryption on both devices |
| Speed too slow | Any | Android | Known issue. https://github.com/flutter-cavalry/saf_stream/issues/4 |
## Building
These commands are intended for maintainers only.
These commands are intended for maintainers only. Make sure to run them from the `app` directory.
### Android
@@ -218,7 +254,7 @@ appimage-builder --recipe AppImageBuilder.yml
**Snap**
Feel free to open a pull request. There is a `snap` branch to play with.
Instructions in [localsend/snap/README.md](https://github.com/localsend/snap/blob/main/README.md)
## Contributors
-220
View File
@@ -1,220 +0,0 @@
# LocalSend
[![CI 状态][ci-badge]][ci-workflow]
[ci-badge]: https://github.com/localsend/localsend/actions/workflows/ci.yml/badge.svg
[ci-workflow]: https://github.com/localsend/localsend/actions/workflows/ci.yml
[主页][homepage] • [Discord][discord] • [GitHub][github] • [Codeberg][codeberg]
[English](README.md)
> 注意:中文文档更新可能不够及时,请以英文文档为准。
[homepage]: https://localsend.org
[discord]: https://discord.gg/GSRWmQNP87
[github]: https://github.com/localsend/localsend
[codeberg]: https://codeberg.org/localsend/localsend
LocalSend 是一个自由、开源的应用程序,允许你在本地网络上安全地与附近设备分享文件和消息,无需互联网连接。
- [关于](#关于)
- [截图](#截图)
- [下载](#下载)
- [设置](#设置)
- [工作原理](#工作原理)
- [开始使用](#开始使用)
- [贡献](#贡献)
- [翻译](#翻译)
- [Bug修复和改进](#bug修复和改进)
- [构建](#构建)
- [Android](#android)
- [iOS](#ios)
- [macOS](#macos)
- [Windows](#windows)
- [Linux](#linux)
- [贡献者](#贡献者)
## 关于
LocalSend 是一个跨平台应用程序,使用 REST API 和 HTTPS 加密实现设备之间的安全通信。与依赖外部服务器的其他消息应用程序不同,LocalSend 不需要互联网连接或第三方服务器,因此成为本地通信的快速可靠解决方案。
## 截图
<img src="https://localsend.org/img/screenshot-iphone.webp" alt="iPhone截图" height="300"/> <img src="https://localsend.org/img/screenshot-pc.webp" alt="PC截图" height="300"/>
## 下载
建议从应用商店或软件包管理器下载该应用,因为该应用没有自动更新功能。
| Windows | macOS | Linux | Android | iOS | Fire OS |
|--------------------------|-------------------------|--------------------|----------------|---------------|------------|
| [Winget][] | [App Store][] | [Flathub][] | [Play Store][] | [App Store][] | [Amazon][] |
| [Scoop][] | [Homebrew][] | [AUR][] | [F-Droid][] | | |
| [Chocolatey][] | [DMG Installer][latest] | [Nixpkgs][] | [APK][latest] | | |
| [MSIX Installer][latest] | | [TAR][latest] | | | |
| [EXE Installer][latest] | | [DEB][latest] | | | |
| [Portable ZIP][latest] | | [AppImage][latest] | | | |
了解更多关于[发行渠道][]的信息。
[windows store]: https://www.microsoft.com/store/apps/9NCB4Z0TZ6RR
[app store]: https://apps.apple.com/us/app/localsend/id1661733229
[play store]: https://play.google.com/store/apps/details?id=org.localsend.localsend_app
[f-droid]: https://f-droid.org/packages/org.localsend.localsend_app
[amazon]: https://www.amazon.com/dp/B0BW6MP732
[winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LocalSend/LocalSend
[scoop]: https://scoop.sh/#/apps?s=0&d=1&o=true&q=localsend&id=fb88113be361ca32c0dcac423cb4afdeda0b0c66
[chocolatey]: https://community.chocolatey.org/packages/localsend
[homebrew]: https://github.com/localsend/homebrew-localsend
[flathub]: https://flathub.org/apps/details/org.localsend.localsend_app
[aur]: https://aur.archlinux.org/packages/localsend-bin
[nixpkgs]: https://search.nixos.org/packages?show=localsend
[latest]: https://github.com/localsend/localsend/releases/latest
[发行渠道]: https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md#distribution
## 设置
在大多数情况下,LocalSend 应该可以直接使用。但是,如果你在发送或接收文件时遇到问题,可能需要配置防火墙以允许 LocalSend 在你的本地网络上通信。
| 流量类型 | 协议 | 端口 | 操作 |
|---------|------|------|------|
| 传入 | TCP, UDP | 53317 | 允许 |
| 传出 | TCP, UDP | 任意 | 允许 |
另外,请确保禁用路由器上的 AP 隔离。通常默认情况下应禁用它,但某些路由器可能会启用它(比如访客网络)。
**便携模式**
(在 v1.13.0 中引入)
创建一个名为 `settings.json` 的文件,放置在与可执行文件相同的目录中。
此文件可以为空。
应用程序将使用此文件来存储设置,而不是默认位置。
## 工作原理
LocalSend 使用安全通信协议,允许设备通过 REST API 进行通信。所有数据都通过 HTTPS 安全地发送,并且 TLS/SSL 证书会在每台设备上动态生成,确保最大的安全性。
欲了解更多关于 LocalSend 协议的信息,请参阅[文档](https://github.com/localsend/protocol)。
## 开始使用
要从源代码编译 LocalSend,请按照以下步骤进行操作:
1. 安装 [Flutter](https://flutter.dev)。
2. 克隆 LocalSend 代码库。
3. 执行 `cd app` 进入 app 目录。
4. 运行 `flutter pub get` 下载依赖项。
5. 运行 `flutter run` 启动应用程序。
可能的问题是所需的 Flutter 版本与已安装的 Flutter 版本不匹配。
LocalSend 使用 [fvm](https://fvm.app) 管理项目的 Flutter 版本(在 [.fvm/fvm_config.json](.fvm/fvm_config.json) 中指定)。安装后,运行 `fvm flutter` 而不是 `flutter`
## 贡献
我们欢迎任何有兴趣帮助改进 LocalSend 的人士贡献。如果你想贡献,有几种方式可以参与:
### 翻译
你可以帮助将此应用程序翻译成其他语言!
1. Fork 此代码库
2. 选择一种方式
- 在现有语言中添加缺失的翻译:只需更新 [app/assets/i18n][i18n] 中的 `_missing_translations_<locale>.json`
- 修复现有的翻译:更新 [app/assets/i18n][i18n] 中的 `strings_<locale>.i18n.json`
- 添加新的语言:创建一个新文件;参见:[语言代码][locale codes]。
3. 可选步骤:重新运行此应用程序
1. 执行 `cd app` 进入 app 目录。
2. 确保你已经 [运行](#开始使用) 过此应用程序一次。
3. 通过 `flutter pub run slang` 更新翻译
4. 通过 `flutter run` 运行应用程序
5. 提交拉取请求
[i18n]: https://github.com/localsend/localsend/tree/main/app/assets/i18n
[locale codes]: https://saimana.com/list-of-country-locale-code/
**_注意:_ 用 `@` 装饰的字段不是用于翻译的;它们在应用程序中没有任何用处,仅仅是关于文件的信息性文本或为翻译者提供上下文。**
### Bug 修复和改进
- **Bug 修复:** 如果发现 bug,请创建一个带有清晰描述问题及解决方法的拉取请求。
- **改进:** 有改进 LocalSend 的想法吗?请先创建一个问题来讨论为什么需要这个改进。
欲了解更多信息,请参阅[贡献指南](https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md)。
## 构建
这些命令仅供维护者使用。
### Android
传统 APK
```bash
flutter build apk
```
Google Play 的 AppBundle
```bash
flutter build appbundle
```
### iOS
```bash
flutter build ipa
```
### macOS
```bash
flutter build macos
```
### Windows
**传统**
```bash
flutter build windows
```
**本地 MSIX 应用**
```bash
flutter pub run msix:create
```
**微软商店分发包**
```bash
flutter pub run msix:create --store
```
### Linux
**传统**
```bash
flutter build linux
```
**AppImage**
```bash
appimage-builder --recipe AppImageBuilder.yml
```
**Snap**
欢迎提交拉取请求!仓库有一个 `snap` 分支可以尝试使用。
## 贡献者
<a href="https://github.com/localsend/localsend/graphs/contributors">
<img src="https://contrib.rocks/image?repo=localsend/localsend" alt="Localsend 贡献者"/>
</a>
+2
View File
@@ -5,9 +5,11 @@
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/
# IntelliJ related
+4
View File
@@ -17,6 +17,10 @@ analyzer:
- lib/**.freezed.dart
- submodules/**
formatter:
trailing_commas: preserve
page_width: 150
linter:
rules:
use_key_in_widget_constructors: false
+17 -14
View File
@@ -1,3 +1,9 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
@@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) {
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
@@ -21,11 +22,8 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
namespace "org.localsend.localsend_app"
compileSdkVersion 34
ndkVersion flutter.ndkVersion
@@ -47,7 +45,7 @@ android {
applicationId "org.localsend.localsend_app"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
minSdkVersion 21
minSdkVersion flutter.minSdkVersion
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -67,6 +65,7 @@ android {
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
@@ -75,16 +74,20 @@ android {
applicationIdSuffix ".debug"
}
}
// Required by F-Droid
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
}
flutter {
source '../..'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
// To comply with F-Droid version code schema
// https://github.com/localsend/localsend/issues/1534
ext.abiCodes = ["x86_64": 1, "armeabi-v7a": 2, "arm64-v8a": 3]
+21 -5
View File
@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.localsend.localsend_app">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="org.localsend.localsend_app">
<uses-permission android:name="android.permission.INTERNET"/>
@@ -14,6 +13,8 @@
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" tools:targetApi="24" />
<!-- Android TV -->
<uses-feature android:name="android.software.leanback" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
@@ -41,9 +42,9 @@
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
android:name="io.flutter.embedding.android.EnableCutout"
android:value="true"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
@@ -65,6 +66,21 @@
</intent-filter>
</activity>
<!-- Quick tile to launch the app -->
<service
android:name=".QuickTileService"
android:icon="@mipmap/ic_launcher_quicktile_foreground"
android:label="LocalSend"
android:process=":quick_tile_service"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
android:exported="true"
tools:targetApi="24">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter>
</service>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
@@ -2,10 +2,12 @@ package org.localsend.localsend_app
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.database.Cursor
import android.net.Uri
import android.provider.DocumentsContract
import android.provider.Settings
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodCall
@@ -20,6 +22,18 @@ private const val REQUEST_CODE_PICK_FILE = 3
class MainActivity : FlutterActivity() {
private var pendingResult: MethodChannel.Result? = null
// Overriding the static methods we need from the Java class, as described
// in the documentation of `FlutterActivity.NewEngineIntentBuilder`
companion object {
fun withNewEngine(): NewEngineIntentBuilder {
return NewEngineIntentBuilder(MainActivity::class.java)
}
fun createDefaultIntent(launchContext: Context): Intent {
return withNewEngine().build(launchContext)
}
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(
@@ -49,11 +63,25 @@ class MainActivity : FlutterActivity() {
result.success(null)
}
"openGallery" -> {
openGallery()
result.success(null)
}
"isAnimationsEnabled" -> {
result.success(isAnimationsEnabled())
}
else -> result.notImplemented()
}
}
}
private fun isAnimationsEnabled() : Boolean {
return Settings.Global.getFloat(this.getContentResolver(),
Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f) != 0.0f;
}
private fun openDirectoryPicker(onlyPath: Boolean) {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION)
@@ -236,6 +264,13 @@ class MainActivity : FlutterActivity() {
}
return false
}
private fun openGallery() {
val intent = Intent()
intent.action = Intent.ACTION_VIEW
intent.type = "image/*"
startActivity(intent)
}
}
data class PickDirectoryResult(
@@ -0,0 +1,101 @@
package org.localsend.localsend_app
import android.annotation.SuppressLint
import android.app.ActivityManager
import android.app.PendingIntent
import android.content.Intent
import android.graphics.drawable.Icon
import android.os.Build
import android.service.quicksettings.TileService
import android.util.Log
import androidx.annotation.RequiresApi
/**
* Service used to launch the app as a quick tile from the top/status bar
* @see https://dev.to/djsmk123/fluttercreate-custom-quick-title-android-only-3ehp
* @see https://github.com/ProtonVPN/android-app/blob/2290b3c6b8b5ded339d69ec7c12e15acbb4b4b3d/app/src/main/java/com/protonvpn/android/components/QuickTileService.kt#L171
*/
@RequiresApi(Build.VERSION_CODES.N)
class QuickTileService : TileService() {
override fun onClick() {
super.onClick()
launchApp()
}
override fun onStartListening() {
super.onStartListening()
setupIcon()
}
private fun setupIcon() {
// The tile is only available between `onStartListening` and
// `onStopListening`, so we ensure the tile is available
if (qsTile == null) {
return
}
qsTile.icon =
Icon.createWithResource(this, R.mipmap.ic_launcher_quicktile_foreground)
qsTile.label = packageManager.getApplicationLabel(application.applicationInfo)
qsTile.updateTile()
}
@SuppressLint("StartActivityAndCollapseDeprecated")
private fun launchApp() {
try{
val launchIntent = getLaunchIntent()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
// Starting from `Build.VERSION_CODES.UPSIDE_DOWN_CAKE` we can
// no longer start and collapse an Intent. We need to use a
// PendingIntent instead.
//
// The request code can be used to identify the pending intent
// request if needed. We don't, hence the 0.
//
// The launch intent used for the tile doesn't need any data
// thus we mark it as immutable to ensure maximal reuse.
startActivityAndCollapse(
PendingIntent.getActivity(this, 0, launchIntent,
PendingIntent.FLAG_IMMUTABLE)
)
} else {
// For any version below `Build.VERSION_CODES.UPSIDE_DOWN_CAKE`
// we can simply start the intent directly.
startActivityAndCollapse(launchIntent)
}
}
catch (e:Exception){
Log.w(this.javaClass.toString(),"Exception $e")
}
}
private fun getLaunchIntent(): Intent {
// Getting the launch intent from the package manager is the optimal
// way to get the proper intent to launch the app.
val cleanIntent = packageManager.getLaunchIntentForPackage(packageName)
return if (cleanIntent != null) {
cleanIntent
} else {
// If we can't get the launch intent from the PM, then we default
// back to creating one by instantiating the app intent ourself.
val dirtyIntent = MainActivity.createDefaultIntent(this)
dirtyIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
dirtyIntent
}
}
private fun appIsAlreadyRunning(): Boolean {
val info = ActivityManager.RunningAppProcessInfo()
ActivityManager.getMyMemoryState(info)
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
info.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_CACHED
} else {
info.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -5,6 +5,7 @@
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
@@ -14,5 +15,6 @@
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
</resources>
@@ -5,6 +5,7 @@
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
@@ -14,5 +15,6 @@
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
</resources>
+16 -13
View File
@@ -1,16 +1,3 @@
buildscript {
ext.kotlin_version = '1.8.21'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
@@ -22,6 +9,22 @@ rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
// temporary fix to keep using device_apps
// https://stackoverflow.com/questions/69033022/message-error-resource-androidattr-lstar-not-found
subprojects {
afterEvaluate { project ->
if (project.plugins.hasPlugin("com.android.application") ||
project.plugins.hasPlugin("com.android.library")) {
project.android {
compileSdkVersion 34
buildToolsVersion "34.0.0"
}
}
}
}
subprojects {
project.evaluationDependsOn(':app')
}
+1 -1
View File
@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx1536M
org.gradle.jvmargs=-Xmx4g -Xms1g
android.useAndroidX=true
android.enableJetifier=true
+1 -1
View File
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
+22 -8
View File
@@ -1,11 +1,25 @@
include ':app'
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.7.3" apply false
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
}
include ":app"
+80
View File
@@ -1,3 +1,83 @@
## unreleased
- feat(windows): add LocalSend to Windows Share Sheet (@chenxdust, https://github.com/localsend/localsend/pull/2555)
- feat: enable starting text share via command line using `--text` or `-t` flags (@guilhermetiscoski, https://github.com/localsend/localsend/pull/2661)
- feat(android): add quick settings tile for instant app launch (@Voltra, https://github.com/localsend/localsend/pull/2676)
- feat(android, ios, macos): respect system-wide animation preferences on first app startup (@nitheesh-daram, https://github.com/localsend/localsend/pull/2338)
- feat: improve remaining time formatting for long transfers (@ShlomoCode, https://github.com/localsend/localsend/pull/2765)
- feat: change duplicate file naming from "file-1.txt" to "file (1).txt" format (@kartoshka95, https://github.com/localsend/localsend/pull/2455)
- feat(macos): implement button to quickly open firewall settings from troubleshoot page (@ShlomoCode, https://github.com/localsend/localsend/pull/2775)
- feat(macos): add Command+Comma shortcut to open settings (@ShlomoCode, https://github.com/localsend/localsend/pull/2715)
- feat(macos): use user-friendly ComputerName instead of the technical hostname (@ShlomoCode, https://github.com/localsend/localsend/pull/2729)
- feat(linux): use native window decorations instead of large GTK3 headerbar (@nixigaj, https://github.com/localsend/localsend/pull/2360)
- fix(macos): prevent Dock icon from briefly appearing during autostart when "Start hidden" is enabled (@ShlomoCode, https://github.com/localsend/localsend/pull/2449)
- feat(macos): enable Dock icon text-drop even when the app is not running (@ShlomoCode, https://github.com/localsend/localsend/pull/2712)
- feat(macos): borderless window design (@ReallLucky, https://github.com/localsend/localsend/pull/2416)
- feat(macos): enable Hardened Runtime for the Mac App Store version as well to improve security (@ShlomoCode, https://github.com/localsend/localsend/pull/2716)
- fix(macos): Dock icon drag-and-drop and Share Extension working again (@ShlomoCode, https://github.com/localsend/localsend/pull/2711)
- fix(android): files not downloading when using "Share via link" (@ShlomoCode, https://github.com/localsend/localsend/pull/2756)
- fix(ios, android): prevent transfer error by saving unsupported media formats to folder instead of gallery (@ShlomoCode, https://github.com/localsend/localsend/pull/2766)
- fix: release wake lock after file transfer completes to allow device sleep (@kartoshka95, https://github.com/localsend/localsend/pull/2457)
- fix(android): preserve location metadata when sharing media (@ShlomoCode, https://github.com/localsend/localsend/pull/2742)
- fix: text message content displayed three times in history dialog (@ew-sirenko, https://github.com/localsend/localsend/pull/2296)
- fix: text message content size calculation (@ew-sirenko, https://github.com/localsend/localsend/pull/2297)
- fix(linux): add CJK font support for Chinese, Japanese, and Korean text (@Mr-Ebonycat, https://github.com/localsend/localsend/pull/2719)
- fix: save DNG files to image gallery (@ShlomoCode, https://github.com/localsend/localsend/pull/2728)
## 1.17.0 (2025-02-19)
- feat: add advanced setting to filter network interfaces (@Tienisto)
- feat(mobile): swipe gesture to select multiple media files (@Tienisto)
- feat(windows): when pasting an image, automatically convert it to PNG (@BrianMwit)
- feat(android): add option to open gallery when image/video was automatically saved (@Tienisto)
- fix: path traversal vulnerability when saving files (@Tienisto)
- fix: black screen when tapping on "Back" twice in "Share via link" (@Tienisto)
- fix(macos): window disappears on command key when minimize to tray is enabled (@Tienisto)
- fix(windows): do not poll local IP resulting in unwanted location permissions (@Tienisto)
## 1.16.2 (2024-11-06)
- fix(ios): share from other apps to LocalSend doesn't work in iOS 18 (@Tienisto)
## 1.16.1 (2024-11-05)
- feat: show exact error message when using IP address dialog or favorite dialog (@Tienisto)
- feat(desktop): highlight file when tapping "Show in folder" (@Tienisto)
- fix(android): properly close app on back gesture (@Tienisto)
## 1.16.0 (2024-11-03)
- feat: improve transfer speed if the sending device is the bottleneck by using Rust as HTTP client and multithreading (@Tienisto)
- feat: add option to automatically receive files only from favorites (@Davte)
- feat: only automatically finish when files are either successfully received or skipped (@Tienisto)
- feat: improve various padding and spacing issues in RTL languages (@ShlomoCode)
- feat: persist "advanced settings" toggle (@Nolle10)
- feat: add alias-regeneration button and alias update dialog (@Nolle10)
- feat(macos): drag-and-drop files and text into menu bar icon (@ShlomoCode)
- feat(macos): drag-and-drop text into the app icon (@ShlomoCode)
- feat(macos): include LocalSend as a share target in the share menu (@ShlomoCode)
- feat(macos): starts hidden in menu bar instead of being minimized when autostart is enabled (@ShlomoCode)
- feat(macos): show error and success state in the app icon (@ShlomoCode, @Tienisto)
- feat(macos): also have autostart option in sandboxed version (App Store) (@ShlomoCode)
- feat(macos): LocalSend installed via dmg installer is sandboxed (@Tienisto)
- feat(android): enable clipboard button (@Seidko)
- feat(ios): enable clipboard button (@AnessZurba)
- fix(macos): reopen app from launchpad after minimizing to menu bar should make window visible (@ShlomoCode)
- fix(macos): persist write access to download location after app restart (@ShlomoCode)
- i18n: add Malaysian (@Gloridust), Slovak (@dodog)
## 1.15.4 (2024-08-20)
- feat: add button to retry a failed file transfer (@Tienisto)
- feat: show tooltip on the "Scan" button (@Tienisto)
- feat: treat any URI as link, so it becomes clickable on receiver (e.g. file://, obsidian://) (@Tienisto)
- feat(mobile): adjust button width in send tab to indicate that it's scrollable (@Tienisto)
- feat(windows): title bar color should match the system theme (@FutoTan)
- fix: memory leak when sending files (regression in 1.15.0, 1.15.2 only fixed receiving files) (@Tienisto)
- fix(windows): LocalSend window is invisible at app start (@Tienisto)
- i18n: distinguish between "Exit" and "Quit" depending on the platform (@sergd88)
- i18n: add Hindi (@rishi-singh26)
## 1.15.3 (2024-07-29)
- feat: reduce receive history length to 30 items to increase performance (@Tienisto)
+1 -40
View File
@@ -2,44 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <ar>.",
"After editing this file, you can run 'dart run slang apply --locale=ar' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
}
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -0,0 +1,341 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <az>.",
"After editing this file, you can run 'dart run slang apply --locale=az' to quickly apply the newly added translations."
],
"settingsTab": {
"receive": {
"requirePin": "@:webSharePage.requirePin",
"destination": "Save to folder",
"downloads": "(Downloads)",
"saveToGallery": "Save media to gallery",
"saveToHistory": "Save to history"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"title": "Network",
"needRestart": "Restart the server to apply the settings!",
"server": "Server",
"alias": "Device name",
"deviceType": "Device type",
"deviceModel": "Device model",
"port": "Port",
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"discoveryTimeout": "Discovery Timeout",
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias",
"portWarning": "You might not be detected by other devices because you are using a custom port. (default: {defaultPort})",
"encryption": "Encryption",
"multicastGroup": "Multicast address",
"multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
},
"advancedSettings": "Advanced settings"
},
"troubleshootPage": {
"title": "Troubleshoot",
"subTitle": "Does the app not work as expected? Here you can find some common solutions to problems.",
"solution": "Solution:",
"fixButton": "Fix automatically",
"firewall": {
"symptom": "This device can send files to other devices but other devices cannot send files to this device.",
"solution": "This is most likely a firewall issue. You can solve this by allowing incoming connections (UDP and TCP) on port {port}.",
"openFirewall": "Open Firewall"
},
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
},
"noConnection": {
"symptom": "Both devices cannot discover each other nor can they share files.",
"solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The Wi-Fi network may not allow communication between participants due to Access Point (AP) Isolation. In this case, this option must be disabled on the router."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"title": "History",
"openFolder": "Open folder",
"deleteHistory": "Delete history",
"empty": "The history is empty.",
"entryActions": {
"open": "Open file",
"showInFolder": "Show in folder",
"info": "Information",
"deleteFromHistory": "Delete from history"
}
},
"apkPickerPage": {
"title": "Apps (APK)",
"excludeSystemApps": "Exclude system apps",
"excludeAppsWithoutLaunchIntent": "Exclude non-launchable apps",
"apps": "{n} Apps"
},
"selectedFilesPage": {
"deleteAll": "Delete all"
},
"receivePage": {
"subTitle": {
"one": "wants to send you a file",
"other": "wants to send you {n} files"
},
"subTitleMessage": "sent you a message:",
"subTitleLink": "sent you a link:",
"canceled": "The sender has canceled the request."
},
"receiveOptionsPage": {
"title": "Options",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSend folder)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Turned off automatically because there are folders."
},
"sendPage": {
"waiting": "Waiting for response…",
"rejected": "The recipient has rejected the request.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "The recipient is busy with another request."
},
"progressPage": {
"titleSending": "Sending files",
"titleReceiving": "Receiving files",
"savedToGallery": "Saved in Photos",
"total": {
"title": {
"sending": "Total progress ({time})",
"finishedError": "Finished with error",
"canceledSender": "Canceled by sender",
"canceledReceiver": "Canceled by receiver"
},
"count": "Files: {curr} / {n}",
"size": "Size: {curr} / {n}",
"speed": "Speed: {speed}/s"
}
},
"webSharePage": {
"title": "Share via link",
"loading": "Starting server…",
"stopping": "Stopping server…",
"error": "An error occurred while starting the server.",
"openLink": {
"one": "Open this link in your browser:",
"other": "Open one of these links in your browser:"
},
"requests": "Requests",
"noRequests": "No requests yet.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\"",
"encryptionHint": "LocalSend uses a self-signed certificate. You need to accept it in your browser.",
"pendingRequests": "Pending requests: {n}"
},
"aboutPage": {
"title": "About LocalSend",
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
},
"changelogPage": {
"title": "Changelog"
},
"dialogs": {
"addFile": {
"title": "Add to selection",
"content": "What do you want to add?"
},
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"addressInput": {
"title": "Enter address",
"hashtag": "Hashtag",
"ip": "IP Address",
"recentlyUsed": "Recently used: "
},
"cancelSession": {
"title": "Cancel files transfer",
"content": "Do you really want to cancel the files transfer?"
},
"cannotOpenFile": {
"title": "Cannot open file",
"content": "Could not open \"{file}\". Has this file been moved, renamed or deleted?"
},
"encryptionDisabledNotice": {
"title": "Encryption disabled",
"content": "Communication now takes place via the unencrypted HTTP protocol. To use HTTPS protocol, enable encryption again."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"fileInfo": {
"title": "File information",
"fileName": "File name:",
"path": "Path:",
"size": "Size:",
"sender": "Sender:",
"time": "Time:"
},
"fileNameInput": {
"title": "Enter file name",
"original": "Original: {original}"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend can't find other devices without having the permission to scan the local network. Please grant this permission in the settings.",
"gotoSettings": "Settings"
},
"messageInput": {
"title": "Type message",
"multiline": "Multiline"
},
"noFiles": {
"title": "No files selected",
"content": "Please select at least one file."
},
"noPermission": {
"title": "No permission",
"content": "You have not granted the necessary permissions. Please grant them in the settings."
},
"notAvailableOnPlatform": {
"title": "Not available",
"content": "This feature is only available on:"
},
"qr": {
"title": "QR Code"
},
"quickActions": {
"title": "Quick Actions",
"counter": "Counter",
"prefix": "Prefix",
"padZero": "Pad with zeros",
"sortBeforeCount": "Sort alphabetically beforehand (A-Z)",
"random": "Random"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "File requests are now accepted automatically. Be aware that everyone on the local network can send you files."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
},
"sendModeHelp": {
"title": "Send modes",
"single": "Sends files to one recipient. Selection will be cleared after finished files transfer.",
"multiple": "Sends files to multiple recipients. Selection will not be cleared after finished files transfer.",
"link": "Recipients who do not have LocalSend installed can download the selected files by opening the link in their browser."
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"tray": {
"open": "@:general.open",
"close": "Quit LocalSend",
"closeWindows": "Exit"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts",
"rejected": "Rejected",
"files": "Files",
"fileName": "File name",
"size": "Size"
},
"assetPicker": {
"confirm": "Confirm",
"cancel": "Cancel",
"edit": "Edit",
"gifIndicator": "GIF",
"loadFailed": "Load failed",
"original": "Origin",
"preview": "Preview",
"select": "Select",
"emptyList": "Empty list",
"unSupportedAssetType": "Unsupported file type.",
"unableToAccessAll": "Unable to access all files on the device",
"viewingLimitedAssetsTip": "Only view files and albums accessible to the app.",
"changeAccessibleLimitedAssets": "Click to update accessible files",
"accessAllTip": "App can only access some files on the device. Go to system settings and allow the app to access all media on the device.",
"goToSystemSettings": "Go to system settings",
"accessLimitedAssets": "Continue with limited access",
"accessiblePathName": "Accessible files",
"sTypeAudioLabel": "Audio",
"sTypeImageLabel": "Image",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Other media",
"sActionPlayHint": "play",
"sActionPreviewHint": "preview",
"sActionSelectHint": "select",
"sActionSwitchPathLabel": "change path",
"sActionUseCameraHint": "use camera",
"sNameDurationLabel": "duration",
"sUnitAssetCountLabel": "count"
}
}
@@ -0,0 +1,6 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <bg>.",
"After editing this file, you can run 'dart run slang apply --locale=bg' to quickly apply the newly added translations."
]
}
+1 -55
View File
@@ -2,59 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <bn>.",
"After editing this file, you can run 'dart run slang apply --locale=bn' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
+25 -98
View File
@@ -3,113 +3,40 @@
"Here are translations that exist in <en> but not in <ca>.",
"After editing this file, you can run 'dart run slang apply --locale=ca' to quickly apply the newly added translations."
],
"general": {
"delete": "Delete",
"noItemInClipboard": "No items in Clipboard."
},
"sendTab": {
"picker": {
"clipboard": "Paste"
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"settingsTab": {
"general": {
"colorOptions": {
"oled": "OLED"
},
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"dialogs": {
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
"quickSaveFromFavoritesNotice": {
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
}
+1 -55
View File
@@ -2,59 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <cs>.",
"After editing this file, you can run 'dart run slang apply --locale=cs' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
+29 -45
View File
@@ -3,58 +3,42 @@
"Here are translations that exist in <en> but not in <da>.",
"After editing this file, you can run 'dart run slang apply --locale=da' to quickly apply the newly added translations."
],
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"zoom": {
"title": "URL"
"quickSaveFromFavoritesNotice": {
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
}
+1 -50
View File
@@ -2,54 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <el>.",
"After editing this file, you can run 'dart run slang apply --locale=el' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <en-IN>.",
"After editing this file, you can run 'dart run slang apply --locale=en-IN' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
@@ -2,54 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <es-ES>.",
"After editing this file, you can run 'dart run slang apply --locale=es-ES' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -0,0 +1,6 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <et>.",
"After editing this file, you can run 'dart run slang apply --locale=et' to quickly apply the newly added translations."
]
}
+45 -1
View File
@@ -3,11 +3,26 @@
"Here are translations that exist in <en> but not in <eu>.",
"After editing this file, you can run 'dart run slang apply --locale=eu' to quickly apply the newly added translations."
],
"general": {
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"sendTab": {
"manualSending": "Manual sending"
},
"settingsTab": {
"general": {
"saveWindowPlacementWindows": "Save window position after exit",
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish"
},
@@ -16,7 +31,14 @@
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"discoveryTimeout": "Discovery Timeout",
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias"
},
"other": {
"title": "Other",
@@ -32,6 +54,13 @@
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
@@ -63,10 +92,22 @@
"restore": "Restore purchase"
},
"dialogs": {
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
},
@@ -78,6 +119,9 @@
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"tray": {
"closeWindows": "Exit"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
+1 -10
View File
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <fa>.",
"After editing this file, you can run 'dart run slang apply --locale=fa' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
+22 -27
View File
@@ -3,43 +3,38 @@
"Here are translations that exist in <en> but not in <fi>.",
"After editing this file, you can run 'dart run slang apply --locale=fi' to quickly apply the newly added translations."
],
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"on": "@:general.on"
}
},
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites"
}
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
}
@@ -2,59 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <fil-PH>.",
"After editing this file, you can run 'dart run slang apply --locale=fil-PH' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
+1 -10
View File
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <fr>.",
"After editing this file, you can run 'dart run slang apply --locale=fr' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
@@ -0,0 +1,351 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <gl>.",
"After editing this file, you can run 'dart run slang apply --locale=gl' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"launchAtStartup": "Autostart after login",
"launchMinimized": "Autostart: Start hidden",
"showInContextMenu": "Show LocalSend in context menu",
"animations": "Animations"
},
"receive": {
"title": "Receive",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish",
"destination": "Save to folder",
"downloads": "(Downloads)",
"saveToGallery": "Save media to gallery",
"saveToHistory": "Save to history"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"title": "Network",
"needRestart": "Restart the server to apply the settings!",
"server": "Server",
"alias": "Device name",
"deviceType": "Device type",
"deviceModel": "Device model",
"port": "Port",
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"discoveryTimeout": "Discovery Timeout",
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias",
"portWarning": "You might not be detected by other devices because you are using a custom port. (default: {defaultPort})",
"encryption": "Encryption",
"multicastGroup": "Multicast address",
"multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
},
"advancedSettings": "Advanced settings"
},
"troubleshootPage": {
"title": "Troubleshoot",
"subTitle": "Does the app not work as expected? Here you can find some common solutions to problems.",
"solution": "Solution:",
"fixButton": "Fix automatically",
"firewall": {
"symptom": "This device can send files to other devices but other devices cannot send files to this device.",
"solution": "This is most likely a firewall issue. You can solve this by allowing incoming connections (UDP and TCP) on port {port}.",
"openFirewall": "Open Firewall"
},
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
},
"noConnection": {
"symptom": "Both devices cannot discover each other nor can they share files.",
"solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The Wi-Fi network may not allow communication between participants due to Access Point (AP) Isolation. In this case, this option must be disabled on the router."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"title": "History",
"openFolder": "Open folder",
"deleteHistory": "Delete history",
"empty": "The history is empty.",
"entryActions": {
"open": "Open file",
"showInFolder": "Show in folder",
"info": "Information",
"deleteFromHistory": "Delete from history"
}
},
"apkPickerPage": {
"title": "Apps (APK)",
"excludeSystemApps": "Exclude system apps",
"excludeAppsWithoutLaunchIntent": "Exclude non-launchable apps",
"apps": "{n} Apps"
},
"selectedFilesPage": {
"deleteAll": "Delete all"
},
"receivePage": {
"subTitle": {
"one": "wants to send you a file",
"other": "wants to send you {n} files"
},
"subTitleMessage": "sent you a message:",
"subTitleLink": "sent you a link:",
"canceled": "The sender has canceled the request."
},
"receiveOptionsPage": {
"title": "Options",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSend folder)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Turned off automatically because there are folders."
},
"sendPage": {
"waiting": "Waiting for response…",
"rejected": "The recipient has rejected the request.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "The recipient is busy with another request."
},
"progressPage": {
"titleSending": "Sending files",
"titleReceiving": "Receiving files",
"savedToGallery": "Saved in Photos",
"total": {
"title": {
"sending": "Total progress ({time})",
"finishedError": "Finished with error",
"canceledSender": "Canceled by sender",
"canceledReceiver": "Canceled by receiver"
},
"count": "Files: {curr} / {n}",
"size": "Size: {curr} / {n}",
"speed": "Speed: {speed}/s"
}
},
"webSharePage": {
"title": "Share via link",
"loading": "Starting server…",
"stopping": "Stopping server…",
"error": "An error occurred while starting the server.",
"openLink": {
"one": "Open this link in your browser:",
"other": "Open one of these links in your browser:"
},
"requests": "Requests",
"noRequests": "No requests yet.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\"",
"encryptionHint": "LocalSend uses a self-signed certificate. You need to accept it in your browser.",
"pendingRequests": "Pending requests: {n}"
},
"aboutPage": {
"title": "About LocalSend",
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
},
"changelogPage": {
"title": "Changelog"
},
"dialogs": {
"addFile": {
"title": "Add to selection",
"content": "What do you want to add?"
},
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"addressInput": {
"title": "Enter address",
"hashtag": "Hashtag",
"ip": "IP Address",
"recentlyUsed": "Recently used: "
},
"cancelSession": {
"title": "Cancel files transfer",
"content": "Do you really want to cancel the files transfer?"
},
"cannotOpenFile": {
"title": "Cannot open file",
"content": "Could not open \"{file}\". Has this file been moved, renamed or deleted?"
},
"encryptionDisabledNotice": {
"title": "Encryption disabled",
"content": "Communication now takes place via the unencrypted HTTP protocol. To use HTTPS protocol, enable encryption again."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"fileInfo": {
"title": "File information",
"fileName": "File name:",
"path": "Path:",
"size": "Size:",
"sender": "Sender:",
"time": "Time:"
},
"fileNameInput": {
"title": "Enter file name",
"original": "Original: {original}"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend can't find other devices without having the permission to scan the local network. Please grant this permission in the settings.",
"gotoSettings": "Settings"
},
"messageInput": {
"title": "Type message",
"multiline": "Multiline"
},
"noFiles": {
"title": "No files selected",
"content": "Please select at least one file."
},
"noPermission": {
"title": "No permission",
"content": "You have not granted the necessary permissions. Please grant them in the settings."
},
"notAvailableOnPlatform": {
"title": "Not available",
"content": "This feature is only available on:"
},
"qr": {
"title": "QR Code"
},
"quickActions": {
"title": "Quick Actions",
"counter": "Counter",
"prefix": "Prefix",
"padZero": "Pad with zeros",
"sortBeforeCount": "Sort alphabetically beforehand (A-Z)",
"random": "Random"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "File requests are now accepted automatically. Be aware that everyone on the local network can send you files."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
},
"sendModeHelp": {
"title": "Send modes",
"single": "Sends files to one recipient. Selection will be cleared after finished files transfer.",
"multiple": "Sends files to multiple recipients. Selection will not be cleared after finished files transfer.",
"link": "Recipients who do not have LocalSend installed can download the selected files by opening the link in their browser."
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"tray": {
"open": "@:general.open",
"close": "Quit LocalSend",
"closeWindows": "Exit"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts",
"rejected": "Rejected",
"files": "Files",
"fileName": "File name",
"size": "Size"
},
"assetPicker": {
"confirm": "Confirm",
"cancel": "Cancel",
"edit": "Edit",
"gifIndicator": "GIF",
"loadFailed": "Load failed",
"original": "Origin",
"preview": "Preview",
"select": "Select",
"emptyList": "Empty list",
"unSupportedAssetType": "Unsupported file type.",
"unableToAccessAll": "Unable to access all files on the device",
"viewingLimitedAssetsTip": "Only view files and albums accessible to the app.",
"changeAccessibleLimitedAssets": "Click to update accessible files",
"accessAllTip": "App can only access some files on the device. Go to system settings and allow the app to access all media on the device.",
"goToSystemSettings": "Go to system settings",
"accessLimitedAssets": "Continue with limited access",
"accessiblePathName": "Accessible files",
"sTypeAudioLabel": "Audio",
"sTypeImageLabel": "Image",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Other media",
"sActionPlayHint": "play",
"sActionPreviewHint": "preview",
"sActionSelectHint": "select",
"sActionSwitchPathLabel": "change path",
"sActionUseCameraHint": "use camera",
"sNameDurationLabel": "duration",
"sUnitAssetCountLabel": "count"
}
}
@@ -3,12 +3,36 @@
"Here are translations that exist in <en> but not in <gu>.",
"After editing this file, you can run 'dart run slang apply --locale=gu' to quickly apply the newly added translations."
],
"general": {
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"sendTab": {
"manualSending": "Manual sending"
},
"settingsTab": {
"general": {
"saveWindowPlacementWindows": "Save window position after exit",
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias"
}
},
"troubleshootPage": {
@@ -17,6 +41,13 @@
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
@@ -33,10 +64,25 @@
"packagers": "Packagers"
},
"dialogs": {
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
}
},
"tray": {
"closeWindows": "Exit"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
+1 -10
View File
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <he>.",
"After editing this file, you can run 'dart run slang apply --locale=he' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
@@ -0,0 +1,6 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <hi>.",
"After editing this file, you can run 'dart run slang apply --locale=hi' to quickly apply the newly added translations."
]
}
+1 -10
View File
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <hu>.",
"After editing this file, you can run 'dart run slang apply --locale=hu' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
+1 -40
View File
@@ -2,44 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <id>.",
"After editing this file, you can run 'dart run slang apply --locale=id' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
}
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
+1 -40
View File
@@ -2,44 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <it>.",
"After editing this file, you can run 'dart run slang apply --locale=it' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
}
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
+13 -6
View File
@@ -3,13 +3,20 @@
"Here are translations that exist in <en> but not in <ja>.",
"After editing this file, you can run 'dart run slang apply --locale=ja' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
"settingsTab": {
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"aboutPage": {
"packagers": "Packagers"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
}
}
+11 -49
View File
@@ -4,57 +4,19 @@
"After editing this file, you can run 'dart run slang apply --locale=km' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
}
}
+1 -50
View File
@@ -2,54 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <ko>.",
"After editing this file, you can run 'dart run slang apply --locale=ko' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -0,0 +1,269 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <ml>.",
"After editing this file, you can run 'dart run slang apply --locale=ml' to quickly apply the newly added translations."
],
"receiveTab": {
"quickSave": {
"on": "@:general.on"
}
},
"sendTab": {
"selection": {
"files": "Files: {files}",
"size": "Size: {size}"
}
},
"settingsTab": {
"receive": {
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"portWarning": "You might not be detected by other devices because you are using a custom port. (default: {defaultPort})",
"encryption": "Encryption",
"multicastGroup": "Multicast address",
"multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"termsOfUse": "Terms of Use"
},
"advancedSettings": "Advanced settings"
},
"troubleshootPage": {
"title": "Troubleshoot",
"subTitle": "Does the app not work as expected? Here you can find some common solutions to problems.",
"solution": "Solution:",
"fixButton": "Fix automatically",
"firewall": {
"symptom": "This device can send files to other devices but other devices cannot send files to this device.",
"solution": "This is most likely a firewall issue. You can solve this by allowing incoming connections (UDP and TCP) on port {port}.",
"openFirewall": "Open Firewall"
},
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
},
"noConnection": {
"symptom": "Both devices cannot discover each other nor can they share files.",
"solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The Wi-Fi network may not allow communication between participants due to Access Point (AP) Isolation. In this case, this option must be disabled on the router."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"title": "History",
"openFolder": "Open folder",
"deleteHistory": "Delete history",
"empty": "The history is empty.",
"entryActions": {
"open": "Open file",
"showInFolder": "Show in folder",
"info": "Information",
"deleteFromHistory": "Delete from history"
}
},
"apkPickerPage": {
"title": "Apps (APK)",
"excludeSystemApps": "Exclude system apps",
"excludeAppsWithoutLaunchIntent": "Exclude non-launchable apps",
"apps": "{n} Apps"
},
"selectedFilesPage": {
"deleteAll": "Delete all"
},
"receivePage": {
"subTitle": {
"one": "wants to send you a file",
"other": "wants to send you {n} files"
},
"subTitleMessage": "sent you a message:",
"subTitleLink": "sent you a link:",
"canceled": "The sender has canceled the request."
},
"receiveOptionsPage": {
"title": "Options",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSend folder)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Turned off automatically because there are folders."
},
"sendPage": {
"waiting": "Waiting for response…",
"rejected": "The recipient has rejected the request.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "The recipient is busy with another request."
},
"progressPage": {
"titleSending": "Sending files",
"titleReceiving": "Receiving files",
"savedToGallery": "Saved in Photos",
"total": {
"title": {
"sending": "Total progress ({time})",
"finishedError": "Finished with error",
"canceledSender": "Canceled by sender",
"canceledReceiver": "Canceled by receiver"
},
"count": "Files: {curr} / {n}",
"size": "Size: {curr} / {n}",
"speed": "Speed: {speed}/s"
}
},
"webSharePage": {
"title": "Share via link",
"loading": "Starting server…",
"stopping": "Stopping server…",
"error": "An error occurred while starting the server.",
"openLink": {
"one": "Open this link in your browser:",
"other": "Open one of these links in your browser:"
},
"requests": "Requests",
"noRequests": "No requests yet.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\"",
"encryptionHint": "LocalSend uses a self-signed certificate. You need to accept it in your browser.",
"pendingRequests": "Pending requests: {n}"
},
"aboutPage": {
"title": "About LocalSend",
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
},
"changelogPage": {
"title": "Changelog"
},
"dialogs": {
"addFile": {
"title": "Add to selection",
"content": "What do you want to add?"
},
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"addressInput": {
"title": "Enter address",
"hashtag": "Hashtag",
"ip": "IP Address",
"recentlyUsed": "Recently used: "
},
"cancelSession": {
"title": "Cancel files transfer",
"content": "Do you really want to cancel the files transfer?"
},
"cannotOpenFile": {
"title": "Cannot open file",
"content": "Could not open \"{file}\". Has this file been moved, renamed or deleted?"
},
"encryptionDisabledNotice": {
"title": "Encryption disabled",
"content": "Communication now takes place via the unencrypted HTTP protocol. To use HTTPS protocol, enable encryption again."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"fileInfo": {
"title": "File information",
"fileName": "File name:",
"path": "Path:",
"size": "Size:",
"sender": "Sender:",
"time": "Time:"
},
"fileNameInput": {
"title": "Enter file name",
"original": "Original: {original}"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend can't find other devices without having the permission to scan the local network. Please grant this permission in the settings.",
"gotoSettings": "Settings"
},
"messageInput": {
"title": "Type message",
"multiline": "Multiline"
},
"noFiles": {
"title": "No files selected",
"content": "Please select at least one file."
},
"noPermission": {
"title": "No permission",
"content": "You have not granted the necessary permissions. Please grant them in the settings."
},
"notAvailableOnPlatform": {
"title": "Not available",
"content": "This feature is only available on:"
},
"qr": {
"title": "QR Code"
},
"quickActions": {
"title": "Quick Actions",
"counter": "Counter",
"prefix": "Prefix",
"padZero": "Pad with zeros",
"sortBeforeCount": "Sort alphabetically beforehand (A-Z)",
"random": "Random"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "File requests are now accepted automatically. Be aware that everyone on the local network can send you files."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites"
}
},
"tray": {
"open": "@:general.open"
},
"web": {
"waiting": "@:sendPage.waiting"
}
}
@@ -0,0 +1,209 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <mn>.",
"After editing this file, you can run 'dart run slang apply --locale=mn' to quickly apply the newly added translations."
],
"general": {
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"settingsTab": {
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites"
},
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"generateRandomAlias": "Generate random alias"
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"loading": "Starting server…",
"stopping": "Stopping server…",
"encryption": "@:settingsTab.network.encryption"
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"addFile": {
"title": "Add to selection",
"content": "What do you want to add?"
},
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"addressInput": {
"title": "Enter address",
"hashtag": "Hashtag",
"ip": "IP Address",
"recentlyUsed": "Recently used: "
},
"cancelSession": {
"title": "Cancel files transfer",
"content": "Do you really want to cancel the files transfer?"
},
"cannotOpenFile": {
"title": "Cannot open file",
"content": "Could not open \"{file}\". Has this file been moved, renamed or deleted?"
},
"encryptionDisabledNotice": {
"title": "Encryption disabled",
"content": "Communication now takes place via the unencrypted HTTP protocol. To use HTTPS protocol, enable encryption again."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"fileInfo": {
"title": "File information",
"fileName": "File name:",
"path": "Path:",
"size": "Size:",
"sender": "Sender:",
"time": "Time:"
},
"fileNameInput": {
"title": "Enter file name",
"original": "Original: {original}"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend can't find other devices without having the permission to scan the local network. Please grant this permission in the settings.",
"gotoSettings": "Settings"
},
"messageInput": {
"title": "Type message",
"multiline": "Multiline"
},
"noFiles": {
"title": "No files selected",
"content": "Please select at least one file."
},
"noPermission": {
"title": "No permission",
"content": "You have not granted the necessary permissions. Please grant them in the settings."
},
"notAvailableOnPlatform": {
"title": "Not available",
"content": "This feature is only available on:"
},
"qr": {
"title": "QR Code"
},
"quickActions": {
"title": "Quick Actions",
"counter": "Counter",
"prefix": "Prefix",
"padZero": "Pad with zeros",
"sortBeforeCount": "Sort alphabetically beforehand (A-Z)",
"random": "Random"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "File requests are now accepted automatically. Be aware that everyone on the local network can send you files."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
},
"sendModeHelp": {
"title": "Send modes",
"single": "Sends files to one recipient. Selection will be cleared after finished files transfer.",
"multiple": "Sends files to multiple recipients. Selection will not be cleared after finished files transfer.",
"link": "Recipients who do not have LocalSend installed can download the selected files by opening the link in their browser."
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"tray": {
"open": "@:general.open",
"close": "Quit LocalSend",
"closeWindows": "Exit"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts",
"rejected": "Rejected",
"files": "Files",
"fileName": "File name",
"size": "Size"
},
"assetPicker": {
"confirm": "Confirm",
"cancel": "Cancel",
"edit": "Edit",
"gifIndicator": "GIF",
"loadFailed": "Load failed",
"original": "Origin",
"preview": "Preview",
"select": "Select",
"emptyList": "Empty list",
"unSupportedAssetType": "Unsupported file type.",
"unableToAccessAll": "Unable to access all files on the device",
"viewingLimitedAssetsTip": "Only view files and albums accessible to the app.",
"changeAccessibleLimitedAssets": "Click to update accessible files",
"accessAllTip": "App can only access some files on the device. Go to system settings and allow the app to access all media on the device.",
"goToSystemSettings": "Go to system settings",
"accessLimitedAssets": "Continue with limited access",
"accessiblePathName": "Accessible files",
"sTypeAudioLabel": "Audio",
"sTypeImageLabel": "Image",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Other media",
"sActionPlayHint": "play",
"sActionPreviewHint": "preview",
"sActionSelectHint": "select",
"sActionSwitchPathLabel": "change path",
"sActionUseCameraHint": "use camera",
"sNameDurationLabel": "duration",
"sUnitAssetCountLabel": "count"
}
}
@@ -0,0 +1,59 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <ms>.",
"After editing this file, you can run 'dart run slang apply --locale=ms' to quickly apply the newly added translations."
],
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"settingsTab": {
"general": {
"saveWindowPlacementWindows": "Save window position after exit"
},
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"encryptionHint": "LocalSend uses a self-signed certificate. You need to accept it in your browser."
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"quickSaveFromFavoritesNotice": {
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
}
+4 -100
View File
@@ -4,112 +4,16 @@
"After editing this file, you can run 'dart run slang apply --locale=ne' to quickly apply the newly added translations."
],
"general": {
"delete": "Delete",
"noItemInClipboard": "No items in Clipboard."
},
"sendTab": {
"picker": {
"clipboard": "Paste"
}
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"settingsTab": {
"general": {
"colorOptions": {
"oled": "OLED"
},
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
},
"dialogs": {
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
}
+1 -77
View File
@@ -2,81 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <nl>.",
"After editing this file, you can run 'dart run slang apply --locale=nl' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -2,59 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <pt-BR>.",
"After editing this file, you can run 'dart run slang apply --locale=pt-BR' to quickly apply the newly added translations."
],
"settingsTab": {
"general": {
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"packagers": "Packagers"
},
"dialogs": {
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -3,12 +3,36 @@
"Here are translations that exist in <en> but not in <pt-PT>.",
"After editing this file, you can run 'dart run slang apply --locale=pt-PT' to quickly apply the newly added translations."
],
"general": {
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"sendTab": {
"manualSending": "Manual sending"
},
"settingsTab": {
"general": {
"saveWindowPlacementWindows": "Save window position after exit",
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin"
},
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias"
}
},
"troubleshootPage": {
@@ -17,6 +41,13 @@
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
@@ -33,10 +64,25 @@
"packagers": "Packagers"
},
"dialogs": {
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
}
},
"tray": {
"closeWindows": "Exit"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
+1 -10
View File
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <ro>.",
"After editing this file, you can run 'dart run slang apply --locale=ro' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
@@ -0,0 +1,22 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <si>.",
"After editing this file, you can run 'dart run slang apply --locale=si' to quickly apply the newly added translations."
],
"settingsTab": {
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
}
}
@@ -0,0 +1,6 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <sk>.",
"After editing this file, you can run 'dart run slang apply --locale=sk' to quickly apply the newly added translations."
]
}
@@ -0,0 +1,42 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <sl>.",
"After editing this file, you can run 'dart run slang apply --locale=sl' to quickly apply the newly added translations."
],
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"settingsTab": {
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"dialogs": {
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"quickSaveFromFavoritesNotice": {
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
}
}
+1 -110
View File
@@ -2,114 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <sv>.",
"After editing this file, you can run 'dart run slang apply --locale=sv' to quickly apply the newly added translations."
],
"general": {
"delete": "Delete",
"noItemInClipboard": "No items in Clipboard."
},
"sendTab": {
"picker": {
"clipboard": "Paste"
}
},
"settingsTab": {
"general": {
"colorOptions": {
"oled": "OLED"
},
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
},
"dialogs": {
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
]
}
@@ -0,0 +1,6 @@
{
"@@info": [
"Here are translations that exist in <en> but not in <ta>.",
"After editing this file, you can run 'dart run slang apply --locale=ta' to quickly apply the newly added translations."
]
}
+51 -6
View File
@@ -3,13 +3,58 @@
"Here are translations that exist in <en> but not in <th>.",
"After editing this file, you can run 'dart run slang apply --locale=th' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
"general": {
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"aboutPage": {
"packagers": "Packagers"
"sendTab": {
"manualSending": "Manual sending"
},
"settingsTab": {
"general": {
"saveWindowPlacementWindows": "Save window position after exit"
},
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites"
},
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias"
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"dialogs": {
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
},
"tray": {
"closeWindows": "Exit"
}
}
+20 -6
View File
@@ -3,13 +3,27 @@
"Here are translations that exist in <en> but not in <tr>.",
"After editing this file, you can run 'dart run slang apply --locale=tr' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
"settingsTab": {
"receive": {
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites"
},
"network": {
"networkOptions": {
"filtered": "Filtered"
}
}
},
"aboutPage": {
"packagers": "Packagers"
"networkInterfacesPage": {
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes."
},
"dialogs": {
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
}
}
+30 -94
View File
@@ -4,112 +4,48 @@
"After editing this file, you can run 'dart run slang apply --locale=ur' to quickly apply the newly added translations."
],
"general": {
"delete": "Delete",
"noItemInClipboard": "No items in Clipboard."
"quickSaveFromFavorites": "Quick Save for \"Favorites\""
},
"sendTab": {
"picker": {
"clipboard": "Paste"
"receiveTab": {
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"settingsTab": {
"general": {
"colorOptions": {
"oled": "OLED"
},
"showInContextMenu": "Show LocalSend in context menu"
},
"receive": {
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites"
},
"network": {
"discoveryTimeout": "Discovery Timeout"
},
"other": {
"title": "Other",
"support": "Support LocalSend",
"donate": "Donate",
"privacyPolicy": "Privacy Policy",
"termsOfUse": "Terms of Use"
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias"
}
},
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"receiveHistoryPage": {
"entryActions": {
"showInFolder": "Show in folder"
}
},
"sendPage": {
"tooManyAttempts": "@:web.tooManyAttempts"
},
"webSharePage": {
"autoAccept": "Automatically accept requests",
"requirePin": "Require PIN",
"pinHint": "The PIN is \"{pin}\""
},
"aboutPage": {
"description": [
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
"title": "Donate",
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
"donate": "Donate {amount}",
"thanks": "Thank you very much!",
"restore": "Restore purchase"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"dialogs": {
"favoriteDialog": {
"title": "Favorites",
"noFavorites": "No favorite devices yet.",
"addFavorite": "Add"
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"favoriteDeleteDialog": {
"title": "Delete from favorites",
"content": "Do you really want to delete from favorites \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Add to favorites",
"titleEdit": "Settings",
"name": "Device name",
"auto": "(auto)",
"ip": "IP Address",
"port": "Port"
},
"historyClearDialog": {
"title": "Clear history",
"content": "Do you really want to delete the entire history?"
},
"pin": {
"title": "Enter PIN"
},
"zoom": {
"title": "URL"
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
}
},
"sanitization": {
"empty": "Filename cannot be empty",
"invalid": "Filename contains invalid characters"
},
"web": {
"enterPin": "Enter PIN",
"invalidPin": "Invalid PIN",
"tooManyAttempts": "Too many attempts"
}
}
+13 -6
View File
@@ -3,13 +3,20 @@
"Here are translations that exist in <en> but not in <vi>.",
"After editing this file, you can run 'dart run slang apply --locale=vi' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
"settingsTab": {
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"aboutPage": {
"packagers": "Packagers"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
}
}
@@ -3,13 +3,20 @@
"Here are translations that exist in <en> but not in <zh-HK>.",
"After editing this file, you can run 'dart run slang apply --locale=zh-HK' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
"settingsTab": {
"network": {
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
}
},
"aboutPage": {
"packagers": "Packagers"
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
}
}
@@ -2,14 +2,5 @@
"@@info": [
"Here are translations that exist in <en> but not in <zh-TW>.",
"After editing this file, you can run 'dart run slang apply --locale=zh-TW' to quickly apply the newly added translations."
],
"troubleshootPage": {
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
}
},
"aboutPage": {
"packagers": "Packagers"
}
]
}
+12
View File
@@ -19,6 +19,8 @@
}
},
"ar": {},
"az": {},
"bg": {},
"bn": {},
"ca": {},
"cs": {},
@@ -27,19 +29,25 @@
"el": {},
"en-IN": {},
"es-ES": {},
"et": {},
"eu": {},
"fa": {},
"fi": {},
"fil-PH": {},
"fr": {},
"gl": {},
"gu": {},
"he": {},
"hi": {},
"hu": {},
"id": {},
"it": {},
"ja": {},
"km": {},
"ko": {},
"ml": {},
"mn": {},
"ms": {},
"ne": {},
"nl": {},
"pl": {},
@@ -47,9 +55,13 @@
"pt-PT": {},
"ro": {},
"ru": {},
"si": {},
"sk": {},
"sl": {},
"sr": {},
"sr-Cyrl": {},
"sv": {},
"ta": {},
"th": {},
"tr": {},
"uk": {},
@@ -2,50 +2,56 @@
"locale": "العربية",
"appName": "LocalSend",
"general": {
"accept": "قبول",
"accepted": "تم قبولها",
"accept": "اقبل",
"accepted": "قُبلت",
"add": "إضافة",
"advanced": "متقدم",
"cancel": "إلغاء",
"close": "إغلاق",
"confirm": "تأكيد",
"cancel": "ألغِ",
"close": "أغلِق",
"confirm": "أكِّد",
"continueStr": "أكمل",
"copy": "إنسخ",
"copiedToClipboard": "نسخ إلى الحافظة",
"copy": "انسخ",
"copiedToClipboard": ُسخ إلى الحافظة",
"decline": "ارفض",
"done": "انتهى",
"delete": "حذف",
"edit": "تعديل",
"done": "تم",
"delete": "احذف",
"edit": "عدِّل",
"error": "خطأ",
"example": "مثال",
"files": "ملفات",
"finished": "انتهى",
"hide": "إخفاء",
"hide": "أخفِ",
"off": "إيقاف",
"offline": "غير متصل بالانترنت",
"on": "تشغيل",
"online": "متصل بالانترنت",
"open": "مفتوح",
"queue": "طابور",
"open": "افتح",
"queue": "صفّ",
"quickSave": "حفظ سريع",
"quickSaveFromFavorites": "حفظ سريع لـ \"المفضلات\"",
"renamed": "اعادة تسمية",
"reset": "إعادة ضبط",
"restart": "إعادة تشغيل",
"settings": "إعدادات",
"settings": "الإعدادات",
"skipped": "تم تخطيه",
"start": "ابدأ",
"stop": "قف",
"save": "احفظ",
"unchanged": "دون تغيير",
"unknown": "مجهول",
"noItemInClipboard": "لا توجد عناصر في الحافظة"
"noItemInClipboard": "لا توجد عناصر في الحافظة."
},
"receiveTab": {
"title": "استلام",
"infoBox": {
"ip": "IP:",
"port": "منفذ:",
"alias": "اسم مستعار:"
"alias": "اسم الجهاز:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "المفضلات",
"on": "@:general.on"
}
},
"sendTab": {
@@ -67,6 +73,7 @@
"nearbyDevices": "الأجهزة القريبة",
"thisDevice": "هذا الجهاز",
"scan": "ابحث عن أجهزة",
"manualSending": "الإرسال اليدوي",
"sendMode": "وضع الإرسال",
"sendModes": {
"single": "مستلم واحد",
@@ -74,39 +81,43 @@
"link": "مشاركة عبر الرابط"
},
"sendModeHelp": "شرح",
"help": "يرجى التأكد من أن الهدف المطلوب موجود أيضًا في نفس شبكة wifi.",
"help": ُرجى التأكد من أن الهدف المطلوب موجود أيضًا في نفس شبكة الواي فاي.",
"placeItems": "ضع العناصر للمشاركة."
},
"settingsTab": {
"title": "إعدادات",
"title": "الإعدادات",
"general": {
"title": "عام",
"brightness": "سمة",
"brightness": "السمة",
"brightnessOptions": {
"system": "نظام",
"dark": "داكن",
"light": "فاتح"
"dark": "داكنة",
"light": "فاتحة"
},
"color": "لون",
"color": "اللون",
"colorOptions": {
"system": "النظام",
"oled": "OLED"
},
"language": "لغة",
"language": "اللغة",
"languageOptions": {
"system": "نظام"
"system": "النظام"
},
"saveWindowPlacement": "إنهاء: حفظ موقع النافذة",
"saveWindowPlacementWindows": "حفظ موضع النافذة بعد الخروج",
"minimizeToTray": "إنهاء : أخفاء في شريط المهام",
"launchAtStartup": "تشغيل تلقائي بعد تسجيل الدخول",
"launchMinimized": "تشغيل تلقائي: ابدأ مخفيًا",
"showInContextMenu": "إظهار LocalSend في قائمة السياق",
"animations": "الرسوم المتحركة"
},
"receive": {
"title": "استلم",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "إنهاء تلقائي",
"destination": "حفظ في",
"destination": "احفظ في المجلد",
"downloads": "(التنزيلات)",
"saveToGallery": "حفظ الوسائط في المعرض",
"saveToHistory": "حفظ في التاريخ"
@@ -124,10 +135,17 @@
"deviceModel": "نموذج الجهاز",
"port": "منفذ",
"discoveryTimeout": "مهلة الاكتشاف",
"useSystemName": "استخدم اسم النظام",
"generateRandomAlias": "ولّد كنية عشوائية",
"portWarning": "ربما لا يتم الكشف عنك من قبل الأجهزة الأخرى لأنك تستخدم منفذ مخصص. (الافتراضي: {defaultPort})",
"encryption": "التشفير",
"encryption": "التعمية",
"multicastGroup": "فرق البث المتعدد",
"multicastGroupWarning": "ربما لا يتم الكشف عنك من قبل الأجهزة الأخرى لأنك تستخدم عنوان بث متعدد مخصص. (الافتراضي: {defaultMulticast})"
"multicastGroupWarning": "ربما لا يتم الكشف عنك من قبل الأجهزة الأخرى لأنك تستخدم عنوان بث متعدد مخصص. (الافتراضي: {defaultMulticast})",
"networkOptions": {
"filtered": "مُصفاة",
"all": "الكل"
},
"network": "الشبكة"
},
"other": {
"title": "أخرى",
@@ -148,20 +166,25 @@
"solution": "هذه المشكلة عادة ما تكون مشكلة في جدار الحماية. يمكنك حل هذه المشكلة عن طريق السماح بالاتصالات الواردة (UDP و TCP) على المنفذ {port}.",
"openFirewall": "افتح جدار الحماية"
},
"noDiscovery": {
"symptom": "هذا الجهاز لا يمكنه اكتشاف الأجهزة الأخرى.",
"solution": "يُرجى التأكد من أن جميع الأجهزة متصلة بنفس شبكة الواي فاي وتشارك نفس التكوين (المنفذ، عنوان البث المتعدد، التعمية). يمكنك محاولة كتابة عنوان IP للجهاز المستهدف يدويًا. إذا نجح ذلك، فكر في إضافة هذا الجهاز إلى قائمة المفضلات حتى يتم اكتشافه تلقائيًا في المستقبل."
},
"noConnection": {
"symptom": "لا يمكن للجهازين اكتشاف بعضهما البعض ولا يمكنهما مشاركة الملفات.",
"solution": "هل المشكلة موجودة على الجانبين؟ في هذه الحالة ، يجب عليك التأكد من أن الجهازين في نفس شبكة الواي فاي ويشتركان في نفس التكوين (المنفذ وعنوان البث المتعدد والتشفير). قد لا يسمح الواي فاي بالاتصال بين المشاركين. في هذه الحالة ، يجب تمكين هذا الخيار على الجهاز التوجيه."
"solution": "هل المشكلة موجودة على كِلا الجانبين؟ إذا كان الأمر كذلك، يجب التأكد من أن كِلا الجهازين متصلان بنفس شبكة الواي فاي ويشتركان في نفس الإعدادات (المنفذ، عنوان البث المتعدد، التعمية). قد تمنع شبكة الواي فاي الاتصال بين المشاركين بسبب عزل نقطة الوصول (AP Isolation). في هذه الحالة، يجب تعطيل هذا الخيار على الراوتر."
}
},
"receiveHistoryPage": {
"title": "السجل",
"openFolder": "فتح المجلد",
"deleteHistory": "حذف السجل",
"empty": "السجل فارغ.",
"title": "التاريخ",
"openFolder": "افتح المجلد",
"deleteHistory": "احذف التاريخ",
"empty": "التاريخ فارغ.",
"entryActions": {
"open": "فتح الملف",
"open": "افتح الملف",
"showInFolder": "اعرض في المجلد",
"info": "معلومات",
"deleteFromHistory": "حذف من السجل"
"deleteFromHistory": "احذف من التاريخ"
}
},
"apkPickerPage": {
@@ -171,7 +194,7 @@
"apps": "{n} تطبيق"
},
"selectedFilesPage": {
"deleteAll": "حذف الكل"
"deleteAll": "احذف الكل"
},
"receivePage": {
"subTitle": {
@@ -180,40 +203,49 @@
},
"subTitleMessage": "أرسل لك رسالة:",
"subTitleLink": "أرسل لك ارتباط:",
"canceled": "ألغى المرسل الطلب."
"canceled": ُلغِيَ المرسل الطلب."
},
"receiveOptionsPage": {
"title": "خيارات",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSend folder)",
"appDirectory": "(مجلد LocalSend)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "تم إيقافه تلقائيًا لوجود دلائل."
"saveToGalleryOff": "تم إيقافه تلقائيًا لوجود مجلدات."
},
"sendPage": {
"waiting": "بإنتظار الرد...",
"waiting": "بإنتظار الرد",
"rejected": "المستلم رفض الطلب.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "المستلم مشغول بطلب آخر."
},
"progressPage": {
"titleSending": "يتم إرسال الملفات",
"titleReceiving": "يتم استلام الملفات",
"savedToGallery": "تم الحفظ في الصور",
"titleSending": "جارِ إرسال الملفات",
"titleReceiving": "جارِ استلام الملفات",
"savedToGallery": ُفظ في الصور",
"total": {
"title": {
"sending": "التقدم الكلي ({time})",
"finishedError": "انتهى مع وجود خطأ",
"canceledSender": "ألغي من قبل المرسل",
"canceledReceiver": "ألغي من قبل المتلقي"
"canceledSender": ُلغِيَ من قِبل المرسل",
"canceledReceiver": ُلغِيَ من قِبل المتلقي"
},
"count": "ملفات: {curr} / {n}",
"size": "حجم: {curr} / {n}",
"speed": "سرعة: {speed}/ثانية"
},
"remainingTime": {
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h}س {m}د",
"days": "{d}ي {h}س {m}د",
"@hours": "استخدم 'س' لاختصار الساعات و'د' للدقائق",
"@days": "استخدم 'ي' للأيام، و'س' للساعات، و'د' للدقائق"
}
},
"webSharePage": {
"title": "مشاركة عبر الرابط",
"loading": "جاري بدء الخادم...",
"stopping": "جاري إيقاف الخادم...",
"loading": "جارِ بدء الخادم",
"stopping": "جارِ إيقاف الخادم",
"error": "حدث خطأ أثناء بدء الخادم.",
"openLink": {
"one": "افتح هذا الرابط في المتصفح:",
@@ -222,7 +254,9 @@
"requests": "الطلبات",
"noRequests": "لا يوجد طلبات حتى الآن.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "قبول الطلبات تلقائيا",
"autoAccept": "قبول الطلبات تلقائيًا",
"requirePin": "يتطلب رمز PIN",
"pinHint": "رمز PIN هو \"{pin}\"",
"encryptionHint": "يستخدم تطبيق LocalSend شهادة موقع ذاتية التوقيع. يجب عليك قبولها في المتصفح.",
"pendingRequests": "الطلبات المعلقة: {n}"
},
@@ -234,6 +268,7 @@
],
"author": "المؤلف",
"contributors": "المساهمون",
"packagers": "محزمي التطبيقات",
"translators": "المترجمون"
},
"donationPage": {
@@ -244,10 +279,10 @@
"restore": "استعادة شراء"
},
"changelogPage": {
"title": "التغييرات"
"title": "سجل التغييرات"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "قد تحتوي المناطق المختلفة على كلمات مختلفة ، وقد لا تتطابق 1:1",
"@info": "قد تحتوي المناطق المختلفة على كلمات مختلفة، وقد لا تتطابق 1:1",
"adjectives": [
"محبوب",
"جميل",
@@ -324,43 +359,47 @@
"title": "أضف إلى الاختيار",
"content": "ماذا تريد أن تضيف؟"
},
"openFile": {
"title": "افتح الملف",
"content": "هل تريد فتح الملف المُستلم؟"
},
"addressInput": {
"title": "أدخل العنوان",
"hashtag": "رابطة هاشتاق",
"ip": "عنوان IP",
"recentlyUsed": "تم استخدامها مؤخرًا: "
"recentlyUsed": "المستخدمة حديثًا: "
},
"cancelSession": {
"title": "إلغاء نقل الملف",
"title": "ألغِ نقل الملف",
"content": "هل تريد حقًا إلغاء نقل الملف؟"
},
"cannotOpenFile": {
"title": "لا يمكن فتح الملف",
"content": "تعذر فتح \"{file}\". هل تم نقل هذا الملف أو إعادة تسميته أو حذفه؟"
"content": "تعذر فتح \"{file}\". هل نُقل هذا الملف أو إعادة تسميته أو حذفه؟"
},
"encryptionDisabledNotice": {
"title": "تم تعطيل التشفير",
"content": "الاتصال يتم الآن عبر بروتوكول HTTP غير المشفر. لاستخدام HTTPS ، قم بتمكين التشفير مرة أخرى."
"title": "التعمية مُعطّلة",
"content": "الاتصال يتم الآن عبر بروتوكول HTTP غير المُعمّى. لاستخدام HTTPS، فعِّل التعمية مرة أخرى."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "المفضلة",
"title": "المفضلات",
"noFavorites": "لا توجد أجهزة مفضلة بعد.",
"addFavorite": "إضافة"
"addFavorite": "أضف"
},
"favoriteDeleteDialog": {
"title": "حذف من المفضلة",
"content": "هل ترغب حقًا في حذف \"{name}\" من قائمة المفضلة؟"
"title": "احذف من المفضلات",
"content": "هل ترغب حقًا في حذف \"{name}\" من المفضلات؟"
},
"favoriteEditDialog": {
"titleAdd": "إضافة إلى المفضلة",
"titleEdit": "تعديل",
"name": "الاسم",
"titleAdd": "أضف إلى المفضلات",
"titleEdit": "اﻹعدادات",
"name": "اسم الجهاز",
"auto": "(تلقائي)",
"ip": "عنوان IP",
"port": "Port"
"port": "المنفذ"
},
"fileInfo": {
"title": "معلومات الملف",
@@ -375,12 +414,12 @@
"original": "أصلي: {original}"
},
"historyClearDialog": {
"title": "محو السجل",
"content": "هل ترغب حقًا في محو السجل بالكامل؟"
"title": "امسح التاريخ",
"content": "هل ترغب حقًا في مسح التاريخ بالكامل؟"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "لا يمكن ل LocalSend العثور على الأجهزة الأخرى بدون الإذن بفحص الشبكة المحلية. يرجى منح هذا الإذن في الإعدادات.",
"description": "لا يمكن ل LocalSend العثور على الأجهزة الأخرى بدون الإذن بفحص الشبكة المحلية. يُرجى منح هذا الإذن في الإعدادات.",
"gotoSettings": "الإعدادات"
},
"messageInput": {
@@ -393,35 +432,46 @@
},
"noPermission": {
"title": "بدون إذن",
"content": "لم تقم بمنح الأذونات اللازمة. يرجى منحها من الإعدادات."
"content": "لم تمنح الأذونات اللازمة. يُرجى منحها في الإعدادات."
},
"notAvailableOnPlatform": {
"title": "غير متاح",
"content": "هذه الميزة متاحة فقط على:"
},
"qr": {
"title": "رمز الاستجابة السريعة"
"title": "رمز QR"
},
"quickActions": {
"title": "إجراءات سريعة",
"counter": "عداد",
"prefix": "بادئة",
"padZero": "بدأ مع أصفار",
"sortBeforeCount": "قم بالفرز أبجديًا مسبقًا",
"padZero": "احشو مع أصفار",
"sortBeforeCount": "افرز أبجديًا مسبقًا (أ-ي)",
"random": "عشوائي"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "يتم قبول طلبات الملفات تلقائيًا. اعلم أن كل فرد في الشبكة المحلية يمكنه إرسال الملفات إليك."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"يتم الآن قبول طلبات الملفات تلقائيًا من الأجهزة الموجودة في قائمة المفضلات لديك.",
"تحذير! في الوقت الحالي، هذا ليس آمنًا تمامًا، حيث يمكن للمخترق الذي لديه بصمة أي جهاز من قائمة المفضلات لديك أن يرسل لك ملفات دون قيود.",
"ومع ذلك، يظل هذا الخيار أكثر أمانًا من السماح لجميع المستخدمين على الشبكة المحلية بإرسال الملفات إليك دون قيود."
]
},
"pin": {
"title": "أدخل رمز PIN"
},
"sendModeHelp": {
"title": "أوضاع الإرسال",
"single": "يقوم بإرسال الملفات إلى مستلم واحد. ستتم مسح الاختيار بعد انتهاء نقل الملف.",
"multiple": قوم بإرسال الملفات إلى مستلمين متعددين. لن يتم مسح الاختيار.",
"single": "يقوم بإرسال الملفات إلى مستلم واحد. سيتم مسح الاختيار بعد انتهاء نقل الملف.",
"multiple": "يرسل الملفات إلى عدة مستلمين. لن يتم مسح التحديد بعد الانتهاء من نقل الملفات.",
"link": "يمكن للمستلمين الذين لا يحتوون على LocalSend تنزيل الملفات المحددة عن طريق فتح الرابط في متصفحهم."
},
"zoom": {
"title": "URL"
"title": "عنوان URL"
}
},
"sanitization": {
@@ -431,44 +481,55 @@
"tray": {
"@info": "إرشادات Apple صارمة للغاية بشأن صياغة 'الإغلاق'.",
"open": "@:general.open",
"close": غلق LocalSend"
"close": نهِ LocalSend",
"closeWindows": "اخرج"
},
"web": {
"waiting": "@:sendPage.waiting",
"rejected": "مرفوضة",
"enterPin": "أدخل رمز PIN",
"invalidPin": "رمز PIN غير صالح",
"tooManyAttempts": "محاولات كثيرة جدًا",
"rejected": "رُفض",
"files": "الملفات",
"fileName": "اسم الملف",
"size": "الحجم"
},
"assetPicker": {
"@info": "Translations for the Media selection tool for Android and Iphone",
"confirm": "تاكيد",
"cancel": "إلغاء",
"edit": "تعديل",
"@info": "ترجمات أداة تحديد الوسائط لنظامي التشغيل أندرويد و آيفون",
"confirm": "أكّد",
"cancel": "ألغِ",
"edit": "عدّل",
"gifIndicator": "GIF",
"loadFailed": "فشل التحميل",
"original": "أصلي",
"preview": "معاينة",
"select": "تحديد",
"select": "حدّد",
"emptyList": "القائمة فارغة",
"unSupportedAssetType": "نوع غير مدعوم",
"unSupportedAssetType": "نوع الملف غير مدعوم.",
"unableToAccessAll": "لا يمكن الوصول إلى جميع الملفات الموجودة على الجهاز",
"viewingLimitedAssetsTip": "إظهار الملفات والألبومات التي يمكن للتطبيق الوصول إليها فقط.",
"changeAccessibleLimitedAssets": "السماح بالوصول إلى ملفات إضافية",
"accessAllTip": "يمكن للتطبيق الوصول فقط إلى بعض الملفات على الجهاز. انتقل إلى إعدادات النظام واسمح للتطبيق بالوصول إلى جميع الوسائط على الجهاز.",
"goToSystemSettings": "فتح إعدادات النظام",
"accessLimitedAssets": "الاستمرار مع صلاحيات محدوده",
"changeAccessibleLimitedAssets": "انقر لتحديث الملفات التي يمكن الوصول إليها",
"accessAllTip": "يمكن للتطبيق الوصول فقط إلى بعض الملفات على الجهاز. اذهب إلى إعدادات النظام واسمح للتطبيق بالوصول إلى جميع الوسائط على الجهاز.",
"goToSystemSettings": "اذهب إلى إعدادات النظام",
"accessLimitedAssets": "استمر بوصول محدود",
"accessiblePathName": "ملفات يمكن الوصول إليها",
"sTypeAudioLabel": "صوتي",
"sTypeImageLabel": "صورة",
"sTypeVideoLabel": "فيديو",
"sTypeOtherLabel": "آخر",
"sActionPlayHint": "تشغيل",
"sTypeOtherLabel": "وسائط أخرى",
"sActionPlayHint": "شغِّل",
"sActionPreviewHint": "معاينة",
"sActionSelectHint": "تحديد",
"sActionSwitchPathLabel": "تبديل المسار",
"sActionSelectHint": "حدّد",
"sActionSwitchPathLabel": "غيّر المسار",
"sActionUseCameraHint": "استخدم الكاميرا",
"sNameDurationLabel": "مدة",
"sUnitAssetCountLabel": "عدد"
},
"networkInterfacesPage": {
"whitelist": "القائمة البيضاء",
"title": "واجهات الشبكة",
"blacklist": "القائمة السوداء",
"info": "بشكل افتراضي، يستخدم LocalSend جميع واجهات الشبكة المتاحة. يمكنك استبعاد الشبكات غير المرغوب فيها هنا. تحتاج إلى إعادة تشغيل الخادم لتطبيق التغييرات.",
"preview": "معاينة"
}
}
+457
View File
@@ -0,0 +1,457 @@
{
"locale": "Azərbaycanca",
"appName": "LocalSend",
"general": {
"accept": "Qəbul et",
"accepted": "Qəbul edildi",
"add": "Əlavə et",
"advanced": "Qabaqcıl",
"cancel": "Ləğv et",
"close": "Bağla",
"confirm": "Təsdiqlə",
"continueStr": "Davam et",
"copy": "Köçür",
"copiedToClipboard": "Məlumat buferinə köçürüldü",
"decline": "İmtina et",
"done": "Oldu",
"delete": "Sil",
"edit": "Düzəliş et",
"error": "Xəta",
"example": "Nümunə",
"files": "Fayllar",
"finished": "Bitdi",
"hide": "Gizlət",
"off": "Bağlı",
"offline": "Oflayn",
"on": "Aktiv",
"online": "Onlayn",
"open": "Aç",
"queue": "Növbə",
"quickSave": "Cəld yadda saxla",
"quickSaveFromFavorites": "\"Sevimlilər\" üçün cəld yadda saxla",
"renamed": "Adı dəyişdirildi",
"reset": "Dəyişiklikləri geri qaytar",
"restart": "Yenidən başlat",
"settings": "Parametrlər",
"skipped": "Ötürüldü",
"start": "Başlat",
"stop": "Dayandır",
"save": "Yadda saxla",
"unchanged": "Dəyişdirilməmiş",
"unknown": "Naməlum",
"noItemInClipboard": "Məlumat buferində element yoxdur."
},
"receiveTab": {
"title": "Qəbul et",
"infoBox": {
"ip": "IP:",
"port": "Port:",
"alias": "Cihazın adı:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Sevimlilər",
"on": "@:general.on"
}
},
"sendTab": {
"title": "Göndər",
"selection": {
"title": "Seçim",
"files": "Fayllar: {files}",
"size": "Ölçü: {size}"
},
"picker": {
"file": "Fayl",
"folder": "Qovluq",
"media": "Media",
"text": "Mətn",
"app": "Tətbiq",
"clipboard": "Yapışdır"
},
"shareIntentInfo": "Faylları daha rahat seçmək üçün mobil cihazınızın \"Paylaş\" xüsusiyyətin də istifadə edə bilərsiniz.",
"nearbyDevices": "Yaxınlıqdakı cihazlar",
"thisDevice": "Bu Cihaz",
"scan": "Cihazları axtar",
"manualSending": "Özünüz göndərin",
"sendMode": "Göndərmə üsulu",
"sendModes": {
"single": "Tək qəbul edən",
"multiple": "Çoxsaylı alıcılar",
"link": "Keçid vasitəsilə paylaş"
},
"sendModeHelp": "İzahat",
"help": "Xahiş olunur, əmin olun ki, istədiyiniz hədəf eyni Wi-Fi şəbəkəsindədir.",
"placeItems": "Paylaşmaq üçün elementləri yerləşdir."
},
"settingsTab": {
"title": "Tənzimləmələr",
"general": {
"title": "Ümumi",
"brightness": "Tema",
"brightnessOptions": {
"system": "Sistem",
"dark": "Qaranlıq",
"light": "İşıqlı"
},
"color": "Rəng",
"colorOptions": {
"system": "Sistem",
"oled": "OLED"
},
"language": "Dil",
"languageOptions": {
"system": "Sistem"
},
"saveWindowPlacement": "Çıxdıqdan sonra pəncərə mövqeyini saxla",
"saveWindowPlacementWindows": "Çıxış sonrası pəncərə mövqeyin saxla",
"minimizeToTray": "Bağlayanda Sistem Sahəsi/Menyu Cizgisinə kiçilt",
"launchAtStartup": "Girişdən sonra birbaşa başlat",
"launchMinimized": "Birbaşa başlat: Gizli başlat",
"showInContextMenu": "Məzmun menyusunda LocalSend-i göstər",
"animations": "Animasiyalar"
},
"receive": {
"title": "Qəbul et",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"autoFinish": "Avtomatik Bitirmə",
"requirePin": "@:webSharePage.requirePin",
"destination": "Qovluqda yadda saxla",
"downloads": "(Yüklənənlər)",
"saveToGallery": "Medianı qalereyada yadda saxla",
"saveToHistory": "Tarixçədə yadda saxla"
},
"advancedSettings": "Qabaqcıl parametrlər",
"send": {
"title": "Göndər",
"shareViaLinkAutoAccept": "\"Keçid vasitəsilə paylaş\" rejimində sorğuları avtomatik qəbul et"
},
"network": {
"title": "Şəbəkə",
"needRestart": "Parametrləri tətbiq etmək üçün serveri yenidən başladın!",
"server": "Server",
"alias": "Cihazın adı",
"deviceType": "Cihazın tipi",
"deviceModel": "Cihazın modeli",
"port": "Port",
"discoveryTimeout": "Axtarışın zaman aşımı",
"useSystemName": "Sistemin adından istifadə et",
"generateRandomAlias": "Təsadüfi ad yarat",
"portWarning": "Fərdi portdan istifadə etdiyiniz üçün başqa cihazlar tərəfindən aşkarlanmaya bilərsiniz. (defolt: {defaultPort})",
"multicastGroup": "Multicast ünvanı",
"encryption": "Şifrələmə",
"multicastGroupWarning": "Fərdi multicast ünvanından istifadə etdiyiniz üçün başqa cihazlar tərəfindən aşkarlanmaya bilərsiniz. (defolt: {defaultMulticast})",
"network": "Şəbəkə",
"networkOptions": {
"all": "Hamısı",
"filtered": "Filtrlənmiş"
}
},
"other": {
"title": "Digər",
"support": "LocalSend-i dəstəklə",
"donate": "İanə et",
"privacyPolicy": "Məxfilik siyasəti",
"termsOfUse": "İstifadə şərtləri"
}
},
"receiveHistoryPage": {
"openFolder": "Qovluğu aç",
"deleteHistory": "Tarixçəni sil",
"title": "Tarixçə",
"entryActions": {
"deleteFromHistory": "Tarixçədən sil",
"open": "Faylı aç",
"showInFolder": "Qovluqda göstər",
"info": "Məlumat"
},
"empty": "Tarixçə boşdur."
},
"dialogs": {
"noFiles": {
"title": "Heç bir fayl seçilməyib",
"content": "Zəhmət olmasa, ən azı bir fayl seçin."
},
"fileInfo": {
"size": "Ölçüsü:",
"path": "Yol:",
"sender": "Göndərən:",
"title": "Fayl məlumatı",
"fileName": "Faylın adı:",
"time": "Vaxt:"
},
"qr": {
"title": "QR-kod"
},
"historyClearDialog": {
"content": "Bütün tarixçəni silmək istədiyinizə əminsiniz?",
"title": "Tarixçəni təmizlə"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend lokal şəbəkəni skan etmək icazəsi olmadan digər cihazları tapa bilmir. Zəhmət olmasa, parametrlərdən bu icazəni verin.",
"gotoSettings": "Parametrlər"
},
"quickSaveFromFavoritesNotice": {
"content": [
"Fayl sorğuları artıq sevimlilər siyahısındakı cihazlardan avtomatik qəbul edəcək.",
"Xəbərdarlıq! Hal-hazırda bu, tamamilə təhlükəsiz deyil, çünki sevimlilər siyahısındakı istənilən cihazın barmaq izinə sahib olan haker məhdudiyyətsiz sizə fayllar göndərə bilər.",
"Bununla belə, bu seçim lokal şəbəkədəki bütün istifadəçilərin sizə məhdudiyyətsiz fayllar göndərməsinə icazə verməkdən daha təhlükəsizdir."
],
"title": "@:general.quickSaveFromFavorites"
},
"pin": {
"title": "PIN-i daxil et"
},
"sendModeHelp": {
"title": "Göndərmə rejimləri",
"single": "Faylları bir cihaza göndərir. Faylların ötürülməsi başa çatdıqdan sonra seçim silinəcək.",
"multiple": "Faylları birdən çox cihaza göndərir. Faylların ötürülməsi tamamlandıqdan sonra seçim silinməyəcək.",
"link": "LocalSend-i quraşdırmamış alıcılar linki brauzerlərində açaraq seçilmiş faylları endirə bilərlər."
},
"favoriteDialog": {
"addFavorite": "Əlavə et",
"title": "Sevimlilər",
"noFavorites": "Hələ ki, sevimli cihaz yoxdur."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteEditDialog": {
"titleAdd": "Sevimlilərə əlavə et",
"titleEdit": "Parametrlər",
"name": "Cihazın adı",
"auto": "(avtomatik)",
"ip": "IP ünvan",
"port": "Port"
},
"addFile": {
"title": "Seçilmişlərə əlavə et",
"content": "Nə əlavə etmək istəyirsiniz?"
},
"openFile": {
"title": "Faylı aç",
"content": "Qəbul edilmiş faylı açmaq istəyirsiniz?"
},
"addressInput": {
"title": "Ünvanı daxil et",
"hashtag": "Heşteq",
"ip": "IP ünvan",
"recentlyUsed": "Son istifadə olunan: "
},
"cancelSession": {
"title": "Fayl transferini ləğv et",
"content": "Siz həqiqətən faylların transferini ləğv etmək istəyirsiniz?"
},
"cannotOpenFile": {
"title": "Faylı açmaq mümkün olmadı",
"content": "\"{file}\" faylını açmaq mümkün olmadı. Fayl köçürülmüş, adı dəyişdirilmiş və ya silinmiş ola bilər?"
},
"encryptionDisabledNotice": {
"title": "Şifrələmə deaktiv edilib",
"content": "Əlaqə artıq şifrələnməmiş HTTP protokolu vasitəsilə həyata keçirilir. HTTPS protokolundan istifadə etmək üçün şifrələməni yenidən aktiv edin."
},
"favoriteDeleteDialog": {
"title": "Sevimlilərdən sil",
"content": "Həqiqətən də \"{name}\" cihazını sevimlilərdən silmək istəyirsiniz?"
},
"fileNameInput": {
"title": "Faylın adını daxil et",
"original": "Orijinal: {original}"
},
"messageInput": {
"title": "Mesaj yaz",
"multiline": "Çoxsətirli"
},
"noPermission": {
"title": "İcazə yoxdur",
"content": "Siz lazımi icazələri verməmisiniz. Zəhmət olmasa, parametrlərdə icazə verin."
},
"notAvailableOnPlatform": {
"title": "Mövcud deyil",
"content": "Bu funksiya sadəcə burada mövcuddur:"
},
"quickActions": {
"title": "Sürətli hərəkətlər",
"counter": "Sayğac",
"prefix": "Prefiks",
"padZero": "Sıfırlar ilə doldur",
"sortBeforeCount": "Qabaqcadan əlifba sırası ilə sırala",
"random": "Təsadüfi"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "Fayl sorğuları artıq avtomatik qəbul ediləcək. Nəzərə alın ki, lokal şəbəkədəki hər kəs sizə fayl göndərə bilər."
},
"zoom": {
"title": "URL"
}
},
"troubleshootPage": {
"title": "Problemləri həll etmə",
"noDiscovery": {
"solution": "Zəhmət olmasa, bütün cihazların eyni Wi-Fi şəbəkəsində olduğundan və eyni konfiqurasiyanı (port, multicast ünvanı, şifrələmə) paylaşdığından əmin olun. Hədəf cihazın IP ünvanını əl ilə yazmağı cəhd edə bilərsiniz. Əgər bu işə yararsa, gələcəkdə avtomatik aşkarlanması üçün bu cihazı sevimlilərə əlavə etməyi nəzərdən keçirin.",
"symptom": "Bu cihaz digər cihazları aşkar edə bilməz."
},
"subTitle": "Tətbiq gözlənildiyi kimi işləmir? Burada problemlərin ümumi həll yollarını tapa bilərsiniz.",
"firewall": {
"symptom": "Bu cihaz digər cihazlara fayl göndərə bilər, lakin qəbul edə bilməz.",
"solution": "Bu, çox güman ki, firewall problemidir. Siz {port} portunda daxil olan bağlantılara (UDP və TCP) icazə verməklə bunu həll edə bilərsiniz.",
"openFirewall": "Şəbəkə ekranını (firewall) aç"
},
"noConnection": {
"solution": "Problem hər iki tərəfdə də var? Əgər belədirsə, hər iki cihazın eyni Wi-Fi şəbəkəsində olduğundan və eyni konfiqurasiyanı (port, multicast ünvanı, şifrələmə) paylaşdığından əmin olmalısınız. Wi-Fi şəbəkəsi Access Point (AP) izolyasiyasına görə iştirakçılar arasında ünsiyyətə icazə verməyə bilər. Bu halda, bu seçim ruterdə söndürülməlidir.",
"symptom": "Hər iki cihaz bir-birini aşkarlaya bilmir və faylları paylaşa bilmir."
},
"solution": "Həll:",
"fixButton": "Avtomatik düzəlt"
},
"webSharePage": {
"stopping": "Server dayandırılır…",
"pendingRequests": "Gözləyən sorğular: {n}",
"loading": "Server aktivləşdirilir…",
"error": "Serveri aktivləşdirərkən xəta baş verdi.",
"openLink": {
"one": "Bu keçidi brauzerdə aç:",
"other": "Bu keçidlərdən birini brauzerdə aç:"
},
"title": "Keçid vasitəsilə paylaş",
"requests": "Sorğular",
"noRequests": "Hələ ki, heç bir sorğu yoxdur.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Sorğuları avtomatik qəbul et",
"requirePin": "PIN tələb et",
"pinHint": "Sizin PIN: \"{pin}\"",
"encryptionHint": "LocalSend özü imzalanmış sertifikatdan istifadə edir. Siz onu brauzerinizdə qəbul etməlisiniz."
},
"networkInterfacesPage": {
"info": "Defolt olaraq, LocalSend bütün mövcud şəbəkə interfeyslərindən istifadə edir. Burada istənilməyən şəbəkələri istisna edə bilərsiniz. Dəyişiklikləri tətbiq etmək üçün serveri yenidən başlatmalısınız.",
"whitelist": "Ağ siyahı",
"blacklist": "Qara siyahı",
"title": "Şəbəkə interfeysləri",
"preview": "Önizlə"
},
"assetPicker": {
"accessiblePathName": "Əlçatan fayllar",
"sTypeAudioLabel": "Audio",
"loadFailed": "Yükləmə uğursuz oldu",
"accessLimitedAssets": "Məhdud icazə ilə davam et",
"preview": "Önizləmə",
"select": "Seç",
"emptyList": "Boş siyahı",
"unSupportedAssetType": "Dəstəklənməyən fayl tipi.",
"unableToAccessAll": "Cihazdakı bütün fayllara daxil olmaq mümkün deyil",
"viewingLimitedAssetsTip": "Yalnız proqram üçün əlçatan olan fayl və albomlara bax.",
"@info": "Android və iPhone üçün Media seçim aləti üçün tərcümələr",
"confirm": "Təsdiqlə",
"cancel": "İmtina",
"edit": "Düzəliş et",
"gifIndicator": "GIF",
"original": "Orijinal",
"changeAccessibleLimitedAssets": "Əlçatan faylları yeniləmək üçün kliklə",
"accessAllTip": "Tətbiq cihazdakı yalnız bəzi fayllara daxil ola bilər. Sistem parametrlərinə gedin və tətbiqin cihazdakı bütün mediaya daxil olmasına icazə verin.",
"goToSystemSettings": "Sistem parametrlərinə get",
"sTypeImageLabel": "Şəkil",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Digər media",
"sActionPlayHint": "aç",
"sActionPreviewHint": "önizləmə",
"sActionSelectHint": "seç",
"sActionSwitchPathLabel": "yolu dəyiş",
"sActionUseCameraHint": "kamera istifadə et",
"sNameDurationLabel": "müddət",
"sUnitAssetCountLabel": "say"
},
"sendPage": {
"rejected": "Qəbul edən bu sorğudan imtina etdi.",
"waiting": "Qarşı tərəfdən cavab gözlənilir…",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "Qəbul edən başqa sorğu ilə məşğuldur."
},
"web": {
"fileName": "Fayl adı",
"files": "Fayllar",
"waiting": "@:sendPage.waiting",
"enterPin": "PIN-i daxil et",
"invalidPin": "Səhv PIN",
"tooManyAttempts": "Çoxsaylı cəhd",
"rejected": "Rədd edildi",
"size": "Ölçü"
},
"tray": {
"closeWindows": "Çıxış",
"@info": "Apple təlimatları \"bağla\" ifadələri ilə bağlı çox ciddidir.",
"open": "@:general.open",
"close": "LocalSend-dən çıx"
},
"apkPickerPage": {
"apps": "{n} tətbiq",
"title": "Tətbiqlər (APK)",
"excludeSystemApps": "Sistem tətbiqlərini istisna et",
"excludeAppsWithoutLaunchIntent": "Açıla bilməyən tətbiqləri istisna et"
},
"receivePage": {
"subTitleLink": "sənə keçid göndərdi:",
"canceled": "Göndərən bu sorğunu ləğv etdi.",
"subTitle": {
"one": "sənə fayl göndərmək istəyir",
"other": "sənə {n} fayl göndərmək istəyir"
},
"subTitleMessage": "sənə mesaj göndərdi:"
},
"receiveOptionsPage": {
"title": "Seçimlər",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSend qovluğu)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Qovluqlar olduğu üçün avtomatik söndürülür."
},
"progressPage": {
"total": {
"title": {
"canceledSender": "Göndərən tərəfindən dayandırıldı",
"sending": "Ümumi proses ({time})",
"finishedError": "Proses xəta verərək dayandı",
"canceledReceiver": "Qəbul edən tərəfindən dayandırıldı"
},
"count": "Fayl: {curr} / {n}",
"size": "Ölçü: {curr} / {n}",
"speed": "Sürət: {speed}/s"
},
"titleSending": "Fayllar göndərilir",
"titleReceiving": "Fayllar qəbul edilir",
"savedToGallery": "Qalereyada saxlanıldı"
},
"donationPage": {
"info": "LocalSend pulsuz, açıq mənbəlidir və heç bir reklam yoxdur. Proqramı bəyənirsinizsə, ianə ilə inkişafını dəstəkləyə bilərsiniz.",
"title": "İanə et",
"donate": "{amount} ianə et",
"thanks": "Çox təşəkkür edirəm!",
"restore": "Satın almaları bərpa et"
},
"selectedFilesPage": {
"deleteAll": "Hamısını sil"
},
"aboutPage": {
"description": [
"LocalSend internet bağlantısına ehtiyac olmadan lokal şəbəkə üzərindən yaxınlıqdakı cihazlarla faylları və mesajları təhlükəsiz paylaşmağa imkan verən pulsuz, açıq mənbəli proqramdır.",
"Bu proqram Android, iOS, macOS, Windows və Linux sistemlərində mövcuddur. Bütün yükləmə variantlarını rəsmi saytda tapa bilərsiniz."
],
"author": "Müəllif",
"contributors": "Töhfə verənlər",
"title": "LocalSend haqqında",
"packagers": "Paketləyənlər",
"translators": "Tərcüməçilər"
},
"changelogPage": {
"title": "Versiya jurnalı"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Fərqli dillərdə fərqli sözlər ola bilər, 1:1 uyğun olmaya bilər"
},
"sanitization": {
"empty": "Fayl adı boş ola bilməz",
"invalid": "Fayl adında etibarsız simvollar ola bilməz"
}
}
+465
View File
@@ -0,0 +1,465 @@
{
"locale": "Български",
"appName": "LocalSend",
"general": {
"accept": "Приеми",
"accepted": "Прието",
"add": "Добави",
"advanced": "Разширено",
"cancel": "Отказ",
"close": "Затвори",
"confirm": "Потвърди",
"continueStr": "Продължи",
"copy": "Копирай",
"copiedToClipboard": "Копирано в клипборда",
"decline": "Откажи",
"done": "Готово",
"delete": "Изтриване",
"edit": "Редактирай",
"error": "Грешка",
"example": "Пример",
"files": "Файлове",
"finished": "Завършено",
"hide": "Скрий",
"off": "Изключено",
"offline": "Офлайн",
"on": "Включено",
"online": "Онлайн",
"open": "Отвори",
"queue": "Опашка",
"quickSave": "Бързо запазване",
"quickSaveFromFavorites": "Бързо запазване за „Любими“",
"renamed": "Преименуван",
"reset": "Отмяна на промените",
"restart": "Рестартирай",
"settings": "Настройки",
"skipped": "Пропуснато",
"start": "Започни",
"stop": "Спри",
"save": "Запази",
"unchanged": "Непроменено",
"unknown": "Неизвестно",
"noItemInClipboard": "Няма елементи в клипборда."
},
"receiveTab": {
"title": "Получаване",
"infoBox": {
"ip": "IP:",
"port": "Порт:",
"alias": "Име на устройството:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Любими",
"on": "@:general.on"
}
},
"sendTab": {
"title": "Изпращане",
"selection": {
"title": "Избор",
"files": "Файлове: {files}",
"size": "Размер: {size}"
},
"picker": {
"file": "Файл",
"folder": "Папка",
"media": "Медия",
"text": "Текст",
"app": "Приложение",
"clipboard": "Постави"
},
"shareIntentInfo": "Можете също да използвате функцията „Споделяне“ на вашето мобилно устройство, за да избирате файлове по-лесно.",
"nearbyDevices": "Устройства в близост",
"thisDevice": "Това устройство",
"scan": "Търсене на устройства",
"manualSending": "Ръчно изпращане",
"sendMode": "Режим на изпращане",
"sendModes": {
"single": "Единичен получател",
"multiple": "Множество получатели",
"link": "Споделете чрез връзка"
},
"sendModeHelp": "Обяснение",
"help": "Моля, уверете се, че желаната цел също е в същата Wi-Fi мрежа.",
"placeItems": "Поставете елементи за споделяне."
},
"settingsTab": {
"title": "Настройки",
"general": {
"title": "Общи",
"brightness": "Тема",
"brightnessOptions": {
"system": "Система",
"dark": "Тъмна",
"light": "Светла"
},
"color": "Цвят",
"colorOptions": {
"system": "Система",
"oled": "OLED"
},
"language": "Език",
"languageOptions": {
"system": "Система"
},
"saveWindowPlacement": "Запази позицията на прозореца след напускане",
"saveWindowPlacementWindows": "Запази позицията на прозореца след излизане",
"minimizeToTray": "Минимизирай в Системна област/Лента с менюта при затваряне",
"launchAtStartup": "Автоматично стартиране след влизане",
"launchMinimized": "Автоматично стартиране: Стартирай скрито",
"showInContextMenu": "Покажи LocalSend в контекстното меню",
"animations": "Анимации"
},
"receive": {
"title": "Получаване",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Автоматично завършване",
"destination": "Запази в папка",
"downloads": "(Изтегляния)",
"saveToGallery": "Запази медия в галерия",
"saveToHistory": "Запази в история"
},
"send": {
"title": "Изпращане",
"shareViaLinkAutoAccept": "Автоматично приемане на заявки в режим \"Споделяне чрез връзка\""
},
"network": {
"title": "Мрежа",
"needRestart": "Рестартирай сървъра, за да приложите настройките!",
"server": "Сървър",
"alias": "Име на устройството",
"deviceType": "Тип на устройството",
"deviceModel": "Модел на устройството",
"port": "Порт",
"discoveryTimeout": "Изчакване за откриване",
"useSystemName": "Използвай системно име",
"generateRandomAlias": "Създаване на случаен псевдоним",
"portWarning": "Възможно е да не бъдете открити от други устройства, защото използвате персонализиран порт. (default: {defaultPort})",
"encryption": "Шифроване",
"multicastGroup": "Адрес за множествено предаване",
"multicastGroupWarning": "Възможно е да не бъдете открити от други устройства, защото използвате персонализиран адрес за множествено предаване. (default: {defaultMulticast})",
"network": "Мрежа",
"networkOptions": {
"all": "Всички",
"filtered": "Филтриране"
}
},
"other": {
"title": "Други",
"support": "Поддръжка на LocalSend",
"donate": "Дарение",
"privacyPolicy": "Политика за поверителност",
"termsOfUse": "Условия за ползване"
},
"advancedSettings": "Разширени настройки"
},
"troubleshootPage": {
"title": "Отстраняване на неизправност",
"subTitle": "Приложението не работи ли според очакванията? Тук можете да намерите някои общи решения на проблеми.",
"solution": "Решение:",
"fixButton": "Автоматично поправяне",
"firewall": {
"symptom": "Това устройство може да изпраща файлове на други устройства, но други устройства не могат да изпращат файлове на това устройство.",
"solution": "Това най-вероятно е проблем със защитната стена. Можете да разрешите това, като разрешите входящи връзки (UDP и TCP) на порт {port}.",
"openFirewall": "Отворете защитната стена"
},
"noDiscovery": {
"symptom": "Това устройство не може да открие други устройства.",
"solution": "Моля, уверете се, че всички устройства са в една и съща Wi-Fi мрежа и споделят една и съща конфигурация (порт, адрес за множествено предаване, криптиране). Можете да опитате да въведете ръчно IP адреса на целевото устройство. Ако това работи, обмислете добавянето на това устройство към любими, за да може да бъде автоматично открито в бъдеще."
},
"noConnection": {
"symptom": "И двете устройства не могат да се откриват, нито могат да споделят файлове.",
"solution": "Проблемът и от двете страни ли съществува? Ако е така, трябва да се уверите, че и двете устройства са в една и съща Wi-Fi мрежа и споделят една и съща конфигурация (порт, адрес за множествено предаване, криптиране). Wi-Fi мрежата може да не позволява комуникация между участниците поради изолация на точката за достъп (AP). В този случай тази опция трябва да бъде деактивирана на рутера."
}
},
"receiveHistoryPage": {
"title": "История",
"openFolder": "Отвори папка",
"deleteHistory": "Изтриване на историята",
"empty": "Историята е празна.",
"entryActions": {
"open": "Отвори файл",
"showInFolder": "Покажи в папка",
"info": "Информация",
"deleteFromHistory": "Изтриване от историята"
}
},
"apkPickerPage": {
"title": "Приложения (APK)",
"excludeSystemApps": "Изключване на системни приложения",
"excludeAppsWithoutLaunchIntent": "Изключване на приложения, които не могат да се стартират",
"apps": "{n} Приложения"
},
"selectedFilesPage": {
"deleteAll": "Изтриване на всички"
},
"receivePage": {
"subTitle": {
"one": "иска да ви изпрати файл",
"other": "иска да ви изпрати {n} файлове"
},
"subTitleMessage": "Ви изпрати съобщение:",
"subTitleLink": "Ви изпрати връзка:",
"canceled": "Подателят е отменил заявката."
},
"receiveOptionsPage": {
"title": "Опции",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(папка на LocalSend)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Изключва се автоматично, защото има папки."
},
"sendPage": {
"waiting": "В очакване на отговор…",
"rejected": "Получателят е отхвърлил заявката.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "Получателят е зает с друга заявка."
},
"progressPage": {
"titleSending": "Изпращане на файлове",
"titleReceiving": "Получаване на файлове",
"savedToGallery": "Запазено в Снимки",
"total": {
"title": {
"sending": "Общ напредък ({time})",
"finishedError": "Завършено с грешка",
"canceledSender": "Отменено от подателя",
"canceledReceiver": "Отменено от получателя"
},
"count": "Файлове: {curr} / {n}",
"size": "Размер: {curr} / {n}",
"speed": "Скорост: {speed}/s"
},
"remainingTime": {
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h}ч {m}мин",
"days": "{d}д {h}ч {m}мин",
"@hours": "Използвайте „h“ като съкращение за часове и „m“ за минути",
"@days": "Използвайте „d“ за дни, „h“ за часове и „m“ за минути"
}
},
"webSharePage": {
"title": "Споделете чрез връзка",
"loading": "Стартиране на сървъра…",
"stopping": "Спиране на сървъра…",
"error": "Възникна грешка при стартиране на сървъра.",
"openLink": {
"one": "Отворете тази връзка във вашия браузър:",
"other": "Отворете една от тези връзки във вашия браузър:"
},
"requests": "Заявки",
"noRequests": "Все още няма заявки.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Автоматично приемане на заявки",
"requirePin": "Изискване на ПИН код",
"pinHint": "ПИН кодът е „{pin}“",
"encryptionHint": "LocalSend използва самоподписан сертификат. Трябва да го приемете във вашия браузър.",
"pendingRequests": "Чакащи заявки: {n}"
},
"aboutPage": {
"title": "Относно LocalSend",
"description": [
"LocalSend е безплатно приложение с отворен код, което ви позволява сигурно да споделяте файлове и съобщения с устройства наблизо през вашата локална мрежа, без да се нуждаете от интернет връзка.",
"Това приложение е достъпно за Android, iOS, macOS, Windows и Linux. Можете да намерите всички опции за изтегляне на официалната домашна страница."
],
"author": "Автор",
"contributors": "Сътрудници",
"packagers": "Опаковчици",
"translators": "Преводачи"
},
"donationPage": {
"title": "Дарение",
"info": "LocalSend е безплатен, с отворен код и без никакви реклами. Ако харесвате приложението, можете да подкрепите разработката с дарение.",
"donate": "Дарение {amount}",
"thanks": "Благодаря много!",
"restore": "Възстановяване на покупка"
},
"changelogPage": {
"title": "Дневник на промените"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Различните локали може да имат различни думи, може да не съвпадат 1:1"
},
"dialogs": {
"addFile": {
"title": "Добави към избора",
"content": "Какво искате да добавите?"
},
"openFile": {
"title": "Отвори файл",
"content": "Искате ли да отворите получения файл?"
},
"addressInput": {
"title": "Въведете адрес",
"hashtag": "Хаштаг",
"ip": "IP адрес",
"recentlyUsed": "Наскоро използван: "
},
"cancelSession": {
"title": "Отмени прехвърлянето на файлове",
"content": "Наистина ли искате да отмените прехвърлянето на файлове?"
},
"cannotOpenFile": {
"title": "Не може да се отвори файл",
"content": "Не може да се отвори \"{file}\". Този файл бил ли е преместен, преименуван или изтрит?"
},
"encryptionDisabledNotice": {
"title": "Шифроването е деактивирано",
"content": "Комуникацията вече се осъществява чрез некриптиран HTTP протокол. За да използвате HTTPS протокол, активирайте криптирането отново."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Любими",
"noFavorites": "Все още няма любими устройства.",
"addFavorite": "Добави"
},
"favoriteDeleteDialog": {
"title": "Изтриване от любими",
"content": "Наистина ли искате да изтриете от любими \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Добави към любими",
"titleEdit": "Настройки",
"name": "Име на устройство",
"auto": "(автоматично)",
"ip": "IP адрес",
"port": "Порт"
},
"fileInfo": {
"title": "Информация за файла",
"fileName": "Име на файл:",
"path": "Път:",
"size": "Размер:",
"sender": "Подател:",
"time": "Време:"
},
"fileNameInput": {
"title": "Въведете име на файл",
"original": "Оригинално: {original}"
},
"historyClearDialog": {
"title": "Изчистване на история",
"content": "Наистина ли искате да изтриете цялата история?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend не може да намери други устройства без разрешение за сканиране на локалната мрежа. Моля, предоставете това разрешение в настройките.",
"gotoSettings": "Настройки"
},
"messageInput": {
"title": "Вид съобщение",
"multiline": "Многоредов"
},
"noFiles": {
"title": "Няма избрани файлове",
"content": "Моля, изберете поне един файл."
},
"noPermission": {
"title": "Няма разрешение",
"content": "Не сте предоставили необходимите разрешения. Моля, предоставете ги в настройките."
},
"notAvailableOnPlatform": {
"title": "Не е налична",
"content": "Тази функция е достъпна само на:"
},
"qr": {
"title": "QR код"
},
"quickActions": {
"title": "Бързи действия",
"counter": "Брояч",
"prefix": "Префикс",
"padZero": "Подложка с нули",
"sortBeforeCount": "Сортирай по азбучен ред предварително (A-Z)",
"random": "Случаен"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "Заявките за файлове вече се приемат автоматично. Имайте предвид, че всеки в локалната мрежа може да ви изпраща файлове."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Заявките за файлове вече се приемат автоматично от устройства в списъка ви с любими.",
"Внимание! В момента това не е напълно сигурно, тъй като хакер, който има пръстов отпечатък на всяко устройство от списъка ви с любими, може да ви изпраща файлове без ограничения.",
"Въпреки това, тази опция все още е по-безопасна от разрешаването на всички потребители в локалната мрежа да ви изпращат файлове без ограничения."
]
},
"pin": {
"title": "Въведете ПИН код"
},
"sendModeHelp": {
"title": "Режими на изпращане",
"single": "Изпраща файлове до един получател. Изборът ще бъде изчистен след приключване на прехвърлянето на файлове.",
"multiple": "Изпраща файлове до множество получатели. Изборът няма да бъде изчистен след приключване на прехвърлянето на файлове.",
"link": "Получателите, които нямат инсталиран LocalSend, могат да изтеглят избраните файлове, като отворят връзката в своя браузър."
},
"zoom": {
"title": "URL адрес"
}
},
"sanitization": {
"empty": "Името на файла не може да бъде празно",
"invalid": "Името на файла съдържа невалидни знаци"
},
"tray": {
"@info": "Указанията на Apple са много строги по отношение на формулировката \"близо\".",
"open": "@:general.open",
"close": "Излезте от LocalSend",
"closeWindows": "Изход"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Въведете ПИН код",
"invalidPin": "Невалиден ПИН код",
"tooManyAttempts": "Твърде много опити",
"rejected": "Отхвърлено",
"files": "Файлове",
"fileName": "Име на файл",
"size": "Размер"
},
"assetPicker": {
"@info": "Преводи за инструмента за избор на Медия за Android и iPhone",
"confirm": "Потвърди",
"cancel": "Отказ",
"edit": "Редактирай",
"gifIndicator": "GIF",
"loadFailed": "Неуспешно зареждане",
"original": "Произход",
"preview": "Преглед",
"select": "Избери",
"emptyList": "Празен списък",
"unSupportedAssetType": "Неподдържан тип файл.",
"unableToAccessAll": "Няма достъп до всички файлове на устройството",
"viewingLimitedAssetsTip": "Преглеждайте само файлове и албуми, достъпни за приложението.",
"changeAccessibleLimitedAssets": "Щракнете, за да актуализирате достъпните файлове",
"accessAllTip": "Приложението има достъп само до някои файлове на устройството. Отидете в системните настройки и разрешете на приложението достъп до всички медии на устройството.",
"goToSystemSettings": "Отидете в системните настройки",
"accessLimitedAssets": "Продължете с ограничен достъп",
"accessiblePathName": "Достъпни файлове",
"sTypeAudioLabel": "Аудио",
"sTypeImageLabel": "Изображение",
"sTypeVideoLabel": "Видео",
"sTypeOtherLabel": "Друга медия",
"sActionPlayHint": "изпълни",
"sActionPreviewHint": "преглед",
"sActionSelectHint": "избери",
"sActionSwitchPathLabel": "промяна на пътя",
"sActionUseCameraHint": "използвай камера",
"sNameDurationLabel": "продължителност",
"sUnitAssetCountLabel": "брой"
},
"networkInterfacesPage": {
"preview": "Преглед",
"whitelist": "Бял списък",
"blacklist": "Черен списък",
"title": "Мрежови интерфейси",
"info": "По подразбиране, LocalSend използва всички налични мрежови интерфейси. Тук можете да изключите нежелани мрежи. Трябва да рестартирате сървъра, за да приложите промените."
}
}
+535
View File
@@ -0,0 +1,535 @@
{
"locale": "বাংলা",
"appName": "লোকালসেন্ড",
"general": {
"accept": "অ্যাকসেপ্ট করুন",
"accepted": "অ্যাকসেপ্টেড",
"add": "অ্যাড করুন",
"advanced": "আডভান্স",
"cancel": "ক্যানসেল করুন",
"close": "বন্ধ করুন",
"confirm": "কনফার্ম করুন",
"continueStr": "চালিয়ে যান",
"copy": "কপি করুন",
"copiedToClipboard": "ক্লিপবোর্ডে কপি করা হয়েছে",
"decline": "প্রত্যাখ্যান করুন",
"done": "সম্পন্ন",
"delete": "ডিলিট",
"edit": "এডিট",
"error": "ভুল হয়েছে",
"example": "উদাহরণ",
"files": "ফাইল গুলো",
"finished": "শেষ হয়েছে",
"hide": "হাইড করুন",
"off": "বন্ধ",
"offline": "অফলাইন",
"on": "চালু",
"online": "অনলাইন",
"open": "খুলুন",
"queue": "কিউ",
"quickSave": "কুইক সেভ করুন",
"quickSaveFromFavorites": "\"ফেভারিট\"দের জন্য কুইক সেভ করুন",
"renamed": "নাম পরিবর্তন করা হয়েছে",
"reset": "রিসেট করুন",
"restart": "পুনরায় চালু করুন",
"settings": "সেটিংস",
"skipped": "স্কিপ করা হয়েছে",
"start": "শুরু করুন",
"stop": "বন্ধ করুন",
"save": "সেভ করুন",
"unchanged": "অপরিবর্তিত",
"unknown": "আননোন",
"noItemInClipboard": "ক্লিপবোর্ডে কোনো আইটেম নেই।"
},
"receiveTab": {
"title": "রিসিভ",
"infoBox": {
"ip": "আইপি:",
"port": "পোর্ট:",
"alias": "ডিভাইসের নাম:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "ফেভারিট",
"on": "@:general.on"
}
},
"sendTab": {
"title": "সেন্ড",
"selection": {
"title": "সিলেকশন",
"files": "ফাইলসমূহ: {files}",
"size": "সাইজ: {size}"
},
"picker": {
"file": "ফাইল",
"folder": "ফোল্ডার",
"media": "মিডিয়া",
"text": "টেক্সট",
"app": "আবেদন",
"clipboard": "ক্লিপবোর্ড পেস্ট"
},
"shareIntentInfo": "আরো সহজে ফাইল সিলেক্ট করার জন্য আপনার মোবাইলের \"Share\" ফিচারটি ব্যবহার করতে পারেন।",
"nearbyDevices": "কাছাকাছি থাকা ডিভাইস",
"thisDevice": "এই ডিভাইস",
"scan": "ডিভাইস স্ক্যান করুন",
"manualSending": "ম্যানুয়াল সেন্ডিং",
"sendMode": "সেন্ড মোড",
"sendModes": {
"single": "একজন রিসিভার",
"multiple": "একাধিক রিসিভার",
"link": "লিঙ্কের মাধ্যমে শেয়ার করুন"
},
"sendModeHelp": "ব্যাখ্যা",
"help": "অনুগ্রহ করে নিশ্চিত করুন যে পছন্দসই লক্ষ্যটিও একই ওয়াইফাই নেটওয়ার্কে রয়েছে।",
"placeItems": "শেয়ার করার জন্য আইটেম রাখুন।"
},
"settingsTab": {
"title": "সেটিংস",
"general": {
"title": "জেনারেল",
"brightness": "থিম",
"brightnessOptions": {
"system": "সিস্টেম",
"dark": "ডার্ক",
"light": "লাইট"
},
"color": "অ্যাপ কালার",
"colorOptions": {
"system": "সিস্টেম",
"oled": "ওলেড"
},
"language": "ভাষা",
"languageOptions": {
"system": "সিস্টেম"
},
"saveWindowPlacement": "বের হোন: উইন্ডো প্লেসমেন্ট সেভ করুন",
"saveWindowPlacementWindows": "বের হবার পরে উইন্ডোর অবস্থান সেভ করুন",
"minimizeToTray": "বের হোন: ট্রেতে মিনিমাইজ করুন",
"launchAtStartup": "লগইন করার পরে অটোস্টার্ট করুন",
"launchMinimized": "অটোস্টার্ট: হিডেন রেখে শুরু করুন",
"showInContextMenu": "কনটেক্সট মেনুতে LocalSend দেখান",
"animations": "অ্যানিমেশন"
},
"receive": {
"title": "রিসিভ",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "অটো ফিনিশ",
"destination": "ডেস্টিনেশন",
"downloads": "(Downloads)",
"saveToGallery": "মিডিয়া গ্যালারিতে সেভ করুন",
"saveToHistory": "হিস্ট্রি সেভ করুন"
},
"send": {
"title": "সেন্ড",
"shareViaLinkAutoAccept": "\"Share via link\" মোডের রিকুয়েস্ট অটো এক্সেপ্ট করুন"
},
"network": {
"title": "নেটওয়ার্ক",
"needRestart": "সেটিংস অ্যাপ্লাই করতে সার্ভার রিস্টার্ট করুন!",
"server": "সার্ভার",
"alias": "ডিভাইসের নাম",
"deviceType": "ডিভাইসের ধরন",
"deviceModel": "ডিভাইস মডেল",
"port": "পোর্ট",
"network": "নেটওয়ার্ক",
"networkOptions": {
"all": "সব",
"filtered": "ফিল্টারড"
},
"discoveryTimeout": "ডিসকভারি টাইমআউট",
"useSystemName": "সিস্টেমের নাম ব্যবহার করুন",
"generateRandomAlias": "এলিয়াস তৈরি করুন",
"portWarning": "আপনি একটি কাস্টম পোর্ট ব্যবহার করছেন, তাই অন্য ডিভাইস থেকে এই ডিভাইসকে খুঁজে নাও পাওয়া যেতে পারে। (default: {defaultPort})",
"encryption": "এনক্রিপশন",
"multicastGroup": "মাল্টিকাস্ট",
"multicastGroupWarning": "আপনি একটি কাস্টম মাল্টিকাস্ট অ্যাড্রেস ব্যবহার করছেন যেই কারণে আপনি অন্য ডিভাইস দ্বারা স্ক্যান নাও হতে পারেন। (default: {defaultMulticast})"
},
"other": {
"title": "অন্যান্য",
"support": "লোকাল সেন্ডকে সাপোর্ট করুন",
"donate": "ডোনেট",
"privacyPolicy": "গোপনীয়তা নীতি",
"termsOfUse": "ব্যবহারের শর্তাবলী"
},
"advancedSettings": "আডভান্স সেটিংস"
},
"troubleshootPage": {
"title": "ট্রাবলশুট",
"subTitle": "অ্যাপটি আশানুরূপ কাজ না করলে, এখানে আপনি কিছু সাধারণ সমাধান পেতে পারেন।",
"solution": "সমাধান:",
"fixButton": "অটোমেটিকালি ঠিক করুন",
"firewall": {
"symptom": "এই অ্যাপটি অন্য ডিভাইসে ফাইল পাঠাতে পারে কিন্তু অন্য ডিভাইস এই ডিভাইসে ফাইল পাঠাতে পারে না।",
"solution": "এটি সম্ভবত একটি ফায়ারওয়াল সমস্যা। আপনি পোর্টে ইনকামিং কানেকশন (UDP এবং TCP) পারমিশন দিয়ে এটি ঠিক করতে পারেন {port}.",
"openFirewall": "ফায়ারওয়াল খুলুন"
},
"noDiscovery": {
"symptom": "এই ডিভাইসটি অন্য ডিভাইস খুঁজতে পারতেছে না।",
"solution": "সব ডিভাইস একই ওয়াই-ফাই নেটওয়ার্কে আছে তা নিশ্চিত করুন এবং একই কনফিগারেশন ব্যাবহার করছে (পোর্ট, মাল্টিকাস্ট অ্যাড্রেস, এনক্রিপশন)। টার্গেট ডিভাইসের আইপি ম্যানুয়ালি টাইপ করতে পারেন। যদি এটা কাজ করে, তাহলে ভবিষ্যতে এই ডিভাইসটি অটোমেটিকালি ডিসকভার করা হবে, তা নিশ্চিত করতে এই ডিভাইসটি ফেভারিটে অ্যাড করুন।"
},
"noConnection": {
"symptom": "উভয় ডিভাইস একে অপরকে আবিষ্কার করতে পারে না বা তারা ফাইল ভাগ করতে পারে না।",
"solution": "সমস্যা কি দুই দিকেই আছে? তারপরে আপনাকে নিশ্চিত করতে হবে যে উভয় ডিভাইস একই ওয়াইফাই নেটওয়ার্কে রয়েছে এবং একই কনফিগারেশন (পোর্ট, মাল্টিকাস্ট ঠিকানা, এনক্রিপশন) ভাগ করে নিয়েছে। ওয়াইফাই অংশগ্রহণকারীদের মধ্যে যোগাযোগের অনুমতি নাও দিতে পারে। এই ক্ষেত্রে, এই বিকল্পটি রাউটারে সক্রিয় করা আবশ্যক।"
}
},
"networkInterfacesPage": {
"title": "নেটওয়ার্ক ইন্টারফেস",
"info": "LocalSend সব অ্যাভেলেবেল নেটওয়ার্ক ইন্টারফেস ব্যবহার করে। আপনি এখানে অপ্রয়োজনীয় নেটওয়ার্ক বাদ দিতে পারেন। কোন পরিবর্তন আনলে সার্ভারটি পুনরায় চালু করতে হবে।",
"preview": "প্রিভিউ",
"whitelist": "হোয়াইটলিস্ট",
"blacklist": "ব্ল্যাকলিস্ট"
},
"receiveHistoryPage": {
"title": "হিস্ট্রি",
"openFolder": "ফোল্ডার খুলুন",
"deleteHistory": "হিস্ট্রি ক্লিয়ার করুন",
"empty": "হিস্ট্রি খালি।",
"entryActions": {
"open": "ফাইল খুলুন",
"showInFolder": "ফোল্ডারে দেখুন",
"info": "ইনফো",
"deleteFromHistory": "হিস্ট্রি থেকে মুছে ফেলুন"
}
},
"apkPickerPage": {
"title": "অ্যাপস (এপিকে)",
"excludeSystemApps": "সিস্টেম অ্যাপ বাদ দিন",
"excludeAppsWithoutLaunchIntent": "অ-লঞ্চযোগ্য অ্যাপগুলি বাদ দিন",
"apps": "{n} অ্যাপ্স"
},
"selectedFilesPage": {
"deleteAll": "সব ডিলিট করুন"
},
"receivePage": {
"subTitle": {
"one": "আপনাকে একটি ফাইল পাঠাতে চায়",
"other": "আপনাকে {n}টি ফাইল পাঠাতে চায়"
},
"subTitleMessage": "আপনাকে একটি মেসেজ পাঠিয়েছে:",
"subTitleLink": "আপনাকে একটি লিঙ্ক পাঠিয়েছে:",
"canceled": "সেন্ডার রিকুয়েস্টটি ক্যানসেল করেছে।"
},
"receiveOptionsPage": {
"title": "অপশনসমূহ",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(@:appName folder)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "অটোমেটিকালি বন্ধ কারণ ডিরেক্টরি আছে."
},
"sendPage": {
"waiting": "রেস্পন্সের অপেক্ষায়…",
"rejected": "রিসিভার রিকুয়েস্টটি ক্যানসেল করেছে।",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "রিসিভার রিকুয়েস্টটি আরেকটি রিকুয়েস্টে ব্যস্ত।"
},
"progressPage": {
"titleSending": "ফাইল সেন্ড হচ্ছে",
"titleReceiving": "ফাইল রিসিভ করা হচ্ছে",
"savedToGallery": "Photos এ সেভ করা হয়েছে",
"total": {
"title": {
"sending": "মোট অগ্রগতি ({time})",
"finishedError": "ত্রুটি সহ সমাপ্ত হয়েছে",
"canceledSender": "সেন্ডারের দ্বারা ক্যানসেল করা হয়েছে",
"canceledReceiver": "রিসিভার দ্বারা ক্যানসেল করা হয়েছে"
},
"count": "ফাইলগুলি: {curr} / {n}",
"size": "সাইজ: {curr} / {n}",
"speed": "স্পীড: {speed}/s"
},
"remainingTime": {
"hours": "{h}ঘণ্টা {m}মিনিট",
"days": "{d}দিন {h}ঘণ্টা {m}মিনিট",
"@hours": "ঘন্টার জন্য 'h' এবং মিনিটের জন্য 'm' ব্যবহার করুন",
"@days": "দিনের জন্য 'd', ঘন্টার জন্য 'h' এবং মিনিটের জন্য 'm' ব্যবহার করুন",
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}"
}
},
"webSharePage": {
"title": "লিঙ্কের মাধ্যমে শেয়ার করুন",
"loading": "সার্ভার চালু করা হচ্ছে…",
"stopping": "সার্ভার বন্ধ করা হচ্ছে…",
"error": "সার্ভার চালু করার সময় একটি সমস্যা হয়েছে৷",
"openLink": {
"one": "ব্রাউজারে এই লিঙ্কটি খুলুন:",
"other": "ব্রাউজারে এই লিঙ্কগুলির একটি খুলুন:"
},
"requests": "রিকুয়েস্ট",
"noRequests": "এখনো কোনো রিকুয়েস্ট নেই.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "রিকুয়েস্ট অটো এক্সেপ্ট করুন",
"requirePin": "পিন প্রয়োজন",
"pinHint": "পিনটি \"{pin}\"",
"encryptionHint": "LocalSend একটি সেল্ফ-সাইন্ড সার্টিফিকেট ব্যবহার করে। আপনাকে ব্রাউজারে এটি একসেপ্ট করতে হবে।",
"pendingRequests": "রিকুয়েস্ট অপেক্ষারত: {n}"
},
"aboutPage": {
"title": "LocalSend সম্পর্কে",
"description": [
"LocalSend হল একটি ফ্রী, ওপেন সোর্স অ্যাপ যা ইন্টারনেট ছাড়াই আপনার লোকাল নেটওয়ার্কের ডিভাইসগুলির সাথে ফাইল এবং মেসেজ নিরাপদে শেয়ার করতে দেয়৷",
"এই অ্যাপটি Android, iOS, macOS, Windows এবং Linux-এ অ্যাভেলেবেল। আপনি অফিসিয়াল হোমপেজে সব ডাউনলোড অপশন খুঁজে পাবেন।"
],
"author": "লেখক",
"contributors": "অবদানকারী",
"packagers": "প্যাকেজেস",
"translators": "অনুবাদক"
},
"donationPage": {
"title": "ডোনেট",
"info": "LocalSend ফ্রী, ওপেন সোর্স এবং কোনো অ্যাড ছাড়াই। আপনি যদি অ্যাপটি পছন্দ করেন তবে আপনি একটি ডোনেশন দিয়ে ডেভেলপমেন্টকে সাপোর্ট করতে পারেন।",
"donate": "ডোনেট {amount}",
"thanks": "আপনাকে অনেক ধন্যবাদ!",
"restore": "পারচেজ রিস্টোর"
},
"changelogPage": {
"title": "চেঞ্জলগ"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "ভিন্ন জায়গার ভিন্ন শব্দ থাকতে পারে, একেবারে 1:1 মিলতে নাও পারে",
"adjectives": [
"আরাধ্য",
"সুন্দর",
"বড়",
"উজ্জ্বল",
"পরিষ্কার",
"চতুর",
"ঠান্ডা",
"চতুর",
"ধূর্ত",
"নির্ধারিত",
"অনলস",
"দক্ষ",
"অসাধারণ",
"দ্রুত",
"ভালো",
"তাজা",
"ভাল",
"চমৎকার",
"দারুণ",
"সুদর্শন",
"গরম",
"দয়াময়",
"সুন্দর",
"রহস্যময়",
"পরিচ্ছন্ন",
"সুন্দর",
"রোগী",
"সুন্দর",
"ক্ষমতাশালী",
"ধনী",
"গোপন",
"স্মার্ট",
"কঠিন",
"বিশেষ",
"কৌশলগত",
"শক্তিশালী",
"পরিপাটি",
"জ্ঞানী"
],
"fruits": [
"আপেল",
"অ্যাভোকাডো",
"কলা",
"ব্ল্যাকবেরি",
"ব্লুবেরি",
"ব্রকলি",
"গাজর",
"চেরি",
"নারকেল",
"আঙ্গুর",
"লেবু",
"লেটুস",
"আম",
"তরমুজ",
"মাশরুম",
"পেঁয়াজ",
"কমলা",
"পেঁপে",
"পীচ",
"নাশপাতি",
"আনারস",
"আলু",
"কুমড়া",
"রাস্পবেরি",
"স্ট্রবেরি",
"টমেটো"
],
"combination": "{adjective} {fruit}",
"@combination": "In some languages, the adjective must be last."
},
"dialogs": {
"addFile": {
"title": "সিলেকশনে অ্যাড করুন",
"content": "আপনি কি অ্যাড করতে চান?"
},
"openFile": {
"title": "ফাইল খুলুন",
"content": "আপনি কি ফাইলটি খুলতে চান?"
},
"addressInput": {
"title": "এড্রেস লিখুন",
"hashtag": "হ্যাশট্যাগ",
"ip": "আইপি অ্যাড্রেস",
"recentlyUsed": "সম্প্রতি ব্যবহৃত: "
},
"cancelSession": {
"title": "ফাইল ট্রান্সফার ক্যানসেল করুন",
"content": "আপনি কি ফাইল ট্রান্সফার ক্যানসেল করতে চান?"
},
"cannotOpenFile": {
"title": "ফাইলটি খোলা যাচ্ছে না",
"content": "\"{file}\" খোলা যায়নি। এই ফাইলটি কি সরানো হয়েছে, নাম পরিবর্তন বা মুছে ফেলা হয়েছে?"
},
"encryptionDisabledNotice": {
"title": "এনক্রিপশন বন্ধ করা হয়েছে",
"content": "এখন কমিউনিকেশন আনএনক্রিপ্টেড HTTP প্রটোকলের মাধ্যমে করা হচ্ছে। HTTPS ব্যবহার করার জন্য আবার এনক্রিপশন চালু করুন।"
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "ফেভারিট",
"noFavorites": "এখনও কোন ফেভারিট ডিভাইস নেই.",
"addFavorite": "যোগ করুন"
},
"favoriteDeleteDialog": {
"title": "যোগ করুনযোগ করুন",
"content": "আপনি কি সত্যিই ফেভারিট থেকে মুছে ফেলতে চান \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "ফেভারিটে অ্যাড করুন",
"titleEdit": "এডিট করুন",
"name": "এলিয়াস",
"auto": "(auto)",
"ip": "আইপি অ্যাড্রেস",
"port": "পোর্ট"
},
"fileInfo": {
"title": "ফাইল ইনফো",
"fileName": "ফাইলের নাম:",
"path": "পাথ:",
"size": "সাইজ:",
"sender": "সেন্ডার:",
"time": "সময়:"
},
"fileNameInput": {
"title": "ফাইলের নাম লিখুন",
"original": "অরিজিনাল: {original}"
},
"historyClearDialog": {
"title": "হিস্ট্রি ক্লিয়ার করুন",
"content": "আপনি কি সব হিস্ট্রি ক্লিয়ার চান?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "লোকাল নেটওয়ার্ক স্ক্যান করার পারমিশন ছাড়া LocalSend অন্য ডিভাইস খুঁজে পায় না। অনুগ্রহ করে সেটিংসে এই পারমিশনটি দিন।",
"gotoSettings": "সেটিংস"
},
"messageInput": {
"title": "মেসেজ লিখুন",
"multiline": "মাল্টিলাইন"
},
"noFiles": {
"title": "কোনো ফাইল সিলেক্ট করা হয়নি",
"content": "অন্তত একটি ফাইল সিলেক্ট করুন।"
},
"noPermission": {
"title": "পারমিশন নেই",
"content": "আপনি প্রয়োজনীয় পারমিশন প্রদান করেননি। অনুগ্রহ করে সেটিংসে তাদের পারমিশন দিন।"
},
"notAvailableOnPlatform": {
"title": "পাওয়া যায় নি",
"content": "এই ফিচার শুধুমাত্র উপলব্ধ:"
},
"qr": {
"title": "QR কোড"
},
"quickActions": {
"title": "কুইক অ্যাকশনস",
"counter": "কাউন্টার",
"prefix": "উপসর্গ",
"padZero": "শূন্য সহ প্যাড",
"sortBeforeCount": "আগে থেকে বর্ণানুক্রমিকভাবে সাজান",
"random": "র‍্যান্ডম"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "ফাইল অনুরোধ অটোমেটিকালি এক্সেপ্ট করা হয়। সচেতন থাকুন যেনা লোকাল নেটওয়ার্কের সবাই আপনাকে ফাইল পাঠাতে পারে।"
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"আপনার ফেভারিট তালিকায় থাকা ডিভাইস থেকে ফাইল অটোমেটিক রিসিভ করা হয়।",
"সতর্কতা! বর্তমানে, এটা সম্পূর্ণভাবে নিরাপদ নয়, কোন হ্যাকারের কাছে আপনার ফেভারিট তালিকার কোনও ডিভাইসের ফিঙ্গারপ্রিন্ট থাকে তাহলে সে সীমাবদ্ধতা ছাড়াই আপনাকে ফাইল পাঠাতে পারে।",
"তবে, এই অপশনটি এখনও লোকাল নেটওয়ার্কের ব্যবহারকারীদের কোনও সীমাবদ্ধতা ছাড়াই আপনাকে ফাইল পাঠাতে দেয়।"
]
},
"pin": {
"title": "পিন দিন"
},
"sendModeHelp": {
"title": "সেন্ড মোড",
"single": "একজন প্রাপকের কাছে ফাইল পাঠায়। ফাইল স্থানান্তর সমাপ্ত হওয়ার পরে নির্বাচন পরিষ্কার করা হবে.",
"multiple": "একাধিক প্রাপককে ফাইল পাঠায়। নির্বাচন সাফ করা হবে না।",
"link": "যাদের LocalSend ইনস্টল করা নেই তারা ব্রাউজারে লিঙ্কটি খুলে ফাইলগুলি ডাউনলোড করতে পারবেন।"
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "ফাইলের নাম খালি রাখা যাবে না",
"invalid": "ফাইলের নামে ইনভেলিড অক্ষর রয়েছে"
},
"tray": {
"@info": "অ্যাপলের নির্দেশিকাগুলি 'ক্লোজ' শব্দের বিষয়ে খুবই কঠোর।",
"open": "@:general.open",
"close": "LocalSend থেকে বের হোন",
"closeWindows": "সব উইন্ডো বন্ধ করুন"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "পিন দিন",
"invalidPin": "পিনটি সঠিক নয়",
"tooManyAttempts": "অনেক বার ভুল পিন দেওয়া হয়েছে",
"rejected": "রিজেক্টেড",
"files": "ফাইলস",
"fileName": "ফাইলের নাম",
"size": "সাইজ"
},
"assetPicker": {
"@info": "Translations for the Media selection tool for Android and Iphone",
"confirm": "কনফার্ম করুন",
"cancel": "ক্যানসেল করুন",
"edit": "এডিট করুন",
"gifIndicator": "জিফ",
"loadFailed": "লোড করা যায়নি",
"original": "অরিজিনাল",
"preview": "প্রিভিউ",
"select": "সিলেক্ট করুন",
"emptyList": "খালি লিস্ট",
"unSupportedAssetType": "আনসাপোর্টেড ফাইল টাইপ.",
"unableToAccessAll": "ডিভাইসে সমস্ত ফাইল অ্যাক্সেস পাওয়া যায়নি",
"viewingLimitedAssetsTip": "শুধুমাত্র অ্যাপে অ্যাক্সেসযোগ্য ফাইল এবং অ্যালবাম দেখুন.",
"changeAccessibleLimitedAssets": "অ্যাক্সেসযোগ্য ফাইল আপডেট করতে ট্যাপ করুন",
"accessAllTip": "অ্যাপ শুধুমাত্র ডিভাইসে কিছু ফাইল অ্যাক্সেস করতে পারে। সিস্টেম সেটিংসে যান এবং অ্যাপটিকে ডিভাইসের সমস্ত মিডিয়া অ্যাক্সেস করার পারমিশন দিন।",
"goToSystemSettings": "সিস্টেম সেটিংসে যান",
"accessLimitedAssets": "সীমিত অ্যাক্সেস দিয়ে চালিয়ে যান",
"accessiblePathName": "অ্যাক্সেসযোগ্য ফাইল",
"sTypeAudioLabel": "অডিও",
"sTypeImageLabel": "ছবি",
"sTypeVideoLabel": "ভিডিও",
"sTypeOtherLabel": "অন্যান্য মিডিয়া",
"sActionPlayHint": "প্লে",
"sActionPreviewHint": "প্রিভিউ",
"sActionSelectHint": "নির্বাচন করুন",
"sActionSwitchPathLabel": "পাথ পরিবর্তন",
"sActionUseCameraHint": "ক্যামেরা ব্যবহার করুন",
"sNameDurationLabel": "ডিউরেশন",
"sUnitAssetCountLabel": "কাউন্ট"
}
}
+527
View File
@@ -0,0 +1,527 @@
{
"locale": "Català",
"appName": "LocalSend",
"general": {
"accept": "Accepta",
"accepted": "Acceptat",
"add": "Afegeix",
"advanced": "Avançades",
"cancel": "Cancel·la",
"close": "Tanca",
"confirm": "Confirma",
"continueStr": "Continua",
"copy": "Copia",
"copiedToClipboard": "S'ha copiat al porta-retalls",
"decline": "Rebutja",
"done": "Fet",
"delete": "Elimina",
"edit": "Edita",
"error": "Error",
"example": "Exemple",
"files": "Fitxers",
"finished": "Finalitzat",
"hide": "Amaga",
"off": "Desactivat",
"offline": "Desconnectat",
"on": "Activat",
"online": "En línia",
"open": "Obre",
"queue": "Cua",
"quickSave": "Desat ràpid",
"quickSaveFromFavorites": "Desat ràpid per als «Preferits»",
"renamed": "Canvia el nom",
"reset": "Desfés els canvis",
"restart": "Reinicia",
"settings": "Configuració",
"skipped": "Omès",
"start": "Inicia",
"stop": "Atura",
"save": "Desa",
"unchanged": "Sense canvis",
"unknown": "Desconegut",
"noItemInClipboard": "No hi ha elements al porta-retalls."
},
"receiveTab": {
"title": "Recepció",
"infoBox": {
"ip": "IP:",
"port": "Port:",
"alias": "Nom del dispositiu:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Preferits",
"on": "@:general.on"
}
},
"sendTab": {
"title": "Envia",
"selection": {
"title": "Selecció",
"files": "Fitxers: {files}",
"size": "Mida: {size}"
},
"picker": {
"file": "Fitxer",
"folder": "Carpeta",
"media": "Multimèdia",
"text": "Text",
"app": "Aplicació",
"clipboard": "Enganxa"
},
"shareIntentInfo": "També podeu utilitzar l'opció «Comparteix» del vostre dispositiu mòbil per a seleccionar fitxers d'una manera més fàcil.",
"nearbyDevices": "Dispositius propers",
"thisDevice": "Aquest dispositiu",
"scan": "Cerca dispositius",
"manualSending": "Enviament manual",
"sendMode": "Mode d'enviament",
"sendModes": {
"single": "Destinatari únic",
"multiple": "Múltiples destinataris",
"link": "Comparteix via enllaç"
},
"sendModeHelp": "Explicació",
"help": "Comproveu que el destinatari està en la mateixa xarxa Wi-Fi.",
"placeItems": "Col·loqueu els elements per compartir."
},
"settingsTab": {
"title": "Configuració",
"general": {
"title": "General",
"brightness": "Tema",
"brightnessOptions": {
"system": "Sistema",
"dark": "Fosc",
"light": "Clar"
},
"color": "Color",
"colorOptions": {
"system": "Sistema",
"oled": "OLED"
},
"language": "Llengua",
"languageOptions": {
"system": "Sistema"
},
"saveWindowPlacement": "Desa la posició de la finestra en sortir",
"saveWindowPlacementWindows": "Desa la posició de la finestra després de sortir",
"minimizeToTray": "Minimitza a la safata del sistema/barra de menú en tancar",
"launchAtStartup": "Inici automàtic en iniciar la sessió",
"launchMinimized": "Inici automàtic: Inici minimitzat",
"showInContextMenu": "Mostra el LocalSend al menú contextual",
"animations": "Animacions"
},
"receive": {
"title": "Recepció",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Finalització automàtica",
"destination": "Desa en la carpeta",
"downloads": "(Baixades)",
"saveToGallery": "Desa els fitxers multimèdia a la galeria",
"saveToHistory": "Desa a l'historial"
},
"send": {
"title": "Enviament",
"shareViaLinkAutoAccept": "Accepta peticions de manera automàtica en el mode «Comparteix via enllaç»"
},
"network": {
"title": "Xarxa",
"needRestart": "Reinicieu el servidor per a aplicar la configuració.",
"server": "Servidor",
"alias": "Nom del dispositiu",
"deviceType": "Tipus de dispositiu",
"deviceModel": "Model del dispositiu",
"port": "Port",
"discoveryTimeout": "Temps d'espera de descobriment",
"useSystemName": "Utilitza el nom del sistema",
"generateRandomAlias": "Genera un àlies aleatori",
"portWarning": "Altres dispositius podrien no detectar-vos perquè utilitzeu un port personalitzat. (predefinit: {defaultPort})",
"encryption": "Xifratge",
"multicastGroup": "Adreça del Multicast",
"multicastGroupWarning": "Altres dispositius podrien no detectar-vos perquè utilitzeu una adreça multicast personalitzada. (predefinida: {defaultMulticast})",
"network": "Xarxa",
"networkOptions": {
"all": "Totes",
"filtered": "Filtrades"
}
},
"other": {
"title": "Altres",
"support": "Doneu suport al LocalSend",
"donate": "Donació",
"privacyPolicy": "Política de privadesa",
"termsOfUse": "Condicions d'ús"
},
"advancedSettings": "Configuració avançada"
},
"troubleshootPage": {
"title": "Solució de problemes",
"subTitle": "L'aplicació no funciona com s'espera? Aquí podeu trobar solucions als problemes més comuns.",
"solution": "Solució:",
"fixButton": "Corregeix de manera automàtica",
"firewall": {
"symptom": "Aquest dispositiu pot enviar fitxers a d'altres, però altres dispositius no poden enviar fitxers a aquest.",
"solution": "El més probable és que sigui un problema del tallafocs. Podeu solucionar-ho permetent les connexiions entrants (UDP i TCP) al port {port}.",
"openFirewall": "Obre el tallafocs"
},
"noDiscovery": {
"symptom": "Aquest dispositiu no pot descobrir altres dispositius.",
"solution": "Comproveu que tots els dispositius estan a la mateixa xarxa Wi-Fi i tenen la mateixa configuració (port, adreça multicast i xifratge). Podeu provar d'escriure l'adreça IP del dispositiu de destí de manera manual. Si això funciona, considereu afegir aquest dispositiu als preferits perquè pugui ser descobert automàticament en un futur."
},
"noConnection": {
"symptom": "Cap dels dos dispositius no poden trobar-se ni compartir fitxers.",
"solution": "Existeix el problema als dos costats? Si és així, cal que comproveu que els dispositius estan a la mateixa xarxa Wi-Fi i comparteixen la mateixa configuració (port, adreça multicast i xifratge). La Wi-Fi podria no permetre la comunicació entre els participants a causa de l'aïllament del punt d'accés (Access Point, AP). En aquest cas, cal que desactiveu aquesta opció a l'encaminador."
}
},
"receiveHistoryPage": {
"title": "Historial",
"openFolder": "Obre la carpeta",
"deleteHistory": "Elimina l'historial",
"empty": "L'historial està buit.",
"entryActions": {
"open": "Obre el fitxer",
"showInFolder": "Mostra a la carpeta",
"info": "Informació",
"deleteFromHistory": "Elimina de l'historial"
}
},
"apkPickerPage": {
"title": "Aplicacions (APK)",
"excludeSystemApps": "Exclou les aplicacions del sistema",
"excludeAppsWithoutLaunchIntent": "Exclou les aplicacions no executables",
"apps": "{n} Aplicacions"
},
"selectedFilesPage": {
"deleteAll": "Elimina-ho tot"
},
"receivePage": {
"subTitle": {
"one": "vol enviar-vos un fitxer",
"other": "vol enviar-vos {n} fitxers"
},
"subTitleMessage": "us ha enviat un missatge:",
"subTitleLink": "us ha enviat un enllaç:",
"canceled": "El remitent ha cancel·lat la petició."
},
"receiveOptionsPage": {
"title": "Opcions",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(Carpeta LocalSend)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "S'ha desactivat automàticament perquè hi ha carpetes."
},
"sendPage": {
"waiting": "S'està esperant una resposta…",
"rejected": "El destinatari ha rebutjat la petició.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "El destinatari està ocupat amb una altra petició."
},
"progressPage": {
"titleSending": "S'estan enviant els fitxers",
"titleReceiving": "S'estan rebent els fitxers",
"savedToGallery": "Desat a Fotos",
"total": {
"title": {
"sending": "Progrés total ({time})",
"finishedError": "Finalitzat amb error",
"canceledSender": "Cancel·lat pel remitent",
"canceledReceiver": "Cancel·lat pel destinatari"
},
"count": "Fitxers: {curr} / {n}",
"size": "Mida: {curr} / {n}",
"speed": "Velocitat: {speed}/s"
}
},
"webSharePage": {
"title": "Comparteix via enllaç",
"loading": "S'està iniciant el servidor…",
"stopping": "S'està aturant el servidor…",
"error": "Hi ha hagut un error en iniciar el servidor.",
"openLink": {
"one": "Obre l'enllaç al navegador:",
"other": "Obre un d'aquests enllaços al navegador:"
},
"requests": "Peticions",
"noRequests": "Encara no hi ha peticions.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Accepta les peticions automàticament",
"requirePin": "Demana un PIN",
"pinHint": "El PIN és «{pin}»",
"encryptionHint": "El LocalSend utilitza un certificat auto-signat. Cal que l'accepteu al navegador.",
"pendingRequests": "Peticions pendents: {n}"
},
"aboutPage": {
"title": "Quant al LocalSend",
"description": [
"El LocalSend és una aplicació gratuïta i de codi obert que us permet compartir fitxers i missatges de manera segura amb dispositius propers a la vostra xarxa local sense necessitat de connexió a Internet.",
"Aquesta aplicació està disponible per a Android, iOS, macOS, Windows i Linux. Podeu trobar totes les opcions de baixada a la pàgina d'inici oficial."
],
"author": "Autor",
"contributors": "Col·laboradors",
"packagers": "Empaquetadors",
"translators": "Traductors"
},
"donationPage": {
"title": "Donació",
"info": "El LocalSend és gratuït, de codi obert i sense anuncis. Si us agrada l'aplicació, podeu donar suport al desenvolupament amb una donació.",
"donate": "Donació: {amount}",
"thanks": "Moltes gràcies!",
"restore": "Restaura la compra"
},
"changelogPage": {
"title": "Registre de canvis"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Llengües diferents poden tenir paraules diferents, podrien no coincidir al 100%",
"adjectives": [
"Adorable",
"Bonic",
"Gran",
"Brillant",
"Neteja",
"Intel·ligent",
"Guai",
"Bonic",
"Astúcia",
"Determinat",
"Energètic",
"Eficient",
"Fantàstic",
"Ràpid",
"Bé",
"Fresca",
"Bo",
"Preciós",
"Genial",
"Guapo",
"Calent",
"Amable",
"Encantador",
"Místic",
"Producte",
"Bonic",
"Pacient",
"Bonic",
"Potent",
"Ric",
"Secret",
"Intel·ligent",
"Sòlid",
"Especial",
"Estratègic",
"Fort",
"Endreçat",
"Savi"
],
"fruits": [
"Poma",
"Alvocat",
"Plàtan",
"Blackberry",
"Nabiu",
"Bròquil",
"Pastanaga",
"Cirera",
"Coco",
"Raïm",
"Llimona",
"Enciam",
"Mango",
"Meló",
"Bolet",
"Ceba",
"Taronja",
"Papaia",
"Préssec",
"Pera",
"Pinya",
"Patata",
"Carbassa",
"Gerd",
"Maduixa",
"Tomàquet"
],
"combination": "{fruit} {adjective}",
"@combination": "In some languages, the adjective must be last."
},
"dialogs": {
"addFile": {
"title": "Afegeix-ho a la selecció",
"content": "Què voleu afegir?"
},
"addressInput": {
"title": "Introduïu l'adreça",
"hashtag": "Etiqueta",
"ip": "Adreça IP",
"recentlyUsed": "Utilitzades recentment: "
},
"cancelSession": {
"title": "Cancel·la la transferència de fitxers",
"content": "Segur que voleu cancel·lar la transferència dels fitxers?"
},
"cannotOpenFile": {
"title": "No es pot obrir el fitxer",
"content": "No s'ha pogut obrir «{file}». S'ha mogut, reanomenat o eliminat?"
},
"encryptionDisabledNotice": {
"title": "Xifratge desactivat",
"content": "La comunicació ara es fa mitjançant el protocol HTTP no xifrat. Per a utilitzar HTTPS, torneu a activar el xifratge."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Preferits",
"noFavorites": "Encara no hi ha cap dispositiu preferit.",
"addFavorite": "Afegeix"
},
"favoriteDeleteDialog": {
"title": "Elimina dels preferits",
"content": "Voleu eliminar «{name}» dels preferits?"
},
"favoriteEditDialog": {
"titleAdd": "Afegeix als preferits",
"titleEdit": "Configuració",
"name": "Nom del dispositiu",
"auto": "(auto)",
"ip": "Adreça IP",
"port": "Port"
},
"fileInfo": {
"title": "Informació del fitxer",
"fileName": "Nom del fitxer:",
"path": "Ruta:",
"size": "Mida:",
"sender": "Remitent:",
"time": "Temps:"
},
"fileNameInput": {
"title": "Introduïu el nom del fitxer",
"original": "Original: {original}"
},
"historyClearDialog": {
"title": "Esborra l'historial",
"content": "Segur que voleu eliminar tot l'historial?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "El LocalSend no pot trobar altres dispositius sense tenir permís per a escanejar la xarxa local. Concediu aquest permís a la configuració.",
"gotoSettings": "Configuració"
},
"messageInput": {
"title": "Tipus de missatge",
"multiline": "Multilínia"
},
"noFiles": {
"title": "No s'ha seleccionat cap fitxer",
"content": "Seleccioneu com a mínim un fitxer."
},
"noPermission": {
"title": "Sense permisos",
"content": "No heu concedit els permisos necessaris. Concediu-los a la configuració."
},
"notAvailableOnPlatform": {
"title": "No disponible",
"content": "Aquesta característica només està disponible a:"
},
"qr": {
"title": "Codi QR"
},
"quickActions": {
"title": "Accions ràpides",
"counter": "Comptador",
"prefix": "Prefix",
"padZero": "Reomple amb zeros",
"sortBeforeCount": "Ordena abans alfabèticament",
"random": "Aleatori"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "Les sol·licituds de fitxers s'accepten automàticament. Tingueu en compte que tothom a la xarxa local us pot enviar fitxers."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Les sol·licituds de fitxers s'accepten automàticament dels dispositius de la llista de preferits.",
"Atenció! Actualment, això no és del tot segur, un hacker que tingués les emprentes de qualsevol del dispositiu de la llista de preferits podria enviar-vos fitxers sense restriccions.",
"No obstant això, aquesta opció encara és més segura que permetre que tothom a la xarxa local us enviï fitxers sense restriccions."
]
},
"pin": {
"title": "Introduïu el PIN"
},
"sendModeHelp": {
"title": "Modes d'enviament",
"single": "Envia fitxers a un destinatari. La selecció s'esborrarà un cop finalitzada la transferència de fitxers.",
"multiple": "Envia fitxers a diversos destinataris. La selecció no s'esborrarà en finalitzar la trasferència.",
"link": "Els destinataris que no tinguin el LocalSend instal·lat poden baixar els fitxers seleccionats obrint l'enllaç al seu navegador."
},
"zoom": {
"title": "URL"
},
"openFile": {
"title": "Obre el fitxer",
"content": "Voleu obrir el fitxer rebut?"
}
},
"sanitization": {
"empty": "El nom del fitxer no pot estar buit",
"invalid": "El nom del fitxer conté caràcters no vàlids"
},
"tray": {
"@info": "Les directrius d'Apple són molt estrictes quant a l'expressió «tanca».",
"open": "@:general.open",
"close": "Surt del LocalSend",
"closeWindows": "Surt"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Introduïu el PIN",
"invalidPin": "PIN no vàlid",
"tooManyAttempts": "Massa intents",
"rejected": "Rebutjat",
"files": "Fitxers",
"fileName": "Nom del fitxer",
"size": "Mida"
},
"assetPicker": {
"@info": "Traduccions per a l'eina de selecció de mitjans per a Android i iPhone",
"confirm": "Confirma",
"cancel": "Cancel·la",
"edit": "Edita",
"gifIndicator": "GIF",
"loadFailed": "Càrrega fallida",
"original": "Origen",
"preview": "Previsualitza",
"select": "Seleccioneu",
"emptyList": "Llista buida",
"unSupportedAssetType": "Tipus de fitxer no compatible.",
"unableToAccessAll": "No es pot accedir a tots els fitxers del dispositiu",
"viewingLimitedAssetsTip": "Visualitza només fitxers i àlbums accessibles per l'aplicació.",
"changeAccessibleLimitedAssets": "Feu clic per a actualitzar els fitxers accessibles",
"accessAllTip": "L'aplicació només pot accedir a alguns fitxers del dispositiu. Aneu a la configuració del sistema i permeteu que l'aplicació accedeixi a tots els mitjans del dispositiu.",
"goToSystemSettings": "Vés a la configuració del sistema",
"accessLimitedAssets": "Continua amb accés limitat",
"accessiblePathName": "Fitxers accessibles",
"sTypeAudioLabel": "Àudio",
"sTypeImageLabel": "Imatge",
"sTypeVideoLabel": "Vídeo",
"sTypeOtherLabel": "Altres fitxers",
"sActionPlayHint": "reprodueix",
"sActionPreviewHint": "previsualitza",
"sActionSelectHint": "selecccioneu",
"sActionSwitchPathLabel": "canvia la ruta",
"sActionUseCameraHint": "utilitza la càmera",
"sNameDurationLabel": "duració",
"sUnitAssetCountLabel": "compte"
},
"networkInterfacesPage": {
"title": "Interfícies de xarxa",
"info": "De manera predefinida, el LocalSend utilitza totes les interfícies de xarxa disponibles. Podeu excloure les xarxes no desitjades aquí. Cal que reinicieu el servidor per a aplicar els canvis.",
"preview": "Previsualitza",
"blacklist": "Llista de denegades",
"whitelist": "Llista de permeses"
}
}
@@ -28,6 +28,7 @@
"open": "Otevřít",
"queue": "Fronta",
"quickSave": "Rychlé uložení",
"quickSaveFromFavorites": "Rychlé uložení pro \"Oblíbené\"",
"renamed": "Přejmenováno",
"reset": "Resetovat",
"restart": "Restartovat",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Port:",
"alias": "Alias:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Oblíbené",
"on": "@:general.on"
}
},
"sendTab": {
@@ -67,6 +73,7 @@
"nearbyDevices": "Zařízení v okolí",
"thisDevice": "Toto zařízení",
"scan": "Hledat zařízení",
"manualSending": "Manuální odeslání",
"sendMode": "Režim odesílání",
"sendModes": {
"single": "Jediný příjemce",
@@ -97,20 +104,28 @@
"system": "Systém"
},
"saveWindowPlacement": "Při ukončení uložit umístění okna",
"saveWindowPlacementWindows": "Uložit polohu okna po ukončení",
"minimizeToTray": "Při ukončení minimalizovat do lišty",
"launchAtStartup": "Automatické spuštění po přihlášení",
"launchMinimized": "Automatické spuštění: skrytý start",
"showInContextMenu": "Zobrazit LocalSend v kontextové nabídce",
"animations": "Animace"
},
"receive": {
"title": "Soubory",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Automatické dokončování",
"destination": "Uložit do",
"downloads": "(Downloads)",
"saveToGallery": "Uložit média do galerie",
"saveToHistory": "Uložit do historie"
},
"send": {
"title": "Poslat",
"shareViaLinkAutoAccept": "Automaticky přijímat požadavky v režimu \"Sdílet přes odkaz\"."
},
"network": {
"title": "Síť",
"needRestart": "Chcete-li použít nastavení, restartujte server!",
@@ -119,6 +134,14 @@
"deviceType": "Typ zařízení",
"deviceModel": "Model zařízení",
"port": "Port",
"network": "Síť",
"networkOptions": {
"all": "Vše",
"filtered": "Filtrované"
},
"discoveryTimeout": "Časový limit zjišťování",
"useSystemName": "Použít název systému",
"generateRandomAlias": "Generovat náhodný alias",
"portWarning": "Je možné, že vás ostatní zařízení nezjistí, protože používáte vlastní port. (výchozí: {defaultPort})",
"encryption": "Šifrování",
"multicastGroup": "Multicast",
@@ -143,11 +166,22 @@
"solution": "S největší pravděpodobností se jedná o problém s firewallem. Můžete to vyřešit povolením příchozích připojení (UDP a TCP) na portu {port}.",
"openFirewall": "Otevřít bránu firewall"
},
"noDiscovery": {
"symptom": "Toto zařízení nemůže zjistit jiná zařízení.",
"solution": "Ujistěte se, že jsou všechna zařízení ve stejné síti Wi-Fi a sdílejí stejnou konfiguraci (port, adresa vícesměrového vysílání, šifrování). Můžete zkusit zadat IP adresu cílového zařízení ručně. Pokud to funguje, zvažte přidání tohoto zařízení do oblíbených, aby mohlo být v budoucnu automaticky objeveno."
},
"noConnection": {
"symptom": "Obě zařízení se nemohou navzájem objevit ani nemohou sdílet soubory.",
"solution": "Problém je na obou stranách? Pak se musíte ujistit, že jsou obě zařízení ve stejné wifi síti a sdílejí stejnou konfiguraci (port, multicastová adresa, šifrování). Wifi nemusí umožňovat komunikaci mezi účastníky. V takovém případě musí být tato možnost povolena na routeru."
}
},
"networkInterfacesPage": {
"title": "Síťová rozhraní",
"info": "Ve výchozím nastavení používá LocalSend všechna dostupná síťová rozhraní. Zde můžete vyloučit nežádoucí sítě. Chcete-li použít změny, musíte restartovat server.",
"preview": "Náhled",
"whitelist": "Seznam povolených",
"blacklist": "Seznam zakázaných"
},
"receiveHistoryPage": {
"title": "Historie",
"openFolder": "Otevřít složku",
@@ -155,6 +189,7 @@
"empty": "Historie je prázdná.",
"entryActions": {
"open": "Otevřít soubor",
"showInFolder": "Zobrazit ve složce",
"info": "Informace",
"deleteFromHistory": "Smazat z historie"
}
@@ -187,6 +222,7 @@
"sendPage": {
"waiting": "Čekání na odpověď...",
"rejected": "Příjemce žádost odmítl.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "Příjemce je zaneprázdněn dalším požadavkem."
},
"progressPage": {
@@ -217,6 +253,9 @@
"requests": "Žádosti",
"noRequests": "Zatím žádné žádosti.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Automaticky přijímat žádosti",
"requirePin": "Vyžadovat PIN",
"pinHint": "PIN je \"{pin}\"",
"encryptionHint": "LocalSend používá self-signed certifikát. Musíte ho přijmout ve vašem prohlížeči.",
"pendingRequests": "Čekající žádosti: {n}"
},
@@ -228,6 +267,7 @@
],
"author": "Autor",
"contributors": "Přispěvatelé",
"packagers": "Baliči",
"translators": "Překladatelé"
},
"donationPage": {
@@ -248,6 +288,10 @@
"title": "Přidat do výběru",
"content": "Co chcete přidat?"
},
"openFile": {
"title": "Otevřít soubor",
"content": "Chcete otevřít přijatý soubor?"
},
"addressInput": {
"title": "Zadat adresu",
"hashtag": "Hashtag",
@@ -338,20 +382,42 @@
"title": "@:general.quickSave",
"content": "Požadavky na soubor jsou automaticky přijímány. Uvědomte si, že každý v místní síti vám může posílat soubory."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Žádosti o soubory jsou nyní přijímány automaticky ze zařízení ve vašem seznamu oblíbených.",
"Upozornění: V současné době to není zcela bezpečné, protože hacker, který zná vaše oblíbené zařízení, vám stále může posílat soubory.",
"Tato možnost je však stále bezpečnější než povolení libovolného zařízení."
]
},
"pin": {
"title": "Vložit PIN"
},
"sendModeHelp": {
"title": "Režimy odesílání",
"single": "Odešle soubory jednomu příjemci. Po dokončení přenosu souboru bude výběr vymazán.",
"multiple": "Odešle soubory více příjemcům. Výběr nebude vymazán.",
"link": "Příjemci, kteří nemají nainstalovaný LocalSend, si mohou vybrané soubory stáhnout otevřením odkazu ve svém prohlížeči."
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Název souboru nemůže být prázdný",
"invalid": "Název souboru obsahuje neplatné znaky"
},
"tray": {
"@info": "Apple Guidelines are very strict about the 'close' wording.",
"open": "@:general.open",
"close": "Ukončit LocalSend"
"close": "Ukončit LocalSend",
"closeWindows": "Konec"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Vložit PIN",
"invalidPin": "Neplatný PIN",
"tooManyAttempts": "Příliš mnoho pokusů",
"rejected": "Odmítnuto",
"files": "Soubory",
"fileName": "Název souboru",
+457
View File
@@ -0,0 +1,457 @@
{
"locale": "Dansk",
"appName": "LocalSend",
"general": {
"accept": "Acceptér",
"accepted": "Accepteret",
"add": "Tilføj",
"advanced": "Avanceret",
"cancel": "Afbryd",
"close": "Luk",
"confirm": "Bekræft",
"continueStr": "Fortsæt",
"copy": "Kopiér",
"copiedToClipboard": "Kopieret til udklipsholder",
"decline": "Afvis",
"done": "Færdig",
"delete": "Slet",
"edit": "Rediger",
"error": "Fejl",
"example": "Eksempel",
"files": "Filer",
"finished": "Fuldført",
"hide": "Skjul",
"off": "Fra",
"offline": "Offline",
"on": "Til",
"online": "Online",
"open": "Åbn",
"queue": "Kø",
"quickSave": "Gem hurtigt",
"quickSaveFromFavorites": "Gem hurtigt til \"Favoritter\"",
"renamed": "Omdøbt",
"reset": "Fortryd ændringer",
"restart": "Genstart",
"settings": "Indstillinger",
"skipped": "Sprunget over",
"start": "Start",
"stop": "Stop",
"save": "Gem",
"unchanged": "Uændret",
"unknown": "Ukendt",
"noItemInClipboard": "Ingen elementer i udklipsholder."
},
"receiveTab": {
"title": "Modtag",
"infoBox": {
"ip": "IP:",
"port": "Port:",
"alias": "Enhedsnavn:"
},
"quickSave": {
"favorites": "Favoritter",
"off": "@:general.off",
"on": "@:general.on"
}
},
"sendTab": {
"title": "Send",
"selection": {
"title": "Valg",
"files": "Filer: {files}",
"size": "Størrelse: {size}"
},
"picker": {
"file": "Fil",
"folder": "Mappe",
"media": "Medie",
"text": "Tekst",
"app": "App",
"clipboard": "Indsæt"
},
"shareIntentInfo": "Du kan også bruge din mobilenheds \"Del\"-funktion til nemmere at vælge filer.",
"nearbyDevices": "Enheder i nærheden",
"thisDevice": "Denne enhed",
"scan": "Søg efter enheder",
"manualSending": "Manuel afsendelse",
"sendMode": "Send-tilstand",
"sendModes": {
"single": "Enkel modtager",
"multiple": "Flere modtagere",
"link": "Del med link"
},
"sendModeHelp": "Forklaring",
"help": "Sørg for, at den ønskede enhed er på det samme Wi-Fi-netværk.",
"placeItems": "Placer filer til deling."
},
"settingsTab": {
"title": "Indstillinger",
"general": {
"title": "Generelt",
"brightness": "Tema",
"brightnessOptions": {
"system": "System",
"dark": "Mørk",
"light": "Lys"
},
"color": "Farve",
"colorOptions": {
"system": "System",
"oled": "OLED"
},
"language": "Sprog",
"languageOptions": {
"system": "System"
},
"saveWindowPlacement": "Gem vinduesposition ved afslutning",
"saveWindowPlacementWindows": "Gem vinduesposition ved lukning",
"minimizeToTray": "Minimer til systembakken/menulinjen ved lukning",
"launchAtStartup": "Autostart efter login",
"launchMinimized": "Autostart: Start skjult",
"showInContextMenu": "Vis LocalSend i kontekstmenu",
"animations": "Animationer"
},
"receive": {
"title": "Modtag",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto-fuldfør",
"destination": "Gem til mappe",
"downloads": "(Overførsler)",
"saveToGallery": "Gem medier til galleri",
"saveToHistory": "Gem til historik"
},
"send": {
"title": "Send",
"shareViaLinkAutoAccept": "Acceptér automatisk anmodninger i \"Del med link\"-tilstand"
},
"network": {
"title": "Netværk",
"needRestart": "Genstart serveren for at anvende ændringerne!",
"server": "Server",
"alias": "Enhedsnavn",
"deviceType": "Enhedstype",
"deviceModel": "Enhedsmodel",
"port": "Port",
"discoveryTimeout": "Timeout for søgning",
"portWarning": "Andre enheder registrerer dig muligvis ikke, da du bruger en brugerdefineret port (standard: {defaultPort}).",
"encryption": "Kryptering",
"multicastGroup": "Multicast-adresse",
"multicastGroupWarning": "Andre enheder registrerer dig muligvis ikke, da du bruger en brugerdefineret multicast-adresse (standard: {defaultMulticast}).",
"network": "Netværk",
"networkOptions": {
"all": "Alle",
"filtered": "Filtreret"
},
"useSystemName": "Brug systemnavn",
"generateRandomAlias": "Generér tilfældigt alias"
},
"other": {
"title": "Andet",
"support": "Støt LocalSend",
"donate": "Donér",
"privacyPolicy": "Privatlivspolitik",
"termsOfUse": "Brugsbetingelser"
},
"advancedSettings": "Avancerede indstillinger"
},
"troubleshootPage": {
"title": "Fejlsøgning",
"subTitle": "Fungerer appen ikke som forventet? Her finder du løsninger på almindelige problemer.",
"solution": "Løsning:",
"fixButton": "Løs automatisk",
"firewall": {
"symptom": "Denne enhed kan sende filer til andre enheder, men andre kan ikke sende til denne enhed.",
"solution": "Dette er sandsynligvis et firewall-problem. Løs det ved at tillade indgående forbindelser (UDP og TCP) på port {port}.",
"openFirewall": "Åbn firewall"
},
"noDiscovery": {
"symptom": "Denne enhed kan ikke finde andre enheder.",
"solution": "Sørg for, at alle enheder er på samme Wi-Fi-netværk og har den samme konfiguration (port, multicast-adresse, kryptering). Du kan prøve at indtaste den ønskede enheds IP-adresse manuelt. Hvis det virker, kan du føje enheden til favoritter, så den kan findes automatisk fremover."
},
"noConnection": {
"symptom": "Begge enheder kan hverken se hinanden eller dele data.",
"solution": "Er problemet der på begge enheder? Hvis ja, skal du sikre, at begge er på samme Wi-Fi-netværk og har den samme konfiguration (port, multicast-adresse, kryptering). Det kan være, at Wi-Fi-netværket forhindrer kommunikation mellem enheder grundet Access Point (AP) Isolation. I så fald skal denne indstilling deaktiveres på routeren."
}
},
"receiveHistoryPage": {
"title": "Historik",
"openFolder": "Åbn mappe",
"deleteHistory": "Slet historik",
"empty": "Historikken er tom.",
"entryActions": {
"open": "Åbn fil",
"showInFolder": "Vis i mappe",
"info": "Information",
"deleteFromHistory": "Slet fra historik"
}
},
"apkPickerPage": {
"title": "Apps (APK)",
"excludeSystemApps": "Ekskluder systemapps",
"excludeAppsWithoutLaunchIntent": "Ekskluder ikke-startbare apps",
"apps": "{n} Apps"
},
"selectedFilesPage": {
"deleteAll": "Slet alle"
},
"receivePage": {
"subTitle": {
"one": "vil sende dig en fil",
"other": "vil sende dig {n} filer"
},
"subTitleMessage": "sendte dig en besked:",
"subTitleLink": "sendte dig et link:",
"canceled": "Afsenderen har afbrudt delingen."
},
"receiveOptionsPage": {
"title": "Muligheder",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSend mappe)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Slået fra automatisk, fordi der er mapper."
},
"sendPage": {
"waiting": "Venter på svar…",
"rejected": "Modtageren har afvist delingen.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "Modtageren er optaget med en anden deling."
},
"progressPage": {
"titleSending": "Sender filer",
"titleReceiving": "Modtager filer",
"savedToGallery": "Gemt i fotos",
"total": {
"title": {
"sending": "Samlet tid ({time})",
"finishedError": "Fuldført med fejl",
"canceledSender": "Afbrudt af afsender",
"canceledReceiver": "Afbrudt af modtager"
},
"count": "Filer: {curr} / {n}",
"size": "Størrelse: {curr} / {n}",
"speed": "Hastighed: {speed}/s"
}
},
"webSharePage": {
"title": "Del med link",
"loading": "Starter server…",
"stopping": "Stopper server…",
"error": "En fejl opstod, mens serveren blev startet.",
"openLink": {
"one": "Åbn dette link i din browser:",
"other": "Åbn et af disse links i din browser:"
},
"requests": "Forespørgsler",
"noRequests": "Ingen forespørgsler endnu.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Accepter automatisk anmodninger",
"requirePin": "Kræv PIN-kode",
"pinHint": "PIN-koden er \"{pin}\"",
"encryptionHint": "LocalSend bruger et selvsigneret certifikat. Du skal acceptere det i din browser.",
"pendingRequests": "Afventende forespørgsler: {n}"
},
"aboutPage": {
"title": "Om LocalSend",
"description": [
"LocalSend er en gratis, open source-app, der lader dig dele filer og beskeder sikkert med enheder i nærheden over dit lokale netværk uden behov for en internetforbindelse.",
"Appen er tilgængelig på Android, iOS, macOS, Windows og Linux. Du finder alle downloadmuligheder på den officielle hjemmeside."
],
"author": "Skaber",
"contributors": "Bidragydere",
"packagers": "Pakkere",
"translators": "Oversættere"
},
"donationPage": {
"title": "Donér",
"info": "LocalSend er gratis, open source og uden annoncer. Hvis du kan lide appen, kan du støtte udviklingen med en donation.",
"donate": "Donér {amount}",
"thanks": "Tusind tak for din støtte!",
"restore": "Gendan køb"
},
"changelogPage": {
"title": "Ændringslog"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Lokaliteter kan have forskellige ord og matcher ikke altid 1:1"
},
"dialogs": {
"addFile": {
"title": "Føj til valg",
"content": "Hvad vil du tilføje?"
},
"addressInput": {
"title": "Indtast adresse",
"hashtag": "Hashtag",
"ip": "IP-adresse",
"recentlyUsed": "Senest brugt: "
},
"cancelSession": {
"title": "Afbryd filoverførsel",
"content": "Vil du virkelig afbryde filoverførslen?"
},
"cannotOpenFile": {
"title": "Kan ikke åbne filen",
"content": "Filen \"{file}\" kunne ikke åbnes. Er denne fil blevet flyttet, omdøbt eller slettet?"
},
"encryptionDisabledNotice": {
"title": "Kryptering deaktiveret",
"content": "Kommunikationen sker nu via den ukrypterede HTTP-protokol. Aktivér kryptering igen for at bruge HTTPS."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Favoritter",
"noFavorites": "Ingen favoritter endnu.",
"addFavorite": "Tilføj"
},
"favoriteDeleteDialog": {
"title": "Slet favorit",
"content": "Vil du virkelig slette \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "Føj til favoritter",
"titleEdit": "Rediger favorit",
"name": "Enhedsnavn",
"auto": "(auto)",
"ip": "IP-adresse",
"port": "Port"
},
"fileInfo": {
"title": "Filoplysninger",
"fileName": "Filnavn:",
"path": "Sti:",
"size": "Størrelse:",
"sender": "Afsender:",
"time": "Tidspunkt:"
},
"fileNameInput": {
"title": "Angiv filnavn",
"original": "Original: {original}"
},
"historyClearDialog": {
"title": "Ryd historik",
"content": "Vil du virkelig slette hele historikken?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend kan ikke finde andre enheder uden tilladelse til at scanne det lokale netværk. Giv venligst tilladelse i systemindstillingerne.",
"gotoSettings": "Indstillinger"
},
"messageInput": {
"title": "Skriv besked",
"multiline": "Flerlinjet"
},
"noFiles": {
"title": "Ingen fil valgt",
"content": "Vælg mindst én fil."
},
"noPermission": {
"title": "Ingen tilladelse",
"content": "Du har ikke givet de nødvendige tilladelser. Giv venligst tilladelse i systemindstillingerne."
},
"notAvailableOnPlatform": {
"title": "Ikke tilgængelig",
"content": "Denne funktion er ikke tilgængelig:"
},
"qr": {
"title": "QR-kode"
},
"quickActions": {
"title": "Hurtighandlinger",
"counter": "Tæller",
"prefix": "Præfiks",
"padZero": "Fyld med nuller",
"sortBeforeCount": "Sortér alfabetisk på forhånd (A-Å)",
"random": "Tilfældig"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "Filoverførsler accepteres nu automatisk. Bemærk, at alle på det lokale netværk kan sende dig filer."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Filoverførsler accepteres nu automatisk fra enheder på din favoritliste.",
"Advarsel! Dette er ikke helt sikkert, da hvis en hacker har fingeraftrykket på enhver enhed fra din favoritliste, kan de sende filer til dig uden restriktioner.",
"Denne mulighed er dog stadig sikrere end at tillade alle brugere på det lokale netværk at sende filer til dig uden restriktioner."
]
},
"pin": {
"title": "Indtast PIN-kode"
},
"sendModeHelp": {
"title": "Send-tilstande",
"single": "Sender filer til én modtager. Valget ryddes efter filoverførsel er færdig.",
"multiple": "Sender filer til flere modtager. Valget ryddes ikke efter filoverførsel er færdig.",
"link": "Modtagere, der ikke har LocalSend installeret, kan hente de valgte filer ved at åbne linket i deres browser."
},
"zoom": {
"title": "URL"
},
"openFile": {
"title": "Åbn fil",
"content": "Vil du åbne den modtagne fil?"
}
},
"sanitization": {
"empty": "Filnavn må ikke være tomt",
"invalid": "Filnavn indeholder ugyldige tegn"
},
"tray": {
"@info": "Apples retningslinjer er meget strenge angående ordet \"luk\".",
"open": "@:general.open",
"close": "Afslut LocalSend",
"closeWindows": "Luk"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Indtast PIN-kode",
"invalidPin": "Ugyldig PIN-kode",
"tooManyAttempts": "For mange forsøg",
"rejected": "Afvist",
"files": "Filer",
"fileName": "Filnavn",
"size": "Størrelse"
},
"assetPicker": {
"@info": "Oversættelser til medievalgværktøjet på Android og iPhone",
"confirm": "Bekræft",
"cancel": "Afbryd",
"edit": "Rediger",
"gifIndicator": "GIF",
"loadFailed": "Indlæsning mislykkedes",
"original": "Original",
"preview": "Forhåndsvisning",
"select": "Vælg",
"emptyList": "Tom liste",
"unSupportedAssetType": "Ikke-understøttet filtype.",
"unableToAccessAll": "Kan ikke tilgå alle filer på enheden",
"viewingLimitedAssetsTip": "Vis kun filer og mapper tilgængelige for appen.",
"changeAccessibleLimitedAssets": "Klik for at opdatere tilgængelige filer",
"accessAllTip": "Appen kan kun tilgå nogle filer på enheden. Gå til systemindstillingerne, og giv den adgang til alle medier på enheden.",
"goToSystemSettings": "Gå til systemindstillinger",
"accessLimitedAssets": "Fortsæt med begrænset adgang",
"accessiblePathName": "Tilgængelige filer",
"sTypeAudioLabel": "Lyd",
"sTypeImageLabel": "Billede",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Andre medier",
"sActionPlayHint": "Afspil",
"sActionPreviewHint": "Forhåndsvisning",
"sActionSelectHint": "Vælg",
"sActionSwitchPathLabel": "Ændr filsti",
"sActionUseCameraHint": "Brug kamera",
"sNameDurationLabel": "Varighed",
"sUnitAssetCountLabel": "Antal"
},
"networkInterfacesPage": {
"title": "Netværksgrænseflader",
"info": "Som standard bruger LocalSend alle tilgængelige netværksgrænseflader. Du kan ekskludere uønskede netværk her. Du skal genstarte serveren for at anvende ændringerne.",
"preview": "Forhåndsvisning",
"whitelist": "Hvidliste",
"blacklist": "Sortliste"
}
}
@@ -28,6 +28,7 @@
"open": "Öffnen",
"queue": "Warteschlange",
"quickSave": "Quick Save",
"quickSaveFromFavorites": "Quick Save für \"Favoriten\"",
"renamed": "Umbenannt",
"reset": "Zurücksetzen",
"restart": "Neustarten",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Port:",
"alias": "Alias:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Favoriten",
"on": "@:general.on"
}
},
"sendTab": {
@@ -67,6 +73,7 @@
"nearbyDevices": "Geräte in der Nähe",
"thisDevice": "Dieses Gerät",
"scan": "Geräte suchen",
"manualSending": "Manuelles Senden",
"sendMode": "Sendemodus",
"sendModes": {
"single": "Einzelner Empfänger",
@@ -96,8 +103,9 @@
"languageOptions": {
"system": "System"
},
"saveWindowPlacement": "Schließen: Fensterposition speichern",
"minimizeToTray": "Schließen: in Symbolleiste minimieren",
"saveWindowPlacement": "Beenden: Fensterposition speichern",
"saveWindowPlacementWindows": "Beenden: Fensterposition speichern",
"minimizeToTray": "Beenden: in Symbolleiste minimieren",
"launchAtStartup": "Autostart nach Login",
"launchMinimized": "Autostart: versteckt starten",
"showInContextMenu": "LocalSend im Kontextmenü anzeigen",
@@ -106,6 +114,7 @@
"receive": {
"title": "Empfangen",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Autom. beenden",
"destination": "Ziel-Ordner",
@@ -115,7 +124,7 @@
},
"send": {
"title": "Senden",
"shareViaLinkAutoAccept": "Link teilen: Autom. aktzeptieren"
"shareViaLinkAutoAccept": "Link teilen: Autom. akzeptieren"
},
"network": {
"title": "Netzwerk",
@@ -125,7 +134,14 @@
"deviceType": "Gerätetyp",
"deviceModel": "Gerätemodell",
"port": "Port",
"network": "Netzwerk",
"networkOptions": {
"all": "Alle",
"filtered": "Gefiltert"
},
"discoveryTimeout": "Erkennungs-Timeout",
"useSystemName": "Systemnamen verwenden",
"generateRandomAlias": "Zufälligen Alias generieren",
"portWarning": "Möglicherweise wirst du von anderen Geräten nicht erkannt, weil du einen benutzerdefinierten Port verwendest. (Standard: {defaultPort})",
"encryption": "Verschlüsselung",
"multicastGroup": "Multicast",
@@ -155,10 +171,17 @@
"solution": "Stelle sicher, dass alle Geräte im selben Wi-Fi-Netzwerk sind und die gleiche Konfiguration teilen (Port, Multicast-Adresse, Verschlüsselung). Du kannst versuchen, die IP-Adresse des Zielgeräts manuell einzugeben. Wenn dies funktioniert, füge dieses Gerät zu den Favoriten hinzu, damit es in Zukunft automatisch entdeckt werden kann."
},
"noConnection": {
"symptom": "Beide Geräte können sich nicht sehen noch können sie Dateien miteinander teilen.",
"symptom": "Beide Geräte können sich weder sehen noch können sie Dateien miteinander teilen.",
"solution": "Das Problem tritt auf beiden Seiten auf? Dann stelle sicher, dass beide Geräte im selben WLAN sind sowie dieselbe Konfiguration (Port, Multicast-Adresse, Verschlüsselung) haben. Es kann sein, dass das WLAN keine Kommunikation zwischen Teilnehmern erlaubt (AP-Isolation). In diesem Fall muss am Router diese Option aktiviert werden."
}
},
"networkInterfacesPage": {
"title": "Netzwerkschnittstellen",
"info": "Standardmäßig verwendet LocalSend alle verfügbaren Netzwerkschnittstellen. Hier können Sie unerwünschte Netzwerke ausschließen. Sie müssen den Server neu starten, um die Änderungen zu übernehmen.",
"preview": "Vorschau",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"title": "Verlauf",
"openFolder": "Ordner öffnen",
@@ -197,7 +220,7 @@
"saveToGalleryOff": "Aufgrund von Ordnern automatisch ausgeschaltet."
},
"sendPage": {
"waiting": "Warte auf Antwort...",
"waiting": "Warte auf Antwort",
"rejected": "Der Empfänger hat die Anfrage abgelehnt.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "Der Empfänger ist mit einer anderen Anfrage beschäftigt."
@@ -216,12 +239,20 @@
"count": "Dateien: {curr} / {n}",
"size": "Größe: {curr} / {n}",
"speed": "Geschwindigkeit: {speed}/s"
},
"remainingTime": {
"@hours": "Benutze 'h' als Abkürzung für Stunden und 'm' für Minuten",
"@days": "Benutze 'd' für Tage, 'h' für Stunden und 'm' für Minuten",
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h}h {m}m",
"days": "{d}d {h}h {m}m"
}
},
"webSharePage": {
"title": "Per Link teilen",
"loading": "Starte Server...",
"stopping": "Stoppe server...",
"loading": "Starte Server",
"stopping": "Stoppe server",
"error": "Ein Fehler ist beim Starten des Servers aufgetreten.",
"openLink": {
"one": "Öffne diesen Link im Browser:",
@@ -230,10 +261,10 @@
"requests": "Anfragen",
"noRequests": "Bisher keine Anfragen erhalten.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Anfragen automatisch aktzeptieren",
"autoAccept": "Anfragen automatisch akzeptieren",
"requirePin": "PIN erforderlich",
"pinHint": "Die PIN lautet \"{pin}\"",
"encryptionHint": "LocalSend verwendet ein selbstsigniertes Zertifikat. Sie müssen es im Browser akzeptieren.",
"encryptionHint": "LocalSend verwendet ein selbstsigniertes Zertifikat. Du musst es im Browser akzeptieren.",
"pendingRequests": "Offene Anfragen: {n}"
},
"aboutPage": {
@@ -244,18 +275,18 @@
],
"author": "Autor",
"contributors": "Mitwirkende",
"packagers": "Packagers",
"translators": "Übersetzer:innen"
"packagers": "Paketierende",
"translators": "Übersetzende"
},
"donationPage": {
"title": "Spenden",
"info": "LocalSend ist kostenlos, open-source und frei von Werbung. Wenn dir diese App gefällt, kannst du die Entwicklung mit einer Spende unterstützen.",
"info": "LocalSend ist kostenlos, quelloffen und frei von Werbung. Wenn dir diese App gefällt, kannst du die Entwicklung mit einer Spende unterstützen.",
"donate": "Spende {amount}",
"thanks": "Vielen Dank für deine Unterstützung!",
"restore": "Käufe Wiederherstellen"
"restore": "Käufe wiederherstellen"
},
"changelogPage": {
"title": "Changelog"
"title": "Änderungsprotokoll"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Inherits from the English version"
@@ -265,6 +296,10 @@
"title": "Zur Auswahl hinzufügen",
"content": "Was möchtest du zum Senden hinzufügen?"
},
"openFile": {
"title": "Datei öffnen",
"content": "Möchtest du die empfangene Datei öffnen?"
},
"addressInput": {
"title": "Adresse eingeben",
"hashtag": "Hashtag",
@@ -300,7 +335,7 @@
"titleEdit": "Favorit bearbeiten",
"name": "Name",
"auto": "(auto)",
"ip": "IP-Addresse",
"ip": "IP-Adresse",
"port": "Port"
},
"fileInfo": {
@@ -334,7 +369,7 @@
},
"noPermission": {
"title": "Keine Berechtigung",
"content": "Sie haben die erforderlichen Berechtigungen nicht gewährt. Bitte gewähren Sie sie in den Einstellungen."
"content": "Du hast die erforderlichen Berechtigungen nicht gewährt. Bitte gewähre sie in den Einstellungen."
},
"notAvailableOnPlatform": {
"title": "Nicht verfügbar",
@@ -355,6 +390,14 @@
"title": "@:general.quickSave",
"content": "Dateianfragen werden automatisch akzeptiert. Beachte, dass jeder im lokalen Netzwerk dir Dateien senden kann."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Dateianfragen werden jetzt automatisch von Geräten in deiner Favoritenliste akzeptiert.",
"Warnung: Dies ist derzeit nicht vollständig sicher, da ein Hacker, der den Fingerabdruck der Geräte in deiner Favoritenliste kennt, dir immer noch Dateien senden kann.",
"Diese Option ist jedoch immer noch sicherer als die Erlaubnis für jedes Gerät."
]
},
"pin": {
"title": "PIN eingeben"
},
@@ -375,7 +418,8 @@
"tray": {
"@info": "Apple Guidelines are very strict about the \"close\" wording.",
"open": "@:general.open",
"close": "LocalSend beenden"
"close": "LocalSend beenden",
"closeWindows": "Beenden"
},
"web": {
"waiting": "@:sendPage.waiting",
@@ -400,11 +444,11 @@
"emptyList": "Leere Liste",
"unSupportedAssetType": "Format ist nicht unterstützt.",
"unableToAccessAll": "Zugriff nicht möglich",
"viewingLimitedAssetsTip": "Zeigen Sie nur Dateien und Alben an, auf die die App zugreifen kann.",
"viewingLimitedAssetsTip": "Zeige nur Dateien und Alben an, auf die die App zugreifen kann.",
"changeAccessibleLimitedAssets": "Tippen, um erlaubte Dateien zu aktualisieren",
"accessAllTip": "Die App kann nur auf einige der Dateien auf dem Gerät zugreifen. Öffnen Sie die Systemeinstellungen und erlauben Sie der App, \nauf alle Dateien auf dem Gerät zuzugreifen",
"accessAllTip": "Die App kann nur auf einige der Dateien auf dem Gerät zugreifen. Öffne die Systemeinstellungen und erlaube der App, auf alle Dateien auf dem Gerät zuzugreifen.",
"goToSystemSettings": "Gehe zu den Systemeinstellungen",
"accessLimitedAssets": "Fahre fort mit limitiertem Zugriff",
"accessLimitedAssets": "Fahre mit eingeschränktem Zugriff fort",
"accessiblePathName": "Verfügbare Assets",
"sTypeAudioLabel": "Audio",
"sTypeImageLabel": "Bild",
@@ -21,13 +21,14 @@
"files": "Αρχεία",
"finished": "Ολοκληρώθηκε",
"hide": "Απόκρυψη",
"off": "Απενεργοποίηση",
"off": "Ανενεργή",
"offline": "Εκτός σύνδεσης",
"on": "Ενεργοποίηση",
"on": "Ενεργή",
"online": "Σε σύνδεση",
"open": "Άνοιγμα",
"queue": "Ουρά",
"quickSave": "Γρήγορη Αποθήκευση",
"quickSaveFromFavorites": "Γρήγορη Αποθήκευση των \"Αγαπημένων\"",
"renamed": "Μετονομάστηκε",
"reset": "Επαναφορά",
"restart": "Επανεκκίνηση",
@@ -38,7 +39,7 @@
"save": "Αποθήκευση",
"unchanged": "Χωρίς αλλαγές",
"unknown": "Αγνωστο",
"noItemInClipboard": "Κανένα στοιχείο στο Πρόχειρο"
"noItemInClipboard": "Κανένα στοιχείο στο Πρόχειρο."
},
"receiveTab": {
"title": "Λήψη",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Θύρα:",
"alias": "Όνομα συσκευής:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Αγαπημένα",
"on": "@:general.on"
}
},
"sendTab": {
@@ -67,6 +73,7 @@
"nearbyDevices": "Κοντινές συσκευές",
"thisDevice": "Αυτή η συσκευή",
"scan": "Αναζήτηση για συσκευές",
"manualSending": "Χειροκίνητη αποστολή",
"sendMode": "Λειτουργία αποστολής",
"sendModes": {
"single": "Ένας παραλήπτης",
@@ -97,14 +104,18 @@
"system": "Σύστημα"
},
"saveWindowPlacement": "Έξοδος: Αποθήκευση θέσης παραθύρου",
"saveWindowPlacementWindows": "Αποθήκευση της θέσης του παραθύρου κατά την έξοδο",
"minimizeToTray": "Έξοδος: Ελαχιστοποίηση στη γραμμή εργασιών/μενού",
"launchAtStartup": "Αυτόματη εκκίνηση μετά τη σύνδεση",
"launchMinimized": "Αυτόματη εκκίνηση: Έναρξη ελαχιστοποιημένο",
"showInContextMenu": "Προβολή του LocalSend στο μενού του περιβάλλοντος εργασίας",
"animations": "Οπτικά εφέ"
},
"receive": {
"title": "Λήψη",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Αυτόματη ολοκλήρωση",
"destination": "Προορισμός",
"downloads": "(Λήψεις)",
@@ -123,10 +134,18 @@
"deviceType": "Τύπος συσκευής",
"deviceModel": "Μοντέλο συσκευής",
"port": "Θύρα",
"discoveryTimeout": "Λήξη χρόνου ανακάλυψης",
"useSystemName": "Χρήση του ονόματος του συστήματος",
"generateRandomAlias": "Δημιουργία τυχαίου ψευδώνυμου",
"portWarning": "Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη θύρα. (προεπιλογή: {defaultPort})",
"encryption": "Κρυπτογράφηση",
"multicastGroup": "Αναμετάδοση",
"multicastGroupWarning": "Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη διεύθυνση αναμετάδοσης. (προεπιλογή: {defaultMulticast})"
"multicastGroupWarning": "Ενδέχεται να μην εντοπιστείτε από άλλες συσκευές επειδή χρησιμοποιείτε μια προσαρμοσμένη διεύθυνση αναμετάδοσης. (προεπιλογή: {defaultMulticast})",
"network": "Δίκτυο",
"networkOptions": {
"all": "Όλα",
"filtered": "Περιορισμένο"
}
},
"other": {
"title": "Άλλα",
@@ -147,6 +166,10 @@
"solution": "Αυτό είναι πιθανότατα ένα ζήτημα του τείχους προστασίας. Μπορείτε να το λύσετε επιτρέποντας τις εισερχόμενες συνδέσεις (UDP και TCP) στη θύρα {port}.",
"openFirewall": "Άνοιγμα Τείχους Προστασίας"
},
"noDiscovery": {
"symptom": "Αυτή η συσκευή δεν μπορεί ανακαλυφθεί από άλλες συσεκυές.",
"solution": "Βεβαιωθείτε ότι όλες οι συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση multicast, κρυπτογράφηση). Μπορείτε να προσπαθήσετε να πληκτρολογήσετε τη διεύθυνση IP της συσκευής προορισμού με μη αυτόματο τρόπο. Εάν αυτό λειτουργεί, εξετάστε το ενδεχόμενο να προσθέσετε αυτήν τη συσκευή στα αγαπημένα, ώστε να μπορεί να ανακαλυφθεί αυτόματα στο μέλλον."
},
"noConnection": {
"symptom": "Και οι δύο συσκευές δεν μπορούν να ανακαλύψουν η μία την άλλη ούτε μπορούν να μοιραστούν αρχεία.",
"solution": "Υπάρχει το πρόβλημα και από τις δύο πλευρές; Πρέπει να βεβαιωθείτε ότι και οι δύο συσκευές βρίσκονται στο ίδιο δίκτυο Wi-Fi και μοιράζονται την ίδια διαμόρφωση (θύρα, διεύθυνση αναμετάδοσης, κρυπτογράφηση). Το wifi ενδέχεται να μην επιτρέπει την επικοινωνία μεταξύ των συμμετεχόντων. Σε αυτήν την περίπτωση, αυτή η επιλογή πρέπει να είναι ενεργοποιημένη στο δρομολογητή."
@@ -159,6 +182,7 @@
"empty": "Το ιστορικό είναι κενό.",
"entryActions": {
"open": "Άνοιγμα αρχείου",
"showInFolder": "Προβολή στον φάκελο",
"info": "Πληροφορίες",
"deleteFromHistory": "Διαγραφή από το ιστορικό"
}
@@ -183,15 +207,16 @@
},
"receiveOptionsPage": {
"title": "Επιλογές",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(Φάκελος LocalSend)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Απενεργοποιήθηκε αυτόματα επειδή υπάρχουν κατάλογοι."
"saveToGalleryOff": "Απενεργοποιήθηκε αυτόματα επειδή υπάρχουν κατάλογοι.",
"destination": "@:settingsTab.receive.destination",
"saveToGallery": "@:settingsTab.receive.saveToGallery"
},
"sendPage": {
"waiting": "Αναμονή για απάντηση...",
"waiting": "Αναμονή για απάντηση",
"rejected": "Ο παραλήπτης απέρριψε το αίτημα.",
"busy": "Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα."
"busy": "Ο παραλήπτης είναι απασχολημένος με άλλο αίτημα.",
"tooManyAttempts": "@:web.tooManyAttempts"
},
"progressPage": {
"titleSending": "Γίνεται αποστολή αρχείων",
@@ -211,8 +236,8 @@
},
"webSharePage": {
"title": "Διαμοιρασμός μέσω συνδέσμου",
"loading": "Εκκίνηση διακομιστή...",
"stopping": "Σταμάτημα διακομιστή...",
"loading": "Εκκίνηση διακομιστή",
"stopping": "Σταμάτημα διακομιστή",
"error": "Ένα σφάλμα προέκυψε κατά την εκκίνηση του διακομιστή.",
"openLink": {
"one": "Άνοιγμα αυτού του συνδέσμου στον φυλλομετρητή:",
@@ -220,10 +245,12 @@
},
"requests": "Αιτήματα",
"noRequests": "Κανένα αίτμηα ακόμα.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Αυτόματη αποδοχή αιτημάτων",
"requirePin": "Απαίτηση PIN",
"pinHint": "Το PIN είναι \"{pin}\"",
"encryptionHint": "Το LocalSend χρησιμοποιεί αυτο-υπογεγραμμένο πιστοποιητικό. Χρειάζεται να το αποθεχτείτε στον φυλλομετρητή.",
"pendingRequests": "Αναμονή αιτημάτων: {n}"
"pendingRequests": "Αναμονή αιτημάτων: {n}",
"encryption": "@:settingsTab.network.encryption"
},
"aboutPage": {
"title": "Σχετικά με το LocalSend",
@@ -233,6 +260,7 @@
],
"author": "Δημιουργός",
"contributors": "Συντελεστές",
"packagers": "Συσκευαστές",
"translators": "Μεταφραστές"
},
"donationPage": {
@@ -240,13 +268,13 @@
"info": "Το LocalSend είναι δωρεάν, ανοιχτού κώδικα και χωρίς διαφημίσεις. Εάν σας αρέσει η εφαρμογή, μπορείτε να υποστηρίξετε την ανάπτυξή της με μια δωρεά.",
"donate": "Δωρεά {amount}",
"thanks": "Ευχαριστούμε πολύ!",
"restore": "Ε[παναφορά αγοράς"
"restore": "Επαναφορά αγοράς"
},
"changelogPage": {
"title": "Καταγραφή αλλαγών"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Different locales may have different words, it may not match 1:1",
"@info": "Διαφορετικές τοποθεσίες μπορεί να έχουν διαφορετικές λέξεις, μπορεί να μην ταιριάζουν 1:1",
"adjectives": [
"Λατρευτό",
"Πανεμορφο",
@@ -323,11 +351,15 @@
"title": "Προσθήκη στις επιλογές",
"content": "Τι θέλετε να προστεθεί;"
},
"openFile": {
"title": "Άνοιγμα αρχείου",
"content": "Θέλετε να ανοιχτεί το ληφθέν αρχείο;"
},
"addressInput": {
"title": "Εισαγωγή διεύθυνσης",
"hashtag": "Hashtag",
"ip": "Διεύθυνση IP",
"recentlyUsed": "Χρησιμοποιήθηκε πρόσφατα: "
"recentlyUsed": "Χρησιμοποιήθηκε πρόσφατα: ",
"hashtag": "Χάσταγκ"
},
"cancelSession": {
"title": "Ακύρωση της μεταφοράς του αρχείου",
@@ -379,11 +411,11 @@
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "LocalSend can't find other devices without having the permission to scan the local network. Please grant this permission in the settings.",
"description": "Το LocalSend δεν μπορεί να βρει άλλες συσκευές χωρίς την άδεια σάρωσης του τοπικού δικτύου. Παρακαλείστε να παραχωρήσετε αυτό το δικαίωμα στις ρυθμίσεις.",
"gotoSettings": "Ρυθμίσεις"
},
"messageInput": {
"title": "Τύπος μηνύματος",
"title": "Πληκτρολογήστε το μήνυμα",
"multiline": "Πολλαπλών γραμμών"
},
"noFiles": {
@@ -410,23 +442,45 @@
"random": "Τυχαία"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "Τα αιτήματα αρχείων γίνονται αυτόματα δεκτά. Έχετε υπόψη σας ότι όλοι στο τοπικό δίκτυο μπορούν να σας στείλουν αρχεία."
"content": "Τα αιτήματα αρχείων γίνονται αυτόματα δεκτά. Έχετε υπόψη σας ότι όλοι στο τοπικό δίκτυο μπορούν να σας στείλουν αρχεία.",
"title": "@:general.quickSave"
},
"quickSaveFromFavoritesNotice": {
"content": [
"Τα αιτήματα αρχείων γίνονται τώρα αυτόματα αποδεκτά από τις συσκευές της λίστας των αγαπημένων σας.",
"Προειδοποίηση! Επί του παρόντος, αυτό δεν είναι απολύτως ασφαλές, ένας χάκερ που έχει το δακτυλικό αποτύπωμα οποιασδήποτε συσκευής από τη λίστα των αγαπημένων σας μπορεί να σας στείλει αρχεία χωρίς περιορισμό.",
"Ωστόσο, αυτή η επιλογή είναι ακόμα πιο ασφαλής από το να επιτρέπεται σε όλους τους χρήστες στο τοπικό δίκτυο να σας στείλουν αρχεία χωρίς περιορισμό."
],
"title": "@:general.quickSaveFromFavorites"
},
"pin": {
"title": "Εισαγωγή PIN"
},
"sendModeHelp": {
"title": "Λειτουργίες αποστολής",
"single": "Στέλνει αρχεία σε έναν παραλήπτη. Η επιλογή θα διαγραφεί μετά την ολοκλήρωση της μεταφοράς του αρχείου.",
"multiple": "Στέλνει αρχεία σε πολλούς παραλήπτες. Η επιλογή δεν θα διαγραφεί.",
"link": "Οι παραλήπτες που δεν έχουν εγκαταστήσει το LocalSend μπορούν να πραγματοποιήσουν λήψη των επιλεγμένων αρχείων ανοίγοντας τον σύνδεσμο στον φυλλομετρητή τους."
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "Το όνομα του αρχείου δεν μπορεί να είναι κενό",
"invalid": "Το όνομα του αρχείου περιέχει μη έγκυρους χαρακτήρες"
},
"tray": {
"@info": "Apple Guidelines are very strict about the 'close' wording.",
"open": "@:general.open",
"close": "Έξοδος από το LocalSend"
"close": "Έξοδος από το LocalSend",
"closeWindows": "Έξοδος"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Εισαγωγή PIN",
"invalidPin": "Μη έγκυρο PIN",
"tooManyAttempts": "Πάρα πολλές προσπάθειες",
"rejected": "Απορρίφθηκε",
"files": "Αρχεία",
"fileName": "Όνομα αρχείου",
@@ -462,5 +516,12 @@
"sActionUseCameraHint": "χρήση κάμερας",
"sNameDurationLabel": "διάρκεια",
"sUnitAssetCountLabel": "μετρητής"
},
"networkInterfacesPage": {
"info": "Από προεπιλογή, το LocalSend χρησιμοποιεί όλες τις διαθέσιμες διεπαφές δικτύου. Μπορείτε να εξαιρέσετε τα ανεπιθύμητα δίκτυα εδώ. Πρέπει να κάνετε επανεκκίνηση του διακομιστή για να εφαρμόσετε τις αλλαγές.",
"title": "Διεπαφές δικτύου",
"preview": "Προεπισκόπηση",
"whitelist": "Λευκή λίστα",
"blacklist": "Μαύρη λίστα"
}
}
@@ -28,6 +28,7 @@
"open": "Open",
"queue": "Queue",
"quickSave": "Quick Save",
"quickSaveFromFavorites": "Quick Save for \"Favourites\"",
"renamed": "Renamed",
"reset": "Reset",
"restart": "Restart",
@@ -38,7 +39,7 @@
"save": "Save",
"unchanged": "Unchanged",
"unknown": "Unknown",
"noItemInClipboard": "No items in Clipboard"
"noItemInClipboard": "No items in Clipboard."
},
"receiveTab": {
"title": "Receive",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Port:",
"alias": "Device name:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Favourites",
"on": "@:general.on"
}
},
"sendTab": {
@@ -67,6 +73,7 @@
"nearbyDevices": "Nearby devices",
"thisDevice": "This Device",
"scan": "Look for devices",
"manualSending": "Manual Sending",
"sendMode": "Send mode",
"sendModes": {
"single": "Single recipient",
@@ -97,6 +104,7 @@
"system": "System"
},
"saveWindowPlacement": "Quit: Save window placement",
"saveWindowPlacementWindows": "Save window position after exit",
"minimizeToTray": "Quit: Minimize to Tray/Menu Bar",
"launchAtStartup": "Autostart after login",
"launchMinimized": "Autostart: Start hidden",
@@ -106,6 +114,7 @@
"receive": {
"title": "Receive",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish",
"destination": "Destination",
@@ -126,10 +135,17 @@
"deviceModel": "Device model",
"port": "Port",
"discoveryTimeout": "Discovery Timeout",
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias",
"portWarning": "You might not be detected by other devices because you are using a custom port. (default: {defaultPort})",
"encryption": "Encryption",
"multicastGroup": "Multicast",
"multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})"
"multicastGroupWarning": "You might not be detected by other devices because you are using a custom multicast address. (default: {defaultMulticast})",
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
}
},
"other": {
"title": "Other",
@@ -150,6 +166,10 @@
"solution": "This is most likely a firewall issue. You can solve this by allowing incoming connections (UDP and TCP) on port {port}.",
"openFirewall": "Open Firewall"
},
"noDiscovery": {
"symptom": "This device cannot discover other devices.",
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favourites so it can be automatically discovered in the future."
},
"noConnection": {
"symptom": "Both devices cannot discover each other nor can they share files.",
"solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The network may not allow communication between participants. In this case, this option must be enabled on the router."
@@ -193,7 +213,7 @@
"saveToGalleryOff": "Turned off automatically because there are directories."
},
"sendPage": {
"waiting": "Waiting for response...",
"waiting": "Waiting for response",
"rejected": "The recipient has rejected the request.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "The recipient is busy with another request."
@@ -212,12 +232,20 @@
"count": "Files: {curr} / {n}",
"size": "Size: {curr} / {n}",
"speed": "Speed: {speed}/s"
},
"remainingTime": {
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h}h {m}m",
"days": "{d}d {h}h {m}m",
"@hours": "Use 'h' for hours abbreviation and 'm' for minutes",
"@days": "Use 'd' for days, 'h' for hours, and 'm' for minutes"
}
},
"webSharePage": {
"title": "Share via link",
"loading": "Starting server...",
"stopping": "Stopping server...",
"loading": "Starting server",
"stopping": "Stopping server",
"error": "An error occurred while starting the server.",
"openLink": {
"one": "Open this link in your browser:",
@@ -240,6 +268,7 @@
],
"author": "Author",
"contributors": "Contributors",
"packagers": "Packagers",
"translators": "Translators"
},
"donationPage": {
@@ -330,6 +359,10 @@
"title": "Add to selection",
"content": "What do you want to add?"
},
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"addressInput": {
"title": "Enter address",
"hashtag": "Hashtag",
@@ -420,6 +453,14 @@
"title": "@:general.quickSave",
"content": "File requests are automatically accepted. Be aware that everyone on the local network can send you files."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favourites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favourites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
},
@@ -440,7 +481,8 @@
"tray": {
"@info": "Apple Guidelines are very strict about the 'close' wording.",
"open": "@:general.open",
"close": "Quit LocalSend"
"close": "Quit LocalSend",
"closeWindows": "Exit"
},
"web": {
"waiting": "@:sendPage.waiting",
@@ -482,5 +524,12 @@
"sActionUseCameraHint": "use camera",
"sNameDurationLabel": "duration",
"sUnitAssetCountLabel": "count"
},
"networkInterfacesPage": {
"preview": "Preview",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"whitelist": "Whitelist",
"blacklist": "Blacklist",
"title": "Network Interfaces"
}
}
@@ -28,6 +28,7 @@
"open": "Open",
"queue": "Queue",
"quickSave": "Quick Save",
"quickSaveFromFavorites": "Quick Save for \"Favorites\"",
"renamed": "Renamed",
"reset": "Undo changes",
"restart": "Restart",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Port:",
"alias": "Device name:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Favorites",
"on": "@:general.on"
}
},
"sendTab": {
@@ -66,7 +72,8 @@
"shareIntentInfo": "You can also use the \"Share\" feature of your mobile device to select files more easily.",
"nearbyDevices": "Nearby devices",
"thisDevice": "This Device",
"scan": "Look for devices",
"scan": "Search devices",
"manualSending": "Manual sending",
"sendMode": "Send mode",
"sendModes": {
"single": "Single recipient",
@@ -96,7 +103,8 @@
"languageOptions": {
"system": "System"
},
"saveWindowPlacement": "Quit: Save window placement",
"saveWindowPlacement": "Save window position after quit",
"saveWindowPlacementWindows": "Save window position after exit",
"minimizeToTray": "Minimize to the System Tray/Menu Bar when closing",
"launchAtStartup": "Autostart after login",
"launchMinimized": "Autostart: Start hidden",
@@ -106,6 +114,7 @@
"receive": {
"title": "Receive",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto Finish",
"destination": "Save to folder",
@@ -125,7 +134,14 @@
"deviceType": "Device type",
"deviceModel": "Device model",
"port": "Port",
"network": "Network",
"networkOptions": {
"all": "All",
"filtered": "Filtered"
},
"discoveryTimeout": "Discovery Timeout",
"useSystemName": "Use system name",
"generateRandomAlias": "Generate random alias",
"portWarning": "You might not be detected by other devices because you are using a custom port. (default: {defaultPort})",
"encryption": "Encryption",
"multicastGroup": "Multicast address",
@@ -156,9 +172,16 @@
},
"noConnection": {
"symptom": "Both devices cannot discover each other nor can they share files.",
"solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The Wi-Fi network may not allow communication between participants (AP isolation). In this case, this option must be enabled on the router."
"solution": "Does the problem exist on both sides? If so, you need to make sure that both devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). The Wi-Fi network may not allow communication between participants due to Access Point (AP) Isolation. In this case, this option must be disabled on the router."
}
},
"networkInterfacesPage": {
"title": "Network Interfaces",
"info": "By default, LocalSend uses all available network interfaces. You can exclude unwanted networks here. You need to restart the server to apply the changes.",
"preview": "Preview",
"whitelist": "Whitelist",
"blacklist": "Blacklist"
},
"receiveHistoryPage": {
"title": "History",
"openFolder": "Open folder",
@@ -197,7 +220,7 @@
"saveToGalleryOff": "Turned off automatically because there are folders."
},
"sendPage": {
"waiting": "Waiting for response...",
"waiting": "Waiting for response",
"rejected": "The recipient has rejected the request.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "The recipient is busy with another request."
@@ -216,12 +239,20 @@
"count": "Files: {curr} / {n}",
"size": "Size: {curr} / {n}",
"speed": "Speed: {speed}/s"
},
"remainingTime": {
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h}h {m}m",
"days": "{d}d {h}h {m}m",
"@hours": "Use 'h' for hours abbreviation and 'm' for minutes",
"@days": "Use 'd' for days, 'h' for hours, and 'm' for minutes"
}
},
"webSharePage": {
"title": "Share via link",
"loading": "Starting server...",
"stopping": "Stopping server...",
"loading": "Starting server",
"stopping": "Stopping server",
"error": "An error occurred while starting the server.",
"openLink": {
"one": "Open this link in your browser:",
@@ -335,6 +366,10 @@
"title": "Add to selection",
"content": "What do you want to add?"
},
"openFile": {
"title": "Open file",
"content": "Do you want to open the received file?"
},
"addressInput": {
"title": "Enter address",
"hashtag": "Hashtag",
@@ -342,8 +377,8 @@
"recentlyUsed": "Recently used: "
},
"cancelSession": {
"title": "Cancel file transfer",
"content": "Do you really want to cancel the file transfer?"
"title": "Cancel files transfer",
"content": "Do you really want to cancel the files transfer?"
},
"cannotOpenFile": {
"title": "Cannot open file",
@@ -423,7 +458,15 @@
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "File requests are automatically accepted. Be aware that everyone on the local network can send you files."
"content": "File requests are now accepted automatically. Be aware that everyone on the local network can send you files."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"File requests are now accepted automatically from devices in your favorites list.",
"Warning! Currently, this is not entirely secure, as a hacker who has the fingerprint of any device from your favorites list can send you files without restriction.",
"However, this option is still safer than allowing all users on the local network to send you files without restriction."
]
},
"pin": {
"title": "Enter PIN"
@@ -445,7 +488,8 @@
"tray": {
"@info": "Apple Guidelines are very strict about the \"close\" wording.",
"open": "@:general.open",
"close": "Quit LocalSend"
"close": "Quit LocalSend",
"closeWindows": "Exit"
},
"web": {
"waiting": "@:sendPage.waiting",
@@ -27,9 +27,10 @@
"online": "En línea",
"open": "Abrir",
"queue": "Cola",
"quickSave": "Guardado Rápido",
"quickSave": "Guardado rápido",
"quickSaveFromFavorites": "Guardado rápido en \"Favoritos\"",
"renamed": "Renombrado",
"reset": "Resetear",
"reset": "Deshacer cambios",
"restart": "Reiniciar",
"settings": "Ajustes",
"skipped": "Omitido",
@@ -38,7 +39,7 @@
"save": "Guardar",
"unchanged": "Sin Cambios",
"unknown": "Desconocido",
"noItemInClipboard": "No hay ningún elemento en el portapapeles"
"noItemInClipboard": "No hay ningún elemento en el portapapeles."
},
"receiveTab": {
"title": "Recibir",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Puerto:",
"alias": "Alias:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Favoritos",
"on": "@:general.on"
}
},
"sendTab": {
@@ -67,6 +73,7 @@
"nearbyDevices": "Dispositivos Cercanos",
"thisDevice": "Este dispositivo",
"scan": "Buscar dispositivos",
"manualSending": "Enviar manualmente",
"sendMode": "Modo de envío",
"sendModes": {
"single": "Solo un destino",
@@ -74,8 +81,8 @@
"link": "Compartir enlace"
},
"sendModeHelp": "Explicación",
"help": "Asegúrate de que el destino elegido esté en la misma red Wi-Fi.",
"placeItems": "Selecciona items para compartir."
"help": "Por favor asegúrese que el dispositivo de destino esté en la misma red Wi-Fi.",
"placeItems": "Selecciona elementos para compartir."
},
"settingsTab": {
"title": "Ajustes",
@@ -97,36 +104,48 @@
"system": "Sistema"
},
"saveWindowPlacement": "Al salir guardar la ubicación de la ventana",
"saveWindowPlacementWindows": "Guardar la posición de la ventana después de salir",
"minimizeToTray": "Cerrar: Minimizar ventana",
"launchAtStartup": "Inicio automático",
"launchMinimized": "Inicio automático: Iniciar minimizado",
"showInContextMenu": "Mostrar LocalSend en el menú contextual",
"animations": "Animaciones"
},
"receive": {
"title": "Recibir",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Auto finalizar",
"destination": "Destino",
"destination": "Guardar en carpeta",
"downloads": "(Descargas)",
"saveToGallery": "Guardar media en la galería",
"saveToHistory": "Guardar en el historial"
},
"send": {
"title": "Enviar",
"shareViaLinkAutoAccept": "Enviar enlace: Aceptar automáticamente"
"shareViaLinkAutoAccept": "Aceptar automáticamente solicitudes en el modo \"Compartir mediante enlace\""
},
"network": {
"title": "Red",
"needRestart": "Reiniciar el servidor para aplicar los ajustes.",
"needRestart": "¡Reinicia el servidor para aplicar los ajustes!",
"server": "Servidor",
"alias": "Alias",
"deviceType": "Tipo de dispositivo",
"deviceModel": "Modelo de dispositivo",
"port": "Puerto",
"discoveryTimeout": "Tiempo de espera para Detección",
"useSystemName": "Usar el nombre del sistema",
"generateRandomAlias": "Generar alias aleatorio",
"portWarning": "Es posible que no seas visible para otros dispositivos porque estás utilizando un puerto personalizado. (Puerto por defecto: {defaultPort})",
"encryption": "Encriptación",
"multicastGroup": "Multicast",
"multicastGroupWarning": "Es posible que no seas visible para otros dispositivos porque estás utilizando una dirección multicast personalizada. (Dirección multicast por defecto: {defaultMulticast})"
"multicastGroup": "Direccion Multicast",
"multicastGroupWarning": "Es posible que no seas visible para otros dispositivos porque estás utilizando una dirección multicast personalizada. (Dirección multicast por defecto: {defaultMulticast})",
"network": "Red",
"networkOptions": {
"all": "Todo",
"filtered": "Filtrado"
}
},
"other": {
"title": "Otros",
@@ -143,13 +162,17 @@
"solution": "Solución:",
"fixButton": "Corregir automáticamente",
"firewall": {
"symptom": "Esta aplicación puede enviar archivos a otros dispositivos pero otros dispositivos no pueden enviar archivos a este.",
"symptom": "Este dispositivo puede enviar archivos a otros, pero otros dispositivos no pueden enviar archivos a este.",
"solution": "Lo más probable es que se trate de un problema con el firewall, puedes solucionarlo permitiendo las conexiones entrantes (UDP y TCP) en el puerto {port}.",
"openFirewall": "Abrir Firewall"
},
"noDiscovery": {
"symptom": "Este dispositivo no puede descubrir otros dispositivos.",
"solution": "Asegúrese que todos los dispositivos estén en la misma red Wi-Fi y compartan la misma configuración (puerto, dirección de multidifusión, cifrado). Puede intentar escribir la dirección IP del dispositivo de destino manualmente. Si esto funciona, considere agregar este dispositivo a los favoritos para que pueda detectarse automáticamente en el futuro."
},
"noConnection": {
"symptom": "Ambos dispositivos no pueden descubrirse ni compartir archivos.",
"solution": "¿El problema existe en ambos lados? Tienes que asegurarte que los dispositivos están en la misma red wifi y comparten la misma configuración (puerto, dirección multicast, encriptación). Es posible que el wifi no permita la comunicación entre los dispositivos. En este caso, hay que activar esta opción en el router."
"solution": "¿El problema existe en ambos lados? Tienes que asegurarte que los dispositivos están en la misma red Wi-Fi y comparten la misma configuración (puerto, dirección multicast, encriptación). Es posible que el Wi-Fi no permita la comunicación entre los dispositivos. En este caso, hay que activar esta opción en el router."
}
},
"receiveHistoryPage": {
@@ -159,15 +182,16 @@
"empty": "El historial está vacío.",
"entryActions": {
"open": "Abrir archivo",
"showInFolder": "Mostrar en carpeta",
"info": "Información",
"deleteFromHistory": "Borrar del historial"
}
},
"apkPickerPage": {
"title": "Apps (APK)",
"title": "Aplicaciones (APK)",
"excludeSystemApps": "Excluir apps de sistema",
"excludeAppsWithoutLaunchIntent": "Excluir apps no ejecutables",
"apps": "{n} Apps"
"apps": "{n} Aplicaciones"
},
"selectedFilesPage": {
"deleteAll": "Eliminar todo"
@@ -184,13 +208,14 @@
"receiveOptionsPage": {
"title": "Opciones",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(carpeta @:appName)",
"appDirectory": "(Carpeta LocalSend)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Desactivado automáticamente porque hay carpetas."
},
"sendPage": {
"waiting": "Esperando respuesta...",
"waiting": "Esperando respuesta",
"rejected": "El destino ha rechazado la petición.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "El destino está ocupado con otra petición."
},
"progressPage": {
@@ -207,12 +232,20 @@
"count": "Archivos: {curr} / {n}",
"size": "Tamaño: {curr} / {n}",
"speed": "Velocidad: {speed}/s"
},
"remainingTime": {
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h}h {m}m",
"days": "{d}d {h}h {m}m",
"@hours": "Usa «h» como abreviatura de horas y «m» para minutos",
"@days": "Usa «d» para días, «h» para horas y «m» para minutos"
}
},
"webSharePage": {
"title": "Compartir mediante enlace",
"loading": "Iniciando servidor...",
"stopping": "Deteniendo servidor...",
"loading": "Iniciando servidor",
"stopping": "Deteniendo servidor",
"error": "Se ha producido un error al iniciar el servidor.",
"openLink": {
"one": "Abre este enlace en el navegador:",
@@ -222,6 +255,8 @@
"noRequests": "Aún no hay solicitudes.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Aceptar solicitudes automáticamente",
"requirePin": "Requerir PIN",
"pinHint": "El PIN es \"{pin}\"",
"encryptionHint": "LocalSend utiliza un certificado autofirmado. Necesitas aceptarlo en el navegador.",
"pendingRequests": "Solicitudes pendientes: {n}"
},
@@ -233,6 +268,7 @@
],
"author": "Autor",
"contributors": "Colaboradores",
"packagers": "Empaquetadores",
"translators": "Traductores"
},
"donationPage": {
@@ -253,9 +289,13 @@
"title": "Añadir a selección",
"content": "¿Qué quieres añadir?"
},
"openFile": {
"title": "Abrir archivo",
"content": "¿Quieres abrir el archivo recibido?"
},
"addressInput": {
"title": "Introducir dirección",
"hashtag": "Hashtag",
"hashtag": "Etiqueta",
"ip": "Dirección IP",
"recentlyUsed": "Usados recientemente: "
},
@@ -285,7 +325,7 @@
},
"favoriteEditDialog": {
"titleAdd": "Agregar a favoritos",
"titleEdit": "Editar",
"titleEdit": "Ajustes",
"name": "Alias",
"auto": "(auto)",
"ip": "Dirección IP",
@@ -343,27 +383,49 @@
"title": "@:general.quickSave",
"content": "Las solicitudes de archivos se aceptan automáticamente. Ten en cuenta que cualquiera en la red local podrá enviarte archivos."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Se aceptarán automáticamente los archivos recibidos de los dispositivos incluidos en su lista de favoritos.",
"Advertencia: esta opción no es completamente segura, cualquiera que conozca la huella digital de sus dispositivos favoritos aún puede enviarle archivos.",
"Sin embargo, esta opción sigue siendo más segura que permitir que todos los usuarios en la red local te envíen archivos sin restricción."
]
},
"pin": {
"title": "Ingresar PIN"
},
"sendModeHelp": {
"title": "Modos de envío",
"single": "Enviar archivos a un solo destino. La selección se borrará una vez finalizada la transferencia.",
"multiple": "Enviar archivos a múltiples destinos. La selección no se borrará.",
"link": "Los destinatarios que no tengan LocalSend instalado pueden descargar los archivos seleccionados abriendo el enlace en su navegador."
},
"zoom": {
"title": "URL"
}
},
"sanitization": {
"empty": "El nombre del archivo no puede estar vacío",
"invalid": "El nombre del archivo contiene caracteres no válidos"
},
"tray": {
"@info": "Las directrices de Apple son muy estrictas en cuanto a la expresión 'cerrar'.",
"open": "@:general.open",
"close": "Cerrar LocalSend"
"close": "Cerrar LocalSend",
"closeWindows": "Cerrar"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Ingresar PIN",
"invalidPin": "PIN Inválido",
"tooManyAttempts": "Demasiados intentos",
"rejected": "Rechazado",
"files": "Archivos",
"fileName": "Nombre del archivo",
"size": "Tamaño"
},
"assetPicker": {
"@info": "Traducciones de la herramienta de selección de medios para Android e Iphone",
"@info": "Traducciones de la herramienta de selección de medios para Android e iPhone",
"confirm": "Confirmar",
"cancel": "Cancelar",
"edit": "Editar",
@@ -374,10 +436,10 @@
"select": "Seleccionar",
"emptyList": "Lista vacía",
"unSupportedAssetType": "Tipo de archivo no soportado.",
"unableToAccessAll": "No se puede acceder a los archivos del dispositivo.",
"viewingLimitedAssetsTip": "Ver sólo los archivos y álbumes accesibles para la aplicación.",
"unableToAccessAll": "No se puede acceder a todos los archivos del dispositivo",
"viewingLimitedAssetsTip": "Ver solo los archivos y álbumes accesibles para la aplicación.",
"changeAccessibleLimitedAssets": "Haga clic para actualizar los archivos accesibles",
"accessAllTip": "La aplicación sólo puede acceder a algunos archivos del dispositivo. Ve a la configuración del sistema y permite que la aplicación acceda a todos los archivos multimedia del dispositivo.",
"accessAllTip": "La aplicación solo puede acceder a algunos archivos del dispositivo. Ve a la configuración del sistema y permite que la aplicación acceda a todos los archivos multimedia del dispositivo.",
"goToSystemSettings": "Ir a los ajustes del sistema",
"accessLimitedAssets": "Continuar con acceso limitado",
"accessiblePathName": "Archivos accesibles",
@@ -385,12 +447,19 @@
"sTypeImageLabel": "Imagen",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Otros medios",
"sActionPlayHint": "play",
"sActionPlayHint": "reproducir",
"sActionPreviewHint": "vista previa",
"sActionSelectHint": "selecccionar",
"sActionSwitchPathLabel": "cambiar ruta",
"sActionUseCameraHint": "usar cámara",
"sNameDurationLabel": "duración",
"sUnitAssetCountLabel": "conteo"
},
"networkInterfacesPage": {
"title": "Interfaces de la red",
"info": "De forma predeterminada, LocalSend utiliza todas las interfaces de red disponibles. Aquí puede desactivar las redes no deseadas. Debe reiniciar el servidor para aplicar los cambios.",
"preview": "Vista previa",
"whitelist": "Lista blanca",
"blacklist": "Lista negra"
}
}
+465
View File
@@ -0,0 +1,465 @@
{
"locale": "Eesti keel",
"appName": "LocalSend",
"general": {
"accept": "Nõustu",
"accepted": "Nõustusid",
"add": "Lisa",
"advanced": "Lisavalikud",
"cancel": "Katkesta",
"close": "Sulge",
"confirm": "Kinnita",
"continueStr": "Jätka",
"copy": "Kopeeri",
"copiedToClipboard": "Kopeeritud lõikelauale",
"decline": "Keeldu",
"done": "Valmis",
"delete": "Kustuta",
"edit": "Muuda",
"error": "Viga",
"example": "Näide",
"files": "Failid",
"finished": "Valmis",
"hide": "Peida",
"off": "Väljas",
"offline": "Pole võrgus",
"on": "Sees",
"online": "Võrgus",
"open": "Ava",
"queue": "Järjekorras",
"quickSave": "Kiirsalvestus",
"quickSaveFromFavorites": "Kiirsalvestamine „Lemmikutelt“",
"renamed": "Nimi on muudetud",
"reset": "Tühista muudatused",
"restart": "Käivita uuesti",
"settings": "Seadistused",
"skipped": "Vahelejäetud",
"start": "Alusta",
"stop": "Peata",
"save": "Salvesta",
"unchanged": "Muutmata",
"unknown": "Teadmata",
"noItemInClipboard": "Lõikelaual pole midagi."
},
"receiveTab": {
"title": "Võta vastu",
"infoBox": {
"ip": "IP-aadress:",
"port": "Port:",
"alias": "Seadme nimi:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "Lemmikud",
"on": "@:general.on"
}
},
"sendTab": {
"title": "Saada",
"selection": {
"title": "Valik",
"files": "Failid: {files}",
"size": "Andmemaht: {size}"
},
"picker": {
"file": "Fail",
"folder": "Kaust",
"media": "Meedia",
"text": "Tekst",
"app": "Rakendus",
"clipboard": "Aseta"
},
"shareIntentInfo": "Klikates nutiseadmes olevates rakendustes nuppu „Jaga“ võid kasutada ka mugavat jagamise võimalust.",
"nearbyDevices": "Läheduses asuvad seadmed",
"thisDevice": "See seade",
"scan": "Otsi seadmeid",
"manualSending": "Saada käsitsi",
"sendMode": "Saatmisviis",
"sendModes": {
"single": "Üks vastuvõtja",
"multiple": "Mitu vastuvõtjat",
"link": "Jagamine lingi vahendusel"
},
"sendModeHelp": "Selgitus",
"help": "Palun kontrolli, et sihtseade asub sama WiFi ühenduse piires.",
"placeItems": "Lisa jagatavad failid siia."
},
"settingsTab": {
"title": "Seadistused",
"general": {
"title": "Üldised seadistused",
"brightness": "Kujundus",
"brightnessOptions": {
"system": "Süsteemi kujundus",
"dark": "Tume kujundus",
"light": "Hele kujundus"
},
"color": "Värv",
"colorOptions": {
"system": "Süsteemi värvid",
"oled": "OLED"
},
"language": "Keel",
"languageOptions": {
"system": "Süsteemi keel"
},
"saveWindowPlacement": "Peale väljumist salvesta akna asukoht",
"saveWindowPlacementWindows": "Peale lõpetamist salvesta akna asukoht",
"minimizeToTray": "Sulgemisel aseta rakendus süsteemisalve",
"launchAtStartup": "Sisselogimisel käivita automaatselt",
"launchMinimized": "Automaatsel käivitamisel: käivita peidetuna",
"showInContextMenu": "Näita LocalSendi kontekstimenüüs",
"animations": "Animatsioonid"
},
"receive": {
"title": "Vastuvõtmine",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "Lõpeta automaatselt",
"destination": "Salvesta kausta",
"downloads": "(Allalaadimised)",
"saveToGallery": "Lisa meedia galeriisse",
"saveToHistory": "Salvesta ajalukku"
},
"send": {
"title": "Saatmine",
"shareViaLinkAutoAccept": "Kui kasutusel on „Jaga lingi abil“, siis nõustu vastuvõtmisega automaatselt"
},
"network": {
"title": "Võrk",
"needRestart": "Muudatuste jõustamiseks palun käivita server uuesti!",
"server": "Server",
"alias": "Seadme nimi",
"deviceType": "Seadme tüüp",
"deviceModel": "Seadme mudel",
"port": "Kasutatav port",
"discoveryTimeout": "Leitavuse aegumine",
"useSystemName": "Kasuta süsteemset nime",
"generateRandomAlias": "Loo juhuslik nimi",
"portWarning": "Kuna kasutad endamääratud porti, siis muud seadmed ei pruugi seda seadet leida. (vaikimisi: {defaultPort})",
"encryption": "Krüptimine",
"multicastGroup": "Multiedastuse aadress",
"multicastGroupWarning": "Kuna kasutad endamääratud multiedastuse aadressi, siis muud seadmed ei pruugi seda seadet leida. (vaikimisi: {defaultMulticast})",
"networkOptions": {
"filtered": "Filtreeritud",
"all": "Kõik"
},
"network": "Võrk"
},
"other": {
"title": "Muu teave",
"support": "Toeta LocalSendi",
"donate": "Toeta rahaliselt",
"privacyPolicy": "Andmekaitsepõhimõtted",
"termsOfUse": "Kasutustingimused"
},
"advancedSettings": "Täiendavad seadistused"
},
"troubleshootPage": {
"title": "Veaotsing",
"subTitle": "Kas rakendus toimib nii, nagu vaja? Siin võid leida lahendusi levinumatele probleemidele.",
"solution": "Lahendus:",
"fixButton": "Paranda automaatselt",
"firewall": {
"symptom": "Siit seadmest on võimalik teisele faile saata, kuid teised ei saa siia saata.",
"solution": "Tõenäoliselt on see seotud tulemüüriga. Olukorra võid lahendada lubades sisenevad (UDP ja TCP) ühendused pordis {port}.",
"openFirewall": "Ava tulemüüri seadistused"
},
"noDiscovery": {
"symptom": "See seade ei suuda tuvastada teisi seadeid.",
"solution": "Palun kontrolli, et kõik seadmed asuvad samas WiFi võrgus ning kasutavad samu seadistusi (port, multiedastuse aadress ja krüptimine). Sa võid ka proovida sihtseadme IP-aadressi lisamist käsitsi. Kui siis ühendus toimib, võid ta lisada lemmikuks ja hilisem tuvastamine saab olema automaatne."
},
"noConnection": {
"symptom": "Mõlemad seadmed ei suuda üksteist leida ega jagada faile.",
"solution": "Kas identne probleem on mõlemas seadmes? Kui nii, siis palun kontrolli, et mõlemad seadmed asuvad samas WiFi võrgus ning kasutavad samu seadistusi (port, multiedastuse aadress ja krüptimine). Aga samas on võimalik, et WiFi võrk on seadistatud nii, et kõik seadmed on üksteisest isoleeritud. Sel juhul küsi abi võrgu haldajalt, kes saab ruuteris teha vajalikud muudatused."
}
},
"receiveHistoryPage": {
"title": "Ajalugu",
"openFolder": "Ava kaust",
"deleteHistory": "Kustuta ajalugu",
"empty": "Ajalugu on tühi.",
"entryActions": {
"open": "Ava fail",
"showInFolder": "Näita kaustas",
"info": "Teave",
"deleteFromHistory": "Kustuta ajaloost"
}
},
"apkPickerPage": {
"title": "Rakendused (apk-failid)",
"excludeSystemApps": "Välista süsteemi rakendused",
"excludeAppsWithoutLaunchIntent": "Välista mittekäivitatavad rakendused",
"apps": "{n} rakendust"
},
"selectedFilesPage": {
"deleteAll": "Kustuta kõik"
},
"receivePage": {
"subTitle": {
"one": "soovib sulle saata faili",
"other": "soovib sulle saata {n} faili"
},
"subTitleMessage": "saatis sulle sõnumi:",
"subTitleLink": "saatis sulle lingi:",
"canceled": "Saatja on päringu tühistanud."
},
"receiveOptionsPage": {
"title": "Eelistused",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(LocalSendi kaust)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "Pole kasutusel, kuna saadetavate hulgas leidub kaustu."
},
"sendPage": {
"waiting": "Ootame vastust…",
"rejected": "Vastuvõtja on vastuvõtmisest keeldunud.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "Vastuvõtja on hõivatud teise päringuga tegelemisega."
},
"progressPage": {
"titleSending": "Saadame faile",
"titleReceiving": "Võtame faile vastu",
"savedToGallery": "Salvestatud kausta Fotod",
"total": {
"title": {
"sending": "Edenemine kokku ({time})",
"finishedError": "Lõppes veaga",
"canceledSender": "Saatja poolt katkestatud",
"canceledReceiver": "Vastuvõtja poolt katkestatud"
},
"count": "Faile: {curr} / {n}",
"size": "Andmemaht: {curr} / {n}",
"speed": "Kiirus: {speed}/s"
},
"remainingTime": {
"seconds": "{n}:{ss}",
"minutes": "{n}:{ss}",
"hours": "{h} t {m} min",
"days": "{d} pv {h} t {m} min",
"@hours": "Kasuta „h“ tunni lühendina ja „m“ minutite jaoks",
"@days": "Kasuta „d“ päeva, lühendina „h“ tunni lühendina ja „m“ minutite jaoks"
}
},
"webSharePage": {
"title": "Jaga lingi vahendusel",
"loading": "Käivitame serverit…",
"stopping": "Peatame serverit…",
"error": "Serveri käivitamisel tekkis viga.",
"openLink": {
"one": "Ava see link oma veebibrauseris:",
"other": "Ava üks neist linkidest oma veebibrauseris:"
},
"requests": "Päringuid",
"noRequests": "Päringuid veel pole.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "Nõustu päringutega automaatselt",
"requirePin": "Küsi PIN-koodi",
"pinHint": "PIN-kood on „{pin}“",
"encryptionHint": "LocalSend kasutab enda poolt allkirjastatud sertifikaate. Ühenduse toimimiseks palun nõustu nendega veebibrauseris.",
"pendingRequests": "Ootel päringuid: {n}"
},
"aboutPage": {
"title": "Rakenduse teave: LocalSend",
"description": [
"LocalSend põhineb avatud lähtekoodil, on kõikide jaoks vaba ning tasuta kasutatav. Rakenduse eesmärgiks on võimaldada failide ja tekstide jagamist kohtvõrgus asuvate arvutite vahel nii, et välist internetiühendust pole vaja kasutada.",
"See rakendus on saadaval Androidi, iOSi, macOSi, Windowsi ja Linuxi jaoks. Kõik allalaaditavad paigaldusfailid leiad meie ametlikust veebisaidist."
],
"author": "Autor",
"contributors": "Kaasautorid",
"packagers": "Pakendajad",
"translators": "Tõlkijad"
},
"donationPage": {
"title": "Toeta meid rahaliselt",
"info": "LocalSend põhineb avatud lähtekoodil, on kõikide jaoks vaba ning tasuta kasutatav, ega sisalda reklaame. Kui sulle see rakendus meeldib, siis palun toeta meie arendust.",
"donate": "Anneta {amount}",
"thanks": "Suur tänu!",
"restore": "Taasta ost"
},
"changelogPage": {
"title": "Muudatuste logi"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "Erinevates lokaatides võivad olla kasutusel erinevad sõnad ning nad ei pruugi 1:1 kattuda"
},
"dialogs": {
"addFile": {
"title": "Lisa valiku hulka",
"content": "Mida sa sooviksid lisada?"
},
"openFile": {
"title": "Ava fail",
"content": "Kas sa soovid avada saadud faili?"
},
"addressInput": {
"title": "Sisesta aadress",
"hashtag": "Teemaviide",
"ip": "IP-aadress",
"recentlyUsed": "Hiljuti kasutatud: "
},
"cancelSession": {
"title": "Katkesta failide edastamine",
"content": "Kas sa kindlasti soovid katkestada failide edastamise?"
},
"cannotOpenFile": {
"title": "Faili avamine ei õnnestu",
"content": "„{file}“ faili avamine ei õnnestunud. Kas ta võib olla teisaldatud, ümbernimetatud või kustutatud?"
},
"encryptionDisabledNotice": {
"title": "Krüptimine pole kasutusel",
"content": "Andmevahetus toimub nüüd krüptimata HTTP-protokolli vahendusel. Turvalise HTTPS-protokolli kasutamiseks lülita krüptimine sisse."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "Lemmikud",
"noFavorites": "Ühtegi lemmikseadet veel pole.",
"addFavorite": "Lisa"
},
"favoriteDeleteDialog": {
"title": "Kustuta lemmikute hulgast",
"content": "Kas sa kindlasti soovid „{name}“ kustutada lemmikute hulgast?"
},
"favoriteEditDialog": {
"titleAdd": "Lisa lemmikuks",
"titleEdit": "Seadistused",
"name": "Seadme nimi",
"auto": "(automaatne)",
"ip": "IP-aadress",
"port": "Kasutatav port"
},
"fileInfo": {
"title": "Faili teave",
"fileName": "Failinimi:",
"path": "Asukoht:",
"size": "Suurus:",
"sender": "Saatja:",
"time": "Kellaaeg:"
},
"fileNameInput": {
"title": "Sisesta failinimi",
"original": "Algne: {original}"
},
"historyClearDialog": {
"title": "Tühjenda ajalugu",
"content": "Kas sa kindlasti soovid kogu ajaloo kustutada?"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "Ilma kohtvõrgu skaneerimise õiguseta ei suuda LocalSend leida teisi seadmeid. Palun luba süsteemi seadistustest vajalikud õigused.",
"gotoSettings": "Seadistused"
},
"messageInput": {
"title": "Kirjuta sõnum",
"multiline": "Mitmerealine"
},
"noFiles": {
"title": "Ühtegi faili pole valitud",
"content": "Palun vali vähemalt üks fail."
},
"noPermission": {
"title": "Õigused puuduvad",
"content": "Sa pole rakendusele jaganud vajalikke õigusi. Palun tee seda süsteemi seadistustes."
},
"notAvailableOnPlatform": {
"title": "Pole saadaval",
"content": "See funktsionaalsus on saadaval vaid:"
},
"qr": {
"title": "QR-kood"
},
"quickActions": {
"title": "Kiirtoimingud",
"counter": "Loendur",
"prefix": "Eesliide",
"padZero": "Täida nullidega",
"sortBeforeCount": "Enne loendamist järjesta tähestiku järjekorras (A-Z)",
"random": "Juhuslikult"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "Failipäringutega nõustume nüüd automaatselt. Palun arvesta, et seeläbi võivad kõik sinu kohtvõrgus saata sulle faile."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"Failipäringutega nõustume nüüd automaatselt vaid nende seadmete puhul, mis on lemmikuks märgitud.",
"Hoiatus! Kui kohtvõrgus tegutsev võimalik pahatahtlik osapool saaks kätte sinul lemmikuks märgitud seadmete võtmed ja sõrmejäljed, siis saaks sulle piiranguteta faile saata ja seega pole lahendus hetkel täiesti turvaline.",
"Aga siiski on see valik turvalisem, kui lubada kõigil sinu kohtvõrgu kasutajatel saata sulle faile ilma igasuguste piiranguteta."
]
},
"pin": {
"title": "Sisesta PIN-kood"
},
"sendModeHelp": {
"title": "Saatmisviisid",
"single": "Sellega saadame faile ühele vastuvõtjale. Peale failide saatmise lõppu eemaldame failid saatmisloendist.",
"multiple": "Sellega saadame faile mitmele vastuvõtjale. Peale failide saatmise lõppu failid jäävad saatmisloendisse alles.",
"link": "Kui failide vastuvõtjatel pole arvutis või nutiseadmes rakendust LocalSend, siis avades etteantud lingi oma veebibrauseris, saavad nad failid alla laadida."
},
"zoom": {
"title": "Võrguaadress"
}
},
"sanitization": {
"empty": "Failil peab olema nimi",
"invalid": "Failinimes on valesid tähemärke"
},
"tray": {
"@info": "Apple'i kasutajaliidese juhendid on väga ranged sõna „Sulge“ kasutamise osas.",
"open": "@:general.open",
"close": "Sulge LocalSend",
"closeWindows": "Välju"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "Sisesta PIN-kood",
"invalidPin": "Vigane PIN-kood",
"tooManyAttempts": "Liiga palju sisestuskatseid",
"rejected": "Keelatud",
"files": "Failid",
"fileName": "Failinimi",
"size": "Suurus"
},
"assetPicker": {
"@info": "Androidis ja iPhone'is kasutatava meediavalija tõlked",
"confirm": "Kinnita",
"cancel": "Katkesta",
"edit": "Muuda",
"gifIndicator": "GIF",
"loadFailed": "Laadimine ei õnnestunud",
"original": "Algne",
"preview": "Eelvaade",
"select": "Vali",
"emptyList": "Tühi loend",
"unSupportedAssetType": "Failitüüp pole toetatud.",
"unableToAccessAll": "Selles seadmes puudub ligipääs failidele",
"viewingLimitedAssetsTip": "Näed vaid faile ja albumeid, millele oled sellele rakendusele ligipääsu andnud.",
"changeAccessibleLimitedAssets": "Ligipääsetavate failide loendi uuendmiseks klõpsi",
"accessAllTip": "Rakendusel on selles nutiseadmes ligipääs vaid mõnedele failidele. Kui vajad ligipääsu kõikidele meediafailidele, siis ava seadistused ning luba vastavad õigused.",
"goToSystemSettings": "Ava süsteemi seadistused",
"accessLimitedAssets": "Jätka piiratud ligipääsuga",
"accessiblePathName": "Kasutatavad failid",
"sTypeAudioLabel": "Heli",
"sTypeImageLabel": "Pilt",
"sTypeVideoLabel": "Video",
"sTypeOtherLabel": "Muu meedia",
"sActionPlayHint": "esita",
"sActionPreviewHint": "eelvaade",
"sActionSelectHint": "vali",
"sActionSwitchPathLabel": "muuda asukohta",
"sActionUseCameraHint": "kasuta kaamerat",
"sNameDurationLabel": "kestus",
"sUnitAssetCountLabel": "kogus"
},
"networkInterfacesPage": {
"title": "Võrguliidesed",
"preview": "Eelvaade",
"whitelist": "Lubatud loend",
"blacklist": "Keelatud loend",
"info": "Vaikimisi kasutab LocalSend kõiki võrguliideseid. Kui sul on vaja, siis saad mittesoovitud võrgud siinkohal välistada ning muudatuste jõustumine eeldab serverikomponendi uuesti käivitamist."
}
}
@@ -38,7 +38,8 @@
"save": "Gorde",
"unchanged": "Aldaketarik gabe",
"unknown": "Ezezaguna",
"noItemInClipboard": "Elementua ez dago arbeletan"
"noItemInClipboard": "Arbela hutsik dago.",
"quickSaveFromFavorites": "“Gogokoetan” gorde"
},
"receiveTab": {
"title": "Eskuratu",
@@ -46,6 +47,11 @@
"ip": "IP:",
"port": "Portua:",
"alias": "Aliasa:"
},
"quickSave": {
"off": "@:general.off",
"on": "@:general.on",
"favorites": "Gogokoak"
}
},
"sendTab": {
@@ -71,11 +77,12 @@
"sendModes": {
"single": "Hartzaile bakarra",
"multiple": "Hartzaile anitz",
"link": "Lotura elkarbanatu"
"link": "URL bidez partekatu"
},
"sendModeHelp": "Azalpena",
"help": "Ziurtatu zaitez aukeratutako hartzailea zure Wi-Fi sare berean dagoela.",
"placeItems": "Aukeratu elkarbanatzeko elementuak."
"placeItems": "Aukeratu elkarbanatzeko elementuak.",
"manualSending": "Eskuzko bidalketa"
},
"settingsTab": {
"title": "Ezarpenak",
@@ -100,7 +107,9 @@
"minimizeToTray": "Itxi: txikitu lehioa",
"launchAtStartup": "Hasieratze automatikoa",
"launchMinimized": "Hasieratze automatikoa: hasi txikituta",
"animations": "Animazioak"
"animations": "Animazioak",
"saveWindowPlacementWindows": "Irteeran leihoaren kokapena gorde",
"showInContextMenu": "Erakutsi LocalSend testuinguru menuan"
},
"receive": {
"title": "Eskuratu",
@@ -108,11 +117,13 @@
"destination": "Hartzailea",
"downloads": "(Deskargak)",
"saveToGallery": "Gorde galerian",
"saveToHistory": "Gorde historialean"
"saveToHistory": "Gorde historialean",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"autoFinish": "Automatikoki amaitu"
},
"network": {
"title": "Gorria",
"needRestart": "Berrabiarazi zerbitzaria aldaketak aplikatzeko.",
"needRestart": "Berrabiarazi zerbitzaria aldaketak aplikatzeko!",
"server": "Zerbitzaria",
"alias": "Aliasa",
"deviceType": "Gailu mota",
@@ -121,9 +132,28 @@
"portWarning": "Portu berezi bat erabiltzen ari zarenez, agian ez zara beste gailuentzat ikusgarri izango (Lehenetsitako portua: {defaultPort})",
"encryption": "Zifratzea",
"multicastGroup": "Multicast",
"multicastGroupWarning": "Multicast helbide berezi bat erabiltzen ari zarenez, agian ez zara beste gailuentzat ikusgarri izango. (Lehenetsitako multicast helbidea: {defaultMulticast})"
"multicastGroupWarning": "Multicast helbide berezi bat erabiltzen ari zarenez, agian ez zara beste gailuentzat ikusgarri izango. (Lehenetsitako multicast helbidea: {defaultMulticast})",
"discoveryTimeout": "Aurkikuntza denbora muga",
"useSystemName": "Erabili sistemaren izena",
"generateRandomAlias": "Ausazko \"alias\" sortu",
"networkOptions": {
"all": "Guztiak",
"filtered": "Iragazita"
},
"network": "Sarea"
},
"advancedSettings": "Ezarpen aurreratuak"
"advancedSettings": "Ezarpen aurreratuak",
"send": {
"title": "Bidali",
"shareViaLinkAutoAccept": "Eskaerak automatikoki onartu “URL bidez partekatu” moduan"
},
"other": {
"title": "Besteak",
"support": "LocalSend Lagundu",
"donate": "Dohaintza egin",
"privacyPolicy": "Pribatutasun politika",
"termsOfUse": "Erabilera baldintzak"
}
},
"troubleshootPage": {
"title": "Konpondu arazoak",
@@ -136,8 +166,12 @@
"openFirewall": "Ireki Suhesia"
},
"noConnection": {
"symptom": "Hartzaile eta bidaltzaileak ez dute elkar ikusten eta ezin diote fitxategiak elkarri bidali",
"solution": "Bi aldeetan dago arazoa? Ziurtatu Wi-Fi sare berdinean kokatuta daudela eta konfigurazio bera elkarbanatzen dutela (portua, multicast helbidea, zifratua). Arazoa Wi-Fi sareak partaideen arteko konexioak mugatzea ere izan liteke. Horrela bada, routerrean aukera hau aktibatu"
"symptom": "Hartzaile eta bidaltzaileak ez dute elkar ikusten eta ezin diote fitxategiak elkarri bidali.",
"solution": "Bi aldeetan dago arazoa? Ziurtatu Wi-Fi sare berdinean kokatuta daudela eta konfigurazio bera elkarbanatzen dutela (portua, multicast helbidea, zifratua). Arazoa Wi-Fi sareak partaideen arteko konexioak mugatzea ere izan liteke. Horrela bada, routerrean aukera hau aktibatu."
},
"noDiscovery": {
"symptom": "Gailu honek ezin ditu beste gailurik aurkitu.",
"solution": "Ziurtatu gailu guztiak Wi-Fi sare berean daudela eta konfigurazio bera partekatzen dutela (atea, helbide multikasta, kodeketa). Helburuko gailuaren IP helbidea eskuz idatz dezakezu. Horrek balio badu, gehitu gailu hori gogokoetan, etorkizunean automatikoki aurkitu dadin."
}
},
"receiveHistoryPage": {
@@ -361,5 +395,11 @@
"sActionUseCameraHint": "erabaili kamera",
"sNameDurationLabel": "iraupena",
"sUnitAssetCountLabel": "kontaketa"
},
"sanitization": {
"invalid": "Fitxategiaren izena karaktere baliogabeak ditu"
},
"networkInterfacesPage": {
"title": "Sare interfazeak"
}
}
+527
View File
@@ -0,0 +1,527 @@
{
"locale": "فارسی",
"appName": "لوکال‌سِند",
"general": {
"accept": "پذیرفتن",
"accepted": "پذیرفته‌شده",
"add": "افزودن",
"advanced": "پیشرفته",
"cancel": "ردکردن",
"close": "بستن",
"confirm": "پذیرفتن",
"continueStr": "ادامه",
"copy": "کپی",
"copiedToClipboard": "کپی شد",
"decline": "نپذیرفتن",
"done": "انجام شد",
"delete": "حذف",
"edit": "ویرایش",
"error": "خطا",
"example": "نمونه",
"files": "فایل‌ها",
"finished": "پایان‌یافت",
"hide": "مخفی",
"off": "خاموش",
"offline": "آفلاین",
"on": "روشن",
"online": "آنلاین",
"open": "باز کردن",
"queue": "صف",
"quickSave": "ذخیره سریع",
"quickSaveFromFavorites": "ذخیره سریع برای \"موردعلاقه‌ها\"",
"renamed": "نام ویرایش‌شد",
"reset": "بازنشانی",
"restart": "راه‌اندازی دوباره",
"settings": "تنظیمات",
"skipped": "رد شد",
"start": "شروع",
"stop": "توقف",
"save": "ذخیره",
"unchanged": "بدون تغییر",
"unknown": "ناشناخته",
"noItemInClipboard": "چیزی در کلیپ‌بورد وجود ندارد."
},
"receiveTab": {
"title": "دریافت",
"infoBox": {
"ip": "آی‌پی:",
"port": "پورت:",
"alias": "نام کوتاه:"
},
"quickSave": {
"off": "@:general.off",
"favorites": "‌موردعلاقه‌ها",
"on": "@:general.on"
}
},
"sendTab": {
"title": "ارسال",
"selection": {
"title": "انتخاب شده‌ها",
"files": "فایل‌ها: {files}",
"size": "اندازه: {size}"
},
"picker": {
"file": "فایل",
"folder": "پوشه",
"media": "رسانه",
"text": "متن",
"app": "برنامه",
"clipboard": "کلیپ‌بورد"
},
"shareIntentInfo": "همچنین می‌توانید از ویژگی «هم‌رسانی» دستگاه تلفن‌همراه خود برای انتخاب آسان‌تر پرونده‌ها استفاده کنید.",
"nearbyDevices": "دستگاه‌های اطراف",
"thisDevice": "این دستگاه",
"scan": "جستجوی دستگاه‌ها",
"manualSending": "ارسال دستی",
"sendMode": "حالت ارسال",
"sendModes": {
"single": "یک دریافت کننده",
"multiple": "چندین دریافت کننده",
"link": "اشتراک گذاری از طریق لینک"
},
"sendModeHelp": "توضیح",
"help": "لطفاً مطمئن شوید که دستگاه مورد نظر به شبکه وای‌فای یکسانی وصل باشد.",
"placeItems": "موارد را برای هم‌رسانی قرار دهید."
},
"settingsTab": {
"title": "تنظیمات",
"general": {
"title": "عمومی",
"brightness": "ظاهر",
"brightnessOptions": {
"system": "سیستم",
"dark": "تیره",
"light": "روشن"
},
"color": "رنگ",
"colorOptions": {
"system": "سیستم",
"oled": "OLED"
},
"language": "زبان",
"languageOptions": {
"system": "سیستم"
},
"saveWindowPlacement": "ذخیره موقعیت پنجره پس از خروج",
"saveWindowPlacementWindows": "ذخیره موقعیت پنجره پس از خروج",
"minimizeToTray": "خروج: ارسال برنامه به سیستم تری",
"launchAtStartup": "شروع خودکار پس از ورود به سیستم",
"launchMinimized": "شروع خودکار: شروع به صورت پنجره پنهان",
"showInContextMenu": "نمایش لوکال‌سند در منوی زمینه",
"animations": "انیمیشن‌ها"
},
"receive": {
"title": "دریافت",
"quickSave": "@:general.quickSave",
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
"requirePin": "@:webSharePage.requirePin",
"autoFinish": "پایان خودکار",
"destination": "مقصد",
"downloads": "(دانلودها)",
"saveToGallery": "ذخیره رسانه در گالری",
"saveToHistory": "ذخیره در تاریخچه"
},
"send": {
"title": "ارسال",
"shareViaLinkAutoAccept": "اشتراک‌گذاری از طریق لینک: تایید خودکار"
},
"network": {
"title": "شبکه",
"needRestart": "برای اعمال تنظیمات، سرور را مجدد راه‌اندازی کنید!",
"server": "سرور",
"alias": "نام کوتاه",
"deviceType": "نوع دستگاه",
"deviceModel": "مدل دستگاه",
"port": "پورت",
"discoveryTimeout": "مدت کاوش",
"useSystemName": "استفاده از نام سیستم",
"generateRandomAlias": "ایجاد نام مستعار تصادفی",
"portWarning": "ممکن است به دلیل استفاده از یک پورت سفارشی، دستگاه‌های دیگر شما را شناسایی نکنند (پیشفرض : {defaultPort})",
"encryption": "رمزنگاری",
"multicastGroup": "چندپخشی",
"multicastGroupWarning": "ممکن است به دلیل استفاده از چندپخشی سفارشی، دستگاه‌های دیگر شما را شناسایی نکنند (پیشفرض: {defaultMulticast})",
"network": "شبکه",
"networkOptions": {
"all": "همه",
"filtered": "فیلتر شده"
}
},
"other": {
"title": "سایر",
"support": "حمایت از لوکال‌سند",
"donate": "کمک مالی",
"privacyPolicy": "سیاست حفظ حریم خصوصی",
"termsOfUse": "شرایط استفاده"
},
"advancedSettings": "تنظیمات پیشرفته"
},
"troubleshootPage": {
"title": "عیب یابی",
"subTitle": "این برنامه مطابق انتظار کار نمی‌کند؟ در اینجا می‌توانید راه حل‌های رایج را بیابید.",
"solution": "راه حل:",
"fixButton": "تعمیر خودکار",
"firewall": {
"symptom": "این برنامه می‌تواند پرونده‌ها را به دستگاه‌های دیگر ارسال کند اما دستگاه‌های دیگر نمی‌توانند پرونده‌ها را به این دستگاه ارسال کنند.",
"solution": "این مشکل به احتمال زیاد مربوط به تنظیمات فایروال است. شما می‌توانید با دادن مجوز به اتصالات ورودی این مشکل را حل کنید (UDP و TCP) در پورت {port}.",
"openFirewall": "بازکردن فایروال"
},
"noDiscovery": {
"symptom": "این دستگاه نمی‌تواند دستگاه‌های دیگر را پیدا کند.",
"solution": "مطمئن شوید که هر دو دستگاه به یک شبکه وای‌فای متصل هستند و پیکربندی یکسانی دارند (پورت، آدرس چندپخشی، رمزنگاری). سعی کنید آدرس آی‌پی دستگاه مورد نظر را به صورت دستی تایپ کنید. اگر جواب داد، این دستگاه را به موارد موردعلاقه اضافه کنید تا در آینده به طور خودکار کشف شود."
},
"noConnection": {
"symptom": "هر دو دستگاه نمی‌توانند یکدیگر را پیدا کرده و پرونده‌ها را هم‌رسانی کنند.",
"solution": "آیا مشکل در هر دو طرف وجود دارد؟ اگر چنین است، باید مطمئن شوید که هر دو دستگاه در یک شبکه Wi-Fi متصل هستند و تنظیمات یکسانی دارند (پورت، آدرس چندپخشی، رمزگذاری). ممکن است شبکه Wi-Fi اجازه‌ی ارتباط بین شرکت‌کنندگان را ندهد، به دلیل فعال بودن قابلیت ایزوله‌سازی نقطه دسترسی (AP Isolation). در این صورت باید این گزینه را در روتر غیرفعال کنید."
}
},
"receiveHistoryPage": {
"title": "تاریخچه",
"openFolder": "باز کردن پوشه",
"deleteHistory": "حذف تاریخچه",
"empty": "تاریخچه خالی است.",
"entryActions": {
"open": "باز کردن فایل",
"showInFolder": "نمایش پوشه",
"info": "اطلاعات",
"deleteFromHistory": "حذف از تاریخچه"
}
},
"apkPickerPage": {
"title": "برنامه (APK)",
"excludeSystemApps": "شامل نشدن برنامه‌های سیستمی",
"excludeAppsWithoutLaunchIntent": "شامل نشدن برنامه‌های غیر اجرایی",
"apps": "{n} برنامه"
},
"selectedFilesPage": {
"deleteAll": "حذف همه"
},
"receivePage": {
"subTitle": {
"one": "می‌خواهد برای شما یک فایل ارسال کند",
"other": "می‌خواهد برای شما {n} فایل ارسال کند"
},
"subTitleMessage": "به شما پیام داد:",
"subTitleLink": "برای شما یک لینک ارسال کرد:",
"canceled": "فرستنده درخواست را لغو کرد."
},
"receiveOptionsPage": {
"title": "گزینه‌ها",
"destination": "@:settingsTab.receive.destination",
"appDirectory": "(پوشه لوکال‌سند)",
"saveToGallery": "@:settingsTab.receive.saveToGallery",
"saveToGalleryOff": "به دلیل وجود پوشه‌ها به طور خودکار خاموش می‌شود."
},
"sendPage": {
"waiting": "در انتظار پاسخ…",
"rejected": "گیرنده درخواست را رد کرد.",
"tooManyAttempts": "@:web.tooManyAttempts",
"busy": "گیرنده با درخواست دیگری مشغول است."
},
"progressPage": {
"titleSending": "ارسال فایل‌ها",
"titleReceiving": "دریافت فایل‌ها",
"savedToGallery": "در تصاویر ذخیره شد",
"total": {
"title": {
"sending": "مجموع پیشرفت ({time})",
"finishedError": "با خطا مواجه شد",
"canceledSender": "توسط فرستنده لغو شد",
"canceledReceiver": "توسط گیرنده لغو شد"
},
"count": "فایل‌ها: {curr} / {n}",
"size": "حجم: {curr} / {n}",
"speed": "سرعت: {speed}/s"
}
},
"webSharePage": {
"title": "اشتراک گذاری از طریق لینک",
"loading": "در حال راه‌اندازی سرور…",
"stopping": "در حال توقف سرور…",
"error": "هنگام راه‌اندازی سرور خطایی رخ داد.",
"openLink": {
"one": "باز کردن لینک در مرورگر:",
"other": "باز کردن لینک‌ها در مرورگر:"
},
"requests": "درخواست‌ها",
"noRequests": "هنوز درخواستی وجود ندارد.",
"encryption": "@:settingsTab.network.encryption",
"autoAccept": "درخواست‌ها به طور خودکار پذیرفته می‌شوند",
"requirePin": "نیاز به پین",
"pinHint": "پین \"{pin}\" می‌باشد",
"encryptionHint": "لوکال‌سند از یک گواهی خودامضا استفاده می‌کند. شما باید آن را در مرورگر قبول کنید.",
"pendingRequests": "درخواست‌های در حال انتظار: {n}"
},
"aboutPage": {
"title": "درباره لوکال‌سند",
"description": [
"لوکال‌سند یک برنامه آزاد و متن‌باز است که به شما امکان می‌دهد پرونده‌ها و پیام‌ها را به‌طور ایمن با دستگاه‌های اطراف از طریق شبکه محلی خود و بدون نیاز به اینترنت هم‌رسانی کنید.",
"این برنامه برای سیستم عامل‌های اندروید، آی او اس، مک او اس، ویندوز و لینوکس در دسترس است. شما می‌توانید با مراجعه به وبگاه رسمی برنامه کلیه روش‌های دانلود را مشاهده نمایید."
],
"author": "نویسنده",
"contributors": "مشارکت کنندگان",
"packagers": "بسته‌بندی‌ها",
"translators": "مترجمان"
},
"donationPage": {
"title": "کمک مالی",
"info": "لوکال‌سند آزاد، متن‌باز و فاقد هرگونه تبلیغات است. اگر به این برنامه علاقه‌مندید، می‌توانید با کمک مالی از توسعه آن حمایت کنید.",
"donate": "کمک مالی {amount}",
"thanks": "بسیار از شما سپاسگزاریم!",
"restore": "بازیابی خرید"
},
"changelogPage": {
"title": "تاریخچه تغییرات برنامه"
},
"aliasGenerator(ignoreMissing, ignoreGpt)": {
"@info": "مناطق زبانی مختلف ممکن است واژه‌های متفاوتی داشته باشند، ممکن است تطابق 1:1 وجود نداشته باشد",
"adjectives": [
"ستودنی",
"زیبا",
"بزرگ",
"درخشان",
"تمیز",
"باهوش",
"باحال",
"بامزه",
"کلک",
"مصمم",
"باانرژی",
"چابک",
"شگفت‌انگیز",
"سریع",
"شایسته",
"سرحال",
"خوب",
"دلنشین",
"باشکوه",
"خوشتیپ",
"جذاب",
"مهربون",
"دوست‌داشتنی",
"مبهم",
"بی‌نظیر",
"باادب",
"صبور",
"زیبا",
"نیرومند",
"مایه‌دار",
"اسرارآمیز",
"باهوش",
"سرسخت",
"خاص",
"خوش‌فکر",
"قدرتمند",
"منظم",
"خردمند"
],
"fruits": [
"سیب",
"آووکادو",
"موز",
"توت",
"بلوبری",
"کلم",
"هویج",
"گیلاس",
"نارگیل",
"انگور",
"لیمو",
"کاهو",
"انبه",
"خربزه",
"قارچ",
"پیاز",
"پرتقال",
"پاپایا",
"هلو",
"گلابی",
"آناناس",
"سیب‌زمینی",
"کدوتنبل",
"تمشک",
"توت‌فرنگی",
"گوجه"
],
"combination": "{fruit} {adjective}",
"@combination": "In some languages, the adjective must be last."
},
"dialogs": {
"addFile": {
"title": "افزودن به انتخاب شده‌ها",
"content": "چه چیزی می‌خواهید اضافه کنید؟"
},
"openFile": {
"title": "باز کردن فایل",
"content": "آیا می‌خواهید فایل دریافتی را باز کنید؟"
},
"addressInput": {
"title": "آدرس را وارد کنید",
"hashtag": "هشتگ",
"ip": "آدرس آی‌پی",
"recentlyUsed": "اخیرا استفاده شده: "
},
"cancelSession": {
"title": "‌‌لغو انتقال فایل",
"content": "واقعاً می‌خواهید انتقال فایل را لغو کنید؟"
},
"cannotOpenFile": {
"title": "نمی‌تواند فایل را باز کند",
"content": "نمی‌توان فایل \"{file}\" را باز کرد. آیا این فایل منتقل، تغییر نام یا حذف شده است؟"
},
"encryptionDisabledNotice": {
"title": "رمزنگاری غیرفعال شد",
"content": "اکنون ارتباط از طریق پروتکل HTTP رمزنگاری نشده صورت می‌گیرد. برای استفاده از HTTPS، رمزنگاری را دوباره فعال کنید."
},
"errorDialog": {
"title": "@:general.error"
},
"favoriteDialog": {
"title": "علاقه‌مندی‌ها",
"noFavorites": "هنوز دستگاه مورد علاقه‌ای انتخاب نشده است.",
"addFavorite": "افزودن"
},
"favoriteDeleteDialog": {
"title": "حذف از علاقه‌مندی‌ها",
"content": "واقعاً می‌خواهید از علاقه‌مندی‌ها حذف کنید \"{name}\"?"
},
"favoriteEditDialog": {
"titleAdd": "افزودن به علاقه‌مندی‌ها",
"titleEdit": "تنظیمات",
"name": "نام مستعار",
"auto": "(خودکار)",
"ip": "آدرس آی پی",
"port": "پورت"
},
"fileInfo": {
"title": "مشخصات فایل",
"fileName": "نام فایل:",
"path": "مسیر:",
"size": "حجم:",
"sender": "فرستنده:",
"time": "زمان:"
},
"fileNameInput": {
"title": "نام فایل را وارد کنید",
"original": "اصلی: {original}"
},
"historyClearDialog": {
"title": "پاکسازی تاریخچه",
"content": "واقعاً می‌خواهید کل تاریخچه را حذف کنید؟"
},
"localNetworkUnauthorized": {
"title": "@:dialogs.noPermission.title",
"description": "لوکال‌سند نمی‌تواند دستگاه‌های دیگر را بدون داشتن مجوز اسکن شبکه محلی پیدا کند. لطفاً این مجوز را در تنظیمات به برنامه بدهید.",
"gotoSettings": "تنظیمات"
},
"messageInput": {
"title": "پیام را بنویسید",
"multiline": "چند خطی"
},
"noFiles": {
"title": "فایلی انتخاب نشده",
"content": "لطفا حداقل یک پرونده را انتخاب کنید."
},
"noPermission": {
"title": "بدون مجوز",
"content": "شما مجوزهای مورد نیاز را اعطا نکرده‌اید. لطفاً آنها را در تنظیمات مجوزدهی کنید."
},
"notAvailableOnPlatform": {
"title": "در دسترس نیست",
"content": "این ویژگی فقط در دسترس است در:"
},
"qr": {
"title": "QR کد"
},
"quickActions": {
"title": "اقدامات سریع",
"counter": "شمارنده",
"prefix": "پیشوند",
"padZero": "همگام سازی نام‌ها با افزودن صفر",
"sortBeforeCount": "از قبل بر اساس حروف الفبا مرتب کنید",
"random": "تصادفی"
},
"quickSaveNotice": {
"title": "@:general.quickSave",
"content": "درخواست‌ها به صورت خودکار پذیرفته می‌شوند. توجه داشته باشید که همه افراد در شبکه محلی می‌توانند برای شما پرونده ارسال کنند."
},
"quickSaveFromFavoritesNotice": {
"title": "@:general.quickSaveFromFavorites",
"content": [
"درخواست‌ها به طور خودکار از دستگاه‌های موجود در فهرست موردعلاقه‌ها پذیرفته می‌شود.",
"هشدار: این روش در حال حاضر کاملاً ایمن نیست، زیرا در صورت دسترسی هکر به دستگاه‌های موجود در فهرست موردعلاقه‌ها، می‌تواند بدون محدودیت برای شما پرونده ارسال کند.",
"با این حال، این گزینه هنوز هم ایمن‌تر از اجازه دادن به همه کاربران در شبکه محلی برای ارسال پرونده بدون محدودیت است."
]
},
"pin": {
"title": "پین را وارد کنید"
},
"sendModeHelp": {
"title": "حالت‌های ارسال",
"single": "پرونده‌ها را به یک گیرنده ارسال می‌کند. فهرست انتخاب شده‌ها پس از اتمام انتقال پرونده پاک می‌شود.",
"multiple": "پرونده‌ها را برای چندین گیرنده ارسال می‌کند. فهرست انتخاب شده‌ها پاک نخواهد شد.",
"link": "گیرندگانی که لوکال‌سند را نصب نکرده اند، می‌توانند پرونده‌ها را با باز کردن پیوند در مرورگر خود دانلود کنند."
},
"zoom": {
"title": "آدرس اینترنتی"
}
},
"sanitization": {
"empty": "نام فایل نمی‌تواند خالی باشد",
"invalid": "نام فایل حاوی کاراکترهای نامعتبر است"
},
"tray": {
"@info": "Apple Guidelines are very strict about the 'close' wording.",
"open": "@:general.open",
"close": "خروج از لوکال‌سند",
"closeWindows": "خروج"
},
"web": {
"waiting": "@:sendPage.waiting",
"enterPin": "پین را وارد کنید",
"invalidPin": "پین اشتباه است",
"tooManyAttempts": "تلاش‌های بیش از اندازه",
"rejected": "پذیرفته نشد",
"files": "فایل‌ها",
"fileName": "نام فایل",
"size": "حجم"
},
"assetPicker": {
"@info": "Translations for the Media selection tool for Android and Iphone",
"confirm": "تایید",
"cancel": "لغو",
"edit": "ویرایش",
"gifIndicator": "GIF",
"loadFailed": "بارگذاری ناموفق",
"original": "اصلی",
"preview": "پیش نمایش",
"select": "انتخاب",
"emptyList": "لیست خالی",
"unSupportedAssetType": "نوع پرونده پشتیبانی نشده.",
"unableToAccessAll": "قادر به دسترسی به تمام فایل‌های موجود در دستگاه نیست",
"viewingLimitedAssetsTip": "فقط پرونده‌ها و آلبوم‌های قابل دسترسی برنامه را مشاهده کنید.",
"changeAccessibleLimitedAssets": "برای به‌روزرسانی فایل‌های در دسترس کلیک کنید",
"accessAllTip": "برنامه فقط می‌تواند به برخی از پرونده‌های دستگاه دسترسی داشته باشد. به تنظیمات سیستم بروید و به برنامه اجازه دهید به تمام رسانه‌های موجود در دستگاه دسترسی داشته باشد.",
"goToSystemSettings": "رفتن به تنظیمات سیستم",
"accessLimitedAssets": "با دسترسی محدود ادامه دهید",
"accessiblePathName": "فایل‌های قابل دسترسی",
"sTypeAudioLabel": "صوت",
"sTypeImageLabel": "تصویر",
"sTypeVideoLabel": "ویدیو",
"sTypeOtherLabel": "دیگر رسانه‌ها",
"sActionPlayHint": "پخش",
"sActionPreviewHint": "پیش نمایش",
"sActionSelectHint": "انتخاب",
"sActionSwitchPathLabel": "تغییر مسیر",
"sActionUseCameraHint": "از دوربین استفاده کنید",
"sNameDurationLabel": "مدت زمان",
"sUnitAssetCountLabel": "شمردن"
},
"networkInterfacesPage": {
"title": "رابط‌های شبکه",
"info": "به طور پیش فرض، LocalSend از تمام رابط های شبکه موجود استفاده می کند. در اینجا می توانید شبکه های ناخواسته را حذف کنید. برای اعمال تغییرات باید سرور را ریستارت کنید.",
"preview": "پیشنمایش",
"whitelist": "لیست سفید",
"blacklist": "لیست سیاه"
}
}

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