Compare commits

..

21 Commits

Author SHA1 Message Date
Jakob Borg
27bba2c0c2 lib/upgrade: Send OS version header to upgrade server (#9663)
This adds a header with the operating system version, verbatim in
whatever format the operating system reports it, to the upgrade check.
The intention is that the upgrade server can use this information to
filter out (or maybe just mark) potentially unsupported upgrades.
2024-08-28 08:32:03 +02:00
Syncthing Release Automation
9ef37e1485 gui, man, authors: Update docs, translations, and contributors 2024-08-19 03:45:18 +00:00
Simon Frei
7517d18fbb lib/fs: Put the caseFS as the outermost layer (#9648)
Reasoning in comments. The main motivation is to avoid all the case
checks when walking the filesystem.
2024-08-13 10:59:31 +02:00
André Colomb
42d0fee536 gui: Add Irish (ga) translation template (#9646)
Based on user request from Weblate, user `@aindriu80`.

Looks promising based on the profile:
https://hosted.weblate.org/user/aindriu80/ Not sure whether almost
30.000 translations in about one month is realistic for a human though.
2024-08-12 13:32:29 +02:00
Syncthing Release Automation
2ca9d3b5c5 gui, man, authors: Update docs, translations, and contributors 2024-08-12 03:45:16 +00:00
Tommy van der Vorst
9cde068f2a lib/syncthing: Add wrapper for access to model (#9627)
### Purpose

Wrap access to Model for users that use the syncthing Go package. See
discussion:
https://github.com/syncthing/syncthing/pull/9619#pullrequestreview-2212484910

### Testing

It works with the iOS app. Other than that, there are no current users
of this API (to my knowledge) as Model was only exposed recently form
the iOS app.
2024-08-11 20:20:43 +02:00
Gusted
1243083831 cli: Remove go-shlex dependency (#9644) 2024-08-11 11:37:18 +02:00
Gusted
356c5055ad lib/sha256: Remove it (#9643)
### Purpose

Remove the `lib/sha256` package, because it's no longer necessary. Go's
standard library now has the same performance and is on par with
`sha256-simd` since [Since Go
1.21](1a64574f42).
Therefore using `sha256-simd` has no benefits anymore.

ARM already has optimized sha256 assembly code since
7b8a7f8272,
`sha256-simd` published their results before that optimized assembly was
implemented,
f941fedda8.
The assembly looks very similar and the benchmarks in the Go commit
match that of `sha256-simd`.

This patch removes all of the related code of `lib/sha256` and makes
`crypto/sha256` the 'default'.

Benchmark of `sha256-simd` and `crypto/sha256`:
<details>

```
cpu: AMD Ryzen 5 3600X 6-Core Processor
                │  simd.txt   │               go.txt                │
                │   sec/op    │    sec/op     vs base               │
Hash/8Bytes-12    63.25n ± 1%    73.38n ± 1%  +16.02% (p=0.002 n=6)
Hash/64Bytes-12   98.73n ± 1%   105.30n ± 1%   +6.65% (p=0.002 n=6)
Hash/1K-12        567.2n ± 1%    572.8n ± 1%   +0.99% (p=0.002 n=6)
Hash/8K-12        4.062µ ± 1%    4.062µ ± 1%        ~ (p=0.396 n=6)
Hash/1M-12        512.1µ ± 0%    510.6µ ± 1%        ~ (p=0.485 n=6)
Hash/5M-12        2.556m ± 1%    2.564m ± 0%        ~ (p=0.093 n=6)
Hash/10M-12       5.112m ± 0%    5.127m ± 0%        ~ (p=0.093 n=6)
geomean           13.82µ         14.27µ        +3.28%

                │   simd.txt   │               go.txt                │
                │     B/s      │     B/s       vs base               │
Hash/8Bytes-12    120.6Mi ± 1%   104.0Mi ± 1%  -13.81% (p=0.002 n=6)
Hash/64Bytes-12   618.2Mi ± 1%   579.8Mi ± 1%   -6.22% (p=0.002 n=6)
Hash/1K-12        1.682Gi ± 1%   1.665Gi ± 1%   -0.98% (p=0.002 n=6)
Hash/8K-12        1.878Gi ± 1%   1.878Gi ± 1%        ~ (p=0.310 n=6)
Hash/1M-12        1.907Gi ± 0%   1.913Gi ± 1%        ~ (p=0.485 n=6)
Hash/5M-12        1.911Gi ± 1%   1.904Gi ± 0%        ~ (p=0.093 n=6)
Hash/10M-12       1.910Gi ± 0%   1.905Gi ± 0%        ~ (p=0.093 n=6)
geomean           1.066Gi        1.032Gi        -3.18%
```

</details>


### Testing

Compiled and tested on Linux.

### Documentation

https://github.com/syncthing/docs/pull/874
2024-08-10 12:58:20 +01:00
Jakob Borg
19693734a3 build: Update dependencies (#9640) 2024-08-09 16:04:51 +02:00
Ross Smith II
17e60b9e0c Chmod -x non-executable files (fixes #9629) (#9630)
Fixed via
```
git ls-files -s | grep 100755 | grep -E -v '(run|sh)$' | cut -f 2 | xargs git update-index --chmod -x
```
See #9629.
2024-08-05 18:32:23 +02:00
Syncthing Release Automation
ac22b2d00a gui, man, authors: Update docs, translations, and contributors 2024-08-05 03:45:25 +00:00
Tommy van der Vorst
de0b4270df all: minimal set of changes for iOS app (#9619)
### Purpose

This PR contains the set of changes needed to make Syncthing work on iOS
for [my iOS app for
Syncthing](https://github.com/pixelspark/sushitrain).

Most changes originate from [the Mobius Sync
fork](http://github.com/MobiusSync/syncthing/tree/ios). I have removed
the changes from their fork that are not strictly needed for my app
(i.e. their changes to the GUI and command line utilities, for instance)
and squashed it all in a single commit.

In summary, the changes are:

* Resolve non-absolute paths to the 'Documents' folder (basically the
only one an app can/should write user data to by default on iOS)
* Tweaking of build flags/conditions for iOS (i.e. determine which
basicfs_watch, ignoreresult variant to build for iOS)
* Disable upgrade mechanism on iOS
* Make `RequestGlobal` and `PullerProgress` public symbols
* Expose syncthing.app's Model instance (app.M)
* Add no-op stub for SetLowPriority on iOS

I would very much appreciate these changes to be (eventually) merged to
mainline syncthing, as this would allow my iOS app to track the mainline
source code directly and removes the need (for me at least) for
maintaining a separate fork. Perhaps the Mobius folks can also benefit
from this (although as noted this branch does not contain their changes
to e.g. the GUI).

### Testing

This branch has been tested with the iOS app and appears to work fine.
The full set of MobiusSync changes has been used before with success.

### Screenshots

n/a

### Documentation

There should be no visible changes for users due to this set of changes.

---------

Co-authored-by: Simon Pickup <simon@pickupinfinity.com>
2024-07-31 07:31:14 +02:00
Syncthing Release Automation
e738af7c56 gui, man, authors: Update docs, translations, and contributors 2024-07-29 03:45:25 +00:00
Syncthing Release Automation
a28441a9bf gui, man, authors: Update docs, translations, and contributors 2024-07-22 03:45:28 +00:00
Simon Frei
2e313716e5 etc: Remove restart on suspend systemd service (ref #8448) (#9611)
The option to do the same in our own monitor process has been removed a
long time ago.
2024-07-17 09:29:49 +03:00
Syncthing Release Automation
0b5ff1f5f7 gui, man, authors: Update docs, translations, and contributors 2024-07-15 03:45:20 +00:00
Simon Frei
0fe6d97d3d lib/fs: Add missing locks to fakeFile methods (fixes #9499) (#9603)
fixes #9499
2024-07-09 10:33:30 +02:00
Simon Frei
0756e42a85 lib/api: Increase test request timeout (fixes #9455) (#9602)
Fixes #9455
2024-07-09 00:37:44 +02:00
Syncthing Release Automation
13ebe1c87f gui, man, authors: Update docs, translations, and contributors 2024-07-08 03:45:16 +00:00
Simon Frei
aea7fa5f22 lib/ignore: Remove unused patterns in cache (#9601)
Tiny cleanup I noticed while trying to fix/test another issue
(https://github.com/syncthing/syncthing/pull/9600). I shortly tried to
figure out what it was used for in the past, but gave up without
results.
2024-07-02 11:01:00 +00:00
Simon Frei
403ce7e597 lib/ignore: Fix caching of filenames with path separators on windows (#9600)
Previously we queried cache with backslashes, and stored entries with
slashes. As in no cache hits ever for non-toplevel files. I also
eventually remembered that cache is disabled by default, so this is a
bit pointless, but still right :P
2024-07-02 10:58:06 +00:00
99 changed files with 2160 additions and 720 deletions

View File

@@ -141,6 +141,7 @@ greatroar <61184462+greatroar@users.noreply.github.com>
Greg <gco@jazzhaiku.com>
guangwu <guoguangwu@magic-shield.com>
gudvinr <gudvinr@gmail.com>
Gusted <postmaster@gusted.xyz> <williamzijl7@hotmail.com>
Han Boetes <han@boetes.org>
HansK-p <42314815+HansK-p@users.noreply.github.com>
Harrison Jones (harrisonhjones) <harrisonhjones@users.noreply.github.com>
@@ -305,6 +306,7 @@ Severin von Wnuck-Lipinski <ss7@live.de>
Shaarad Dalvi <60266155+shaaraddalvi@users.noreply.github.com> <shdalv@microsoft.com>
Simon Frei (imsodin) <freisim93@gmail.com>
Simon Mwepu <simonmwepu@gmail.com>
Simon Pickup <simon@pickupinfinity.com>
Sly_tom_cat <slytomcat@mail.ru>
Stefan Kuntz (Stefan-Code) <stefan.github@gmail.com> <Stefan.github@gmail.com>
Stefan Tatschner (rumpelsepp) <stefan@sevenbyte.org> <rumpelsepp@sevenbyte.org> <stefan@rumpelsepp.org>
@@ -325,6 +327,7 @@ Tobias Tom (tobiastom) <t.tom@succont.de>
Tom Jakubowski <tom@crystae.net>
Tomasz Wilczyński <5626656+tomasz1986@users.noreply.github.com> <twilczynski@naver.com>
Tommy Thorn <tommy-github-email@thorn.ws>
Tommy van der Vorst <tommy-github@pixelspark.nl> <tommy@pixelspark.nl>
Tully Robinson (tojrobinson) <tully@tojr.org>
Tyler Brazier (tylerbrazier) <tyler@tylerbrazier.com>
Tyler Kropp <kropptyler@gmail.com>

View File

@@ -118,7 +118,6 @@ var targets = map[string]target{
{src: "man/syncthing-security.7", dst: "deb/usr/share/man/man7/syncthing-security.7", perm: 0644},
{src: "man/syncthing-versioning.7", dst: "deb/usr/share/man/man7/syncthing-versioning.7", perm: 0644},
{src: "etc/linux-systemd/system/syncthing@.service", dst: "deb/lib/systemd/system/syncthing@.service", perm: 0644},
{src: "etc/linux-systemd/system/syncthing-resume.service", dst: "deb/lib/systemd/system/syncthing-resume.service", perm: 0644},
{src: "etc/linux-systemd/user/syncthing.service", dst: "deb/usr/lib/systemd/user/syncthing.service", perm: 0644},
{src: "etc/linux-sysctl/30-syncthing.conf", dst: "deb/usr/lib/sysctl.d/30-syncthing.conf", perm: 0644},
{src: "etc/firewall-ufw/syncthing", dst: "deb/etc/ufw/applications.d/syncthing", perm: 0644},

View File

@@ -7,6 +7,7 @@
package main
import (
"crypto/sha256"
"errors"
"flag"
"fmt"
@@ -16,7 +17,6 @@ import (
"path/filepath"
_ "github.com/syncthing/syncthing/lib/automaxprocs"
"github.com/syncthing/syncthing/lib/sha256"
)
func main() {

View File

@@ -14,6 +14,7 @@ package main
import (
"context"
"crypto/sha256"
"encoding/json"
"fmt"
"io"
@@ -29,7 +30,6 @@ import (
"github.com/prometheus/client_golang/prometheus/promhttp"
_ "github.com/syncthing/syncthing/lib/automaxprocs"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/sha256"
"github.com/syncthing/syncthing/lib/ur"
)

View File

@@ -9,14 +9,13 @@ package main
import (
"bytes"
"compress/gzip"
"crypto/sha256"
"fmt"
"net"
"net/http"
"os"
"path/filepath"
"time"
"github.com/syncthing/syncthing/lib/sha256"
)
// userIDFor returns a string we can use as the user ID for the purpose of

View File

@@ -7,6 +7,7 @@
package main
import (
"crypto/sha256"
"flag"
"fmt"
"io"
@@ -14,7 +15,6 @@ import (
"time"
_ "github.com/syncthing/syncthing/lib/automaxprocs"
"github.com/syncthing/syncthing/lib/sha256"
)
func main() {

View File

@@ -12,7 +12,7 @@ import (
"os"
"github.com/alecthomas/kong"
"github.com/flynn-archive/go-shlex"
"github.com/kballard/go-shellquote"
"github.com/syncthing/syncthing/cmd/syncthing/cmdutil"
"github.com/syncthing/syncthing/lib/config"
@@ -67,7 +67,7 @@ func (*stdinCommand) Run() error {
fmt.Println("Reading commands from stdin...", args)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
input, err := shlex.Split(scanner.Text())
input, err := shellquote.Split(scanner.Text())
if err != nil {
return fmt.Errorf("parsing input: %w", err)
}

View File

@@ -9,6 +9,7 @@ package main
import (
"bytes"
"context"
"crypto/sha256"
"fmt"
"net/http"
"os"
@@ -16,8 +17,6 @@ import (
"sort"
"strings"
"time"
"github.com/syncthing/syncthing/lib/sha256"
)
const (

View File

@@ -92,11 +92,6 @@ above.
STLOCKTHRESHOLD Used for debugging internal deadlocks; sets debug
sensitivity. Use only under direction of a developer.
STHASHING Select the SHA256 hashing package to use. Possible values
are "standard" for the Go standard library implementation,
"minio" for the github.com/minio/sha256-simd implementation,
and blank (the default) for auto detection.
STVERSIONEXTRA Add extra information to the version string in logs and the
version line in the GUI. Can be set to the name of a wrapper
or tool controlling syncthing to communicate this to the end

View File

@@ -241,22 +241,6 @@ func copyStderr(stderr io.Reader, dst io.Writer) {
if panicFd == nil {
dst.Write([]byte(line))
if strings.Contains(line, "SIGILL") {
l.Warnln(`
*******************************************************************************
* Crash due to illegal instruction detected. This is most likely due to a CPU *
* incompatibility with the high performance hashing package. Switching to the *
* standard hashing package instead. Please report this issue at: *
* *
* https://github.com/syncthing/syncthing/issues *
* *
* Include the details of your CPU. *
*******************************************************************************
`)
os.Setenv("STHASHING", "standard")
return
}
if strings.HasPrefix(line, "panic:") || strings.HasPrefix(line, "fatal error:") {
panicFd, err = os.Create(locations.GetTimestamped(locations.PanicLog))
if err != nil {

0
cmd/ursrv/serve/static/bootstrap/css/bootstrap-theme.min.css vendored Executable file → Normal file
View File

0
cmd/ursrv/serve/static/bootstrap/js/bootstrap.min.js vendored Executable file → Normal file
View File

View File

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

View File

View File

@@ -1,11 +0,0 @@
[Unit]
Description=Restart Syncthing after resume
Documentation=man:syncthing(1)
After=sleep.target
[Service]
Type=oneshot
ExecStart=-/usr/bin/pkill -HUP -x syncthing
[Install]
WantedBy=sleep.target

44
go.mod
View File

@@ -7,10 +7,9 @@ require (
github.com/alecthomas/kong v0.9.0
github.com/calmh/incontainer v1.0.0
github.com/calmh/xdr v1.1.0
github.com/ccding/go-stun v0.1.4
github.com/ccding/go-stun v0.1.5
github.com/chmduquesne/rollinghash v4.0.0+incompatible
github.com/d4l3k/messagediff v1.2.1
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568
github.com/getsentry/raven-go v0.2.0
github.com/go-ldap/ldap/v3 v3.4.8
github.com/gobwas/glob v0.2.3
@@ -25,15 +24,14 @@ require (
github.com/maruel/panicparse/v2 v2.3.1
github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1
github.com/maxmind/geoipupdate/v6 v6.1.0
github.com/minio/sha256-simd v1.0.1
github.com/miscreant/miscreant.go v0.0.0-20200214223636-26d376326b75
github.com/oschwald/geoip2-golang v1.11.0
github.com/pierrec/lz4/v4 v4.1.21
github.com/prometheus/client_golang v1.19.1
github.com/quic-go/quic-go v0.44.0
github.com/quic-go/quic-go v0.46.0
github.com/rabbitmq/amqp091-go v1.10.0
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
github.com/shirou/gopsutil/v3 v3.24.5
github.com/shirou/gopsutil/v4 v4.24.7
github.com/syncthing/notify v0.0.0-20210616190510-c6b7342338d2
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d
github.com/thejerf/suture/v4 v4.0.5
@@ -41,13 +39,13 @@ require (
github.com/vitrun/qart v0.0.0-20160531060029-bf64b92db6b0
github.com/willabides/kongplete v0.4.0
go.uber.org/automaxprocs v1.5.3
golang.org/x/crypto v0.23.0
golang.org/x/net v0.25.0
golang.org/x/sys v0.20.0
golang.org/x/text v0.15.0
golang.org/x/time v0.5.0
golang.org/x/tools v0.21.0
google.golang.org/protobuf v1.34.1
golang.org/x/crypto v0.26.0
golang.org/x/net v0.28.0
golang.org/x/sys v0.24.0
golang.org/x/text v0.17.0
golang.org/x/time v0.6.0
golang.org/x/tools v0.24.0
google.golang.org/protobuf v1.34.2
)
require (
@@ -62,32 +60,36 @@ require (
github.com/go-asn1-ber/asn1-ber v1.5.7 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/gofrs/flock v0.8.1 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/pprof v0.0.0-20240528025155-186aa0362fba // indirect
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/nxadm/tail v1.4.11 // indirect
github.com/onsi/ginkgo/v2 v2.19.0 // indirect
github.com/oschwald/maxminddb-golang v1.13.0 // indirect
github.com/onsi/ginkgo/v2 v2.20.0 // indirect
github.com/oschwald/maxminddb-golang v1.13.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/posener/complete v1.2.3 // indirect
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.54.0 // indirect
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/riywo/loginshell v0.0.0-20200815045211-7d26008be1ab // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/stretchr/testify v1.9.0 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.uber.org/mock v0.4.0 // indirect
golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect
golang.org/x/mod v0.17.0 // indirect
golang.org/x/sync v0.7.0 // indirect
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa // indirect
golang.org/x/mod v0.20.0 // indirect
golang.org/x/sync v0.8.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

100
go.sum
View File

@@ -19,8 +19,8 @@ github.com/calmh/incontainer v1.0.0 h1:g2cTUtZuFGmMGX8GoykPkN1Judj2uw8/3/aEtq4Z/
github.com/calmh/incontainer v1.0.0/go.mod h1:eOhqnw15c9X+4RNBe0W3HlUZFfX16O0EDsCOInTndHY=
github.com/calmh/xdr v1.1.0 h1:U/Dd4CXNLoo8EiQ4ulJUXkgO1/EyQLgDKLgpY1SOoJE=
github.com/calmh/xdr v1.1.0/go.mod h1:E8sz2ByAdXC8MbANf1LCRYzedSnnc+/sXXJs/PVqoeg=
github.com/ccding/go-stun v0.1.4 h1:lC0co3Q3vjAuu2Jz098WivVPBPbemYFqbwE1syoka4M=
github.com/ccding/go-stun v0.1.4/go.mod h1:cCZjJ1J3WFSJV6Wj8Y9Di8JMTsEXh6uv2eNmLzKaUeM=
github.com/ccding/go-stun v0.1.5 h1:qEM367nnezmj7dv+SdT52prv5x6HUTG3nlrjX5aitlo=
github.com/ccding/go-stun v0.1.5/go.mod h1:cCZjJ1J3WFSJV6Wj8Y9Di8JMTsEXh6uv2eNmLzKaUeM=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d h1:S2NE3iHSwP0XV47EEXL8mWmRdEfGscSJ+7EgePNgt0s=
@@ -39,8 +39,6 @@ github.com/d4l3k/messagediff v1.2.1/go.mod h1:Oozbb1TVXFac9FtSIxHBMnBCq2qeH/2KkE
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BMXYYRWTLOJKlh+lOBt6nUQgXAfB7oVIQt5cNreqSLI=
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:rZfgFAXFS/z/lEd6LJmf9HVZ1LkgYiHx5pHhV5DR16M=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
@@ -54,16 +52,16 @@ github.com/go-asn1-ber/asn1-ber v1.5.7 h1:DTX+lbVTWaTw1hQ+PbZPlnDZPEIs0SS/GCZAl5
github.com/go-asn1-ber/asn1-ber v1.5.7/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
github.com/go-ldap/ldap/v3 v3.4.8 h1:loKJyspcRezt2Q3ZRMq2p/0v8iOurlmeXDPw6fikSvQ=
github.com/go-ldap/ldap/v3 v3.4.8/go.mod h1:qS3Sjlu76eHfHGpUdWkAXQTw4beih+cHsco2jXlIXrk=
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -81,12 +79,13 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20240528025155-186aa0362fba h1:ql1qNgCyOB7iAEk8JTNM+zJrgIbnyCKX/wdlyPufP5g=
github.com/google/pprof v0.0.0-20240528025155-186aa0362fba/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
@@ -130,14 +129,14 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNU
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM=
github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
github.com/maruel/panicparse/v2 v2.3.1 h1:NtJavmbMn0DyzmmSStE8yUsmPZrZmudPH7kplxBinOA=
github.com/maruel/panicparse/v2 v2.3.1/go.mod h1:s3UmQB9Fm/n7n/prcD2xBGDkwXD6y2LeZnhbEXvs9Dg=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
@@ -147,10 +146,10 @@ github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1/go.mod h1:eyp4DdUJAKkr9tvxR3jWhw
github.com/maxmind/geoipupdate/v6 v6.1.0 h1:sdtTHzzQNJlXF5+fd/EoPTucRHyMonYt/Cok8xzzfqA=
github.com/maxmind/geoipupdate/v6 v6.1.0/go.mod h1:cZYCDzfMzTY4v6dKRdV7KTB6SStxtn3yFkiJ1btTGGc=
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
github.com/miscreant/miscreant.go v0.0.0-20200214223636-26d376326b75 h1:cUVxyR+UfmdEAZGJ8IiKld1O0dbGotEnkMolG5hfMSY=
github.com/miscreant/miscreant.go v0.0.0-20200214223636-26d376326b75/go.mod h1:pBbZyGwC5i16IBkjVKoy/sznA8jPD/K9iedwe1ESE6w=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
@@ -161,18 +160,18 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vv
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
github.com/onsi/ginkgo/v2 v2.20.0 h1:PE84V2mHqoT1sglvHc8ZdQtPcwmvvt29WLEEO3xmdZw=
github.com/onsi/ginkgo/v2 v2.20.0/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
github.com/oschwald/geoip2-golang v1.11.0 h1:hNENhCn1Uyzhf9PTmquXENiWS6AlxAEnBII6r8krA3w=
github.com/oschwald/geoip2-golang v1.11.0/go.mod h1:P9zG+54KPEFOliZ29i7SeYZ/GM6tfEL+rgSn03hYuUo=
github.com/oschwald/maxminddb-golang v1.13.0 h1:R8xBorY71s84yO06NgTmQvqvTvlS/bnYZrrWX1MElnU=
github.com/oschwald/maxminddb-golang v1.13.0/go.mod h1:BU0z8BfFVhi1LQaonTwwGQlsHUEu9pWNdMfmq4ztm0o=
github.com/oschwald/maxminddb-golang v1.13.1 h1:G3wwjdN9JmIK2o/ermkHM+98oX5fS+k5MbwsmL4MRQE=
github.com/oschwald/maxminddb-golang v1.13.1/go.mod h1:K4pgV9N/GcK694KSTmVSDTODk4IsCNThNdTmnaBZ/F8=
github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -190,12 +189,12 @@ github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQ
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8=
github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ=
github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
github.com/quic-go/quic-go v0.44.0 h1:So5wOr7jyO4vzL2sd8/pD9Kesciv91zSk8BoFngItQ0=
github.com/quic-go/quic-go v0.44.0/go.mod h1:z4cx/9Ny9UtGITIPzmPTXh1ULfOyWh4qGQlpnPcWmek=
github.com/quic-go/quic-go v0.46.0 h1:uuwLClEEyk1DNvchH8uCByQVjo3yKL9opKulExNDs7Y=
github.com/quic-go/quic-go v0.46.0/go.mod h1:1dLehS7TIR64+vxGR70GDcatWTOtMX2PUtnKsjbTurI=
github.com/rabbitmq/amqp091-go v1.10.0 h1:STpn5XsHlHGcecLmMFCtg7mqq0RnD+zFr4uzukfVhBw=
github.com/rabbitmq/amqp091-go v1.10.0/go.mod h1:Hy4jKW5kQART1u+JkDTF9YYOQUHXqMuhrgxOEeS7G4o=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
@@ -208,8 +207,12 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8=
github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM=
github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI=
github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk=
github.com/shirou/gopsutil/v4 v4.24.7 h1:V9UGTK4gQ8HvcnPKf6Zt3XHyQq/peaekfxpJ2HSocJk=
github.com/shirou/gopsutil/v4 v4.24.7/go.mod h1:0uW/073rP7FYLOkvxolUQM5rMOLTNmRXnFKafpb71rw=
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -230,6 +233,10 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48=
github.com/thejerf/suture/v4 v4.0.5 h1:F1E/4FZwXWqvlWDKEUo6/ndLtxGAUzMmNqkrMknZbAA=
github.com/thejerf/suture/v4 v4.0.5/go.mod h1:gu9Y4dXNUWFrByqRt30Rm9/UZ0wzRSt9AJS6xu/ZGxU=
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.15 h1:nuqt+pdC/KqswQKhETJjo7pvn/k4xMUxgW6liI7XpnM=
github.com/urfave/cli v1.22.15/go.mod h1:wSan1hmo5zeyLGBjRJbzRTNk8gwoYa2B9n4q9dmRIc0=
@@ -255,16 +262,16 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg=
golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI=
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -282,16 +289,16 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -319,10 +326,11 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
@@ -336,10 +344,10 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -347,8 +355,8 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -362,8 +370,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@@ -70,12 +70,28 @@
"Connection Type": "Тып Падлучэння",
"Connections": "Падлучэнні",
"Connections via relays might be rate limited by the relay": "Падлучэнні праз рэтранслятар могуць быць абмежаванымі самім рэтранслятарам",
"Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "Працяглы прагляд змен цяпер даступны без Syncthing. Ён выяўляе змены на дыску і скануе толькі мадыфікаваныя шляхі. Перавага метада ў тым, што змены распаўсюджваюцца хучэй і патарабуецца меньшая колькасць поўных сканаванняў.",
"Copied from elsewhere": "Скапіявана з іншага месца",
"Copied from original": "Скапіявана з арыгіналу",
"Copied!": "Скапіявана!",
"Copy": "Скапіяваць",
"Copy failed! Try to select and copy manually.": "Капіяванне не адбылося! Паспрабуйце вылучыць і скапіяваць уласнаручна.",
"Currently Shared With Devices": "Ужо Абагулена З Прыладамі",
"Custom Range": "Уласны Дыяпазон",
"Danger!": "Небязпечна!",
"Database Location": "Шлях Да Базы Даных",
"Debugging Facilities": "Сродкі Адладкі",
"Default": "Стандартныя",
"Default Configuration": "Стандартныя Налады",
"Default Device": "Стандартная Прылада",
"Default Folder": "Стандартная Тэчка",
"Default Ignore Patterns": "Шаблоны ігнаравання па змаўчанні",
"Defaults": "Па змаўчанні",
"Delete": "Выдаліць",
"Delete Unexpected Items": "Выдаліць Нечаканыя Элементы",
"Deleted {%file%}": "Выдалены {{file}}",
"Deselect All": "Зняць выбар з усіх",
"Device": "Прылада",
"Device ID": "ID прылады",
"Device Identification": "Ідэнтыфікацыя прылады",
"Device Name": "Назва прылады",

View File

@@ -30,6 +30,7 @@
"An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "Una ordre externa gestiona la versió. Ha d'eliminar el fitxer de la carpeta compartida. Si el camí a l'aplicació conté espais, s'ha de citar.",
"Anonymous Usage Reporting": "Informe anònim d'ús",
"Anonymous usage report format has changed. Would you like to move to the new format?": "El format de l'informe d'ús anònim ha canviat. Voleu canviar a aquest nou format?",
"Applied to LAN": "Aplicat a LAN",
"Apply": "Aplica",
"Are you sure you want to override all remote changes?": "Esteu segur que voleu anul·lar tots els canvis remots?",
"Are you sure you want to permanently delete all these files?": "Segur que voleu esborrar tots aquests fitxers permanentment?",
@@ -38,6 +39,7 @@
"Are you sure you want to restore {%count%} files?": "Segur que voleu restaurar {{count}} fitxers?",
"Are you sure you want to revert all local changes?": "Esteu segur que voleu revertir tots els canvis locals?",
"Are you sure you want to upgrade?": "Esteu segur que voleu actualitzar?",
"Authentication Required": "Autenticació necessària",
"Authors": "Autors",
"Auto Accept": "Auto Acceptar",
"Automatic Crash Reporting": "Informe automàtic d'incidències",
@@ -205,6 +207,7 @@
"Included Software": "Programari inclòs",
"Incoming Rate Limit (KiB/s)": "Límit de velocitat d'entrada (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Una configuració incorrecta pot malmetre els continguts de la teva carpeta i que Syncthing esdevingui inoperatiu.",
"Incorrect user name or password.": "Nom d'usuari o contrasenya incorrecta.",
"Internally used paths:": "Camins utilitzats internament:",
"Introduced By": "Introduït per",
"Introducer": "Introductor",
@@ -236,7 +239,10 @@
"Log File": "Fitxer de registre",
"Log In": "Inicia la sessió",
"Log Out": "Tanca la sessió",
"Log in to see paths information.": "Inicieu sessió per veure la informació dels camins.",
"Log in to see version information.": "Inicieu sessió per veure la informació de la versió.",
"Log tailing paused. Scroll to the bottom to continue.": "S'ha posat en pausa el seguiment del registre. Desplaceu-vos cap a la part inferior per continuar.",
"Login failed, see Syncthing logs for details.": "No s'ha pogut iniciar la sessió; consulteu els registres de Syncthing per obtenir més informació.",
"Logs": "Registres",
"Major Upgrade": "Actualització major",
"Mass actions": "Accions massives",
@@ -432,11 +438,13 @@
"The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "L'interval, en segons, per executar la neteja al directori de versions. Zero per desactivar la neteja periòdica.",
"The maximum age must be a number and cannot be blank.": "La màxima antiguitat ha de ser un número i no pot estar en blanc.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Temps màxim en mantenir una versió (en dies, si es deixa en 0 es mantenen les versions per sempre).",
"The number of connections must be a non-negative number.": "El nombre de connexions ha de ser un nombre no negatiu.",
"The number of days must be a number and cannot be blank.": "El nombre de dies ha de ser un número i no pot estar en blanc.",
"The number of days to keep files in the trash can. Zero means forever.": "El nombre de dies per guardar els fitxers a la paperera. Zero significa per sempre.",
"The number of old versions to keep, per file.": "El nombre de versions antigues que es mantenen per fitxer.",
"The number of versions must be a number and cannot be blank.": "El nombre de versions ha de ser un número i no es pot deixar en blanc.",
"The path cannot be blank.": "El camí no pot estar en blanc.",
"The rate limit is applied to the accumulated traffic of all connections to this device.": "El límit de velocitat s'aplica al trànsit acumulat de totes les connexions a aquest dispositiu.",
"The rate limit must be a non-negative number (0: no limit)": "El límit de velocitat ha de ser un nombre positiu (0: sense límit)",
"The remote device has not accepted sharing this folder.": "El dispositiu remot no ha acceptat compartir aquesta carpeta.",
"The remote device has paused this folder.": "El dispositiu remot ha posat en pausa aquesta carpeta.",
@@ -484,6 +492,8 @@
"User": "Usuari",
"User Home": "Carpeta d'inici de l'usuari",
"Username/Password has not been set for the GUI authentication. Please consider setting it up.": "El nom d'usuari/contrasenya no s'ha establert per a l'autenticació de la GUI. Penseu a configurar-lo.",
"Using a QUIC connection over LAN": "Utilitzant una connexió QUIC per LAN",
"Using a QUIC connection over WAN": "Utilitzant una connexió QUIC a través de WAN",
"Using a direct TCP connection over LAN": "Utilitzant una connexió TCP directa per LAN",
"Using a direct TCP connection over WAN": "Utilitzant una connexió TCP directa a través de WAN",
"Version": "Versió",
@@ -504,6 +514,7 @@
"Watching for changes discovers most changes without periodic scanning.": "Observant els canvis descobreix la majoria dels canvis sense escanejar periòdicament.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Quan s'afegeix un nou dispositiu, recorda que aquest dispositiu tambè s'ha d'afegir a l'altre banda.",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "Quan s'afegeix una nova carpeta recorda que el ID d'aquesta s'utilitza per lligar repositoris entre els dispositius. Es distingeix entre majúscules i minúscules i ha de ser exactament iguals entre tots els dispositius.",
"When set to more than one on both devices, Syncthing will attempt to establish multiple concurrent connections. If the values differ, the highest will be used. Set to zero to let Syncthing decide.": "Quan s'estableix en més d'un als dos dispositius, Syncthing intentarà establir diverses connexions simultànies. Si els valors són diferents, s'utilitzarà el més alt. Establiu a zero per deixar que Sincronització decideixi.",
"Yes": "Si",
"Yesterday": "Ahir",
"You can also copy and paste the text into a new message manually.": "També podeu copiar i enganxar el text en un missatge nou manualment.",

View File

@@ -1,5 +1,5 @@
{
"A device with that ID is already added.": "Zařízení s takovým identifikátorem již přidáno.",
"A device with that ID is already added.": "Zařízení s takovým identifikátorem je již přidáno.",
"A negative number of days doesn't make sense.": "Záporný počet dní nedává smysl.",
"A new major version may not be compatible with previous versions.": "Nová hlavní verze nemusí být kompatibilní s předchozími verzemi.",
"API Key": "Klíč k API",
@@ -477,8 +477,8 @@
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Varování, tento popis umístění je nadřazenou složkou existující „{{otherFolder}}“.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Varování, tento popis umístění je nadřazenou složkou existující „{{otherFolderLabel}}“ ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Varování: toto umístění je podsložkou existující „{{otherFolder}}“.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Varování, toto umístění e podsložkou existující „{{otherFolderLabel}}“ ({{otherFolder}}).",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "Pozor: Pokud používáte externí sledování změn jako {{syncthingInotify}}, měly byste se ujistit, že je toto sledování vypnuto.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Varování, toto umístění je podsložkou existující „{{otherFolderLabel}}“ ({{otherFolder}}).",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "Pozor: Pokud používáte externí sledování změn jako {{syncthingInotify}}, měli byste se ujistit, že je toto sledování vypnuto.",
"Watch for Changes": "Sledovat změny",
"Watching for Changes": "Sledování změn",
"Watching for changes discovers most changes without periodic scanning.": "Sledování změn odhalí většinu změn ještě před periodickým skenováním.",

View File

@@ -187,7 +187,7 @@
"GUI Theme": "GUI-tema",
"General": "Generelt",
"Generate": "Opret",
"Global Discovery": "Globalt opslag",
"Global Discovery": "Globalt opdagelse",
"Global Discovery Servers": "Globale opslagsservere",
"Global State": "Global tilstand",
"Help": "Hjælp",
@@ -386,6 +386,7 @@
"Staggered File Versioning": "Forskudt filversionering",
"Start Browser": "Start browser",
"Statistics": "Statistikker",
"Stay logged in": "Forbliv logget ind",
"Stopped": "Stoppet",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "Gemmer og synkroniserer kun krypterede data. Mapper på alle tilsluttede enheder skal være oprettet med samme adgangskode eller også være af typen \"{{receiveEncrypted}}\".",
"Subject:": "Emne:",

View File

@@ -302,7 +302,7 @@
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefijo que indica que el patrón debe coincidir sin distinguir mayúsculas de minúsculas",
"Preparing to Sync": "Preparándose para Sincronizar",
"Preview": "Vista previa",
"Preview Usage Report": "Informe de uso de vista previa",
"Preview Usage Report": "Previsualizar el Informe de Uso",
"QR code": "Código QR",
"QUIC LAN": "QUIC LAN",
"QUIC WAN": "QUIC WAN",

View File

@@ -1,5 +1,7 @@
{
"A device with that ID is already added.": "Nadagdag na ang device na may ganitong ID.",
"A negative number of days doesn't make sense.": "Walang saysay ang negatibong numero ng araw.",
"A new major version may not be compatible with previous versions.": "Maaring hindi compatible ang isang bagong major na beryson sa mga kasalukuyang bersyon.",
"API Key": "API Key",
"About": "Tungkol sa",
"Action": "Aksyon",
@@ -25,6 +27,7 @@
"Allowed Networks": "Mga Pinapayagang Network",
"Alphabetic": "Alpabetiko",
"Altered by ignoring deletes.": "Binago sa pamamagitan ng hindi pagpansin sa mga pagtanggal.",
"An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "Pinapamahala ng external na command ang file versioning. Kailangan nitong tanggalin ang file mula sa binabahaging folder. Kung may mga space ang path sa application, kailangan itong i-quote.",
"Anonymous Usage Reporting": "Anonymous na Pag-uulat ng Paggamit",
"Anonymous usage report format has changed. Would you like to move to the new format?": "Nagbago ang pormat ng anonymous na ulat ng paggamit. Gusto mo bang lumipat sa bagong pormat?",
"Applied to LAN": "Naka-apply sa LAN",
@@ -67,6 +70,7 @@
"Connection Type": "Uri ng Koneksyon",
"Connections": "Mga Koneksyon",
"Connections via relays might be rate limited by the relay": "Ang mga koneksyon sa pamamagitan ng mga relay ay maaaring ma-rate limit ng relay",
"Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "Ang patuloy na panonood ng mga pagbabago ay available na ngayon sa loob ng Syncthing. Matutukoy nito ang mga pagbabago sa disk at maglalabas ng pag-scan sa mga binagong landas lamang. Ang mga benepisyo ay ang mga pagbabago ay pinalaganap nang mas mabilis at ang mas kaunting buong pag-scan ay kinakailangan.",
"Copied from elsewhere": "Kinopya mula sa ibang lugar",
"Copied from original": "Kinopya mula sa orihinal",
"Copied!": "Kinopya!",
@@ -104,6 +108,7 @@
"Disabled": "Naka-disable",
"Disabled periodic scanning and disabled watching for changes": "Na-disable ang pana-panahon na pag-scan at na-disable ang panonood sa mga pagbabago",
"Disabled periodic scanning and enabled watching for changes": "Na-disable ang pana-panahon na pag-scan at na-enable ang panonood sa mga pagbabago",
"Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "Na-disable ang pana-panahon na pag-scan at nabigong i-set up ang panonood sa mga pagbabago, susubukang muli kada 1m:",
"Disables comparing and syncing file permissions. Useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android).": "Dini-disable ang pagkumpara at pag-sync ng mga pahintulot ng file. Kapaki-pakinabang sa mga sistema na walang custom na pahintulot (hal. FAT, exFAT, Synology, Android).",
"Discard": "I-discard",
"Disconnected": "Nadiskonekta",
@@ -154,6 +159,10 @@
"File Pull Order": "Order ng Pagkuha ng File",
"File Versioning": "File Versioning",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Nilipat ang mga file sa .stversions na direktoryo kapag pinalitan o binura ng Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Nililipat ang mga file sa mga naka-date stamp na bersyon sa .stversions na direktoryo kapag pinalitan o binura ng Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Pinoprotektahan ang mga file mula sa mga pagbabago sa ibang device, pero ipapadala sa ibang cluster ang mga pagbabago na ginawa sa device na ito.",
"Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.": "Sini-synchronize mula sa cluster ang mga file, pero hindi ipapadala sa mga ibang device ang mgaanumang pagbabago.",
"Filesystem Watcher Errors": "Mga Error sa Taganood ng Filesystem",
"Filter by date": "I-filter ayon sa petsa",
"Filter by name": "I-filter ayon sa pangalan",
"Folder": "Folder",
@@ -162,6 +171,8 @@
"Folder Path": "Path ng Folder",
"Folder Status": "Status ng Folder",
"Folder Type": "Uri ng Folder",
"Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "Maari lang itakda ang uri ng folder na \"{{receiveEncrypted}}\" kapag nagdadagdag ng bagong folder.",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "Hindi mababago ang uri ng folder na \"{{receiveEncrypted}}\" pagkatapos idagdag ang folder. Kailangan mong tanggalin ang folder, burahin o i-decrypt ang data sa disk, at idagdag muli ang folder.",
"Folders": "Mga Folder",
"For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "Para sa mga sumusunod na folder, may naganap na error habang nagsisimulang manood ng mga pagbabago. Susubukan itong muli bawat minuto, kaya maaaring mawala ang mga error sa lalong madaling panahon. Kung magpapatuloy sila, subukang ayusin ang pinagbabatayan na isyu at humingi ng tulong kung hindi mo kaya.",
"Forever": "Magpakailanman",
@@ -178,7 +189,7 @@
"Generate": "I-generate",
"Global Discovery": "Global na Pagtuklas",
"Global Discovery Servers": "Mga Server ng Global na Pagtuklas",
"Global State": "State ng Global",
"Global State": "Global na Kalagayan",
"Help": "Tulong",
"Hint: only deny-rules detected while the default is deny. Consider adding \"permit any\" as last rule.": "Hint: deny-rules lang ang nakita habang ang default ay deny. Isaalang-alang ang pagdaragdag ng \"pahintulutan ang alinman\" bilang huling panuntunan.",
"Home page": "Pahina ng panimula",
@@ -188,5 +199,357 @@
"If you want to prevent other users on this computer from accessing Syncthing and through it your files, consider setting up authentication.": "Kung gusto mong iwasan ang ibang mga user sa computer na ito na i-access ang Syncthing at sa iyong mga file, isaalang-alang na mag-set up ng authentikasyon.",
"Ignore": "Huwag Pansinin",
"Ignore Patterns": "Mga Ignore Pattern",
"Ignore Permissions": "Huwag Pansinin ang mga Pahintulot"
"Ignore Permissions": "Huwag Pansinin ang mga Pahintulot",
"Ignore patterns can only be added after the folder is created. If checked, an input field to enter ignore patterns will be presented after saving.": "Madadagdag lang ang mga ignore pattern pagkatapos gawin ang folder. Kung nilagyan ng check, ang isang input field para ipasok ang mga ignore pattern ay ipapakita pagkatapos i-save.",
"Ignored Devices": "Mga Hindi Pinapansin na Device",
"Ignored Folders": "Mga Hindi Pinapansin na Folder",
"Ignored at": "Hindi pinansin noong",
"Included Software": "Mga Kasamang Software",
"Incoming Rate Limit (KiB/s)": "Rate Limit ng Papasok (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Maaring sirain ng maling pagsasaayos ang nilalaman ng iyong mga folder at gawing inoperable ang Syncthing.",
"Incorrect user name or password.": "Maling user name o password.",
"Internally used paths:": "Mga internal na ginamit na path:",
"Introduced By": "Ipinakilala Ni/Ng",
"Introducer": "Tagapagpakilala",
"Introduction": "Panimula",
"Inversion of the given condition (i.e. do not exclude)": "Pabaliktad ng ibinigay na kundisyon (hal. huwag ibukod)",
"Keep Versions": "Panatilihin ang mga Bersyon",
"LDAP": "LDAP",
"Largest First": "Pinakamalaki Muna",
"Last 30 Days": "Huling 30 Araw",
"Last 7 Days": "Huling 7 Araw",
"Last Month": "Huling Buwan",
"Last Scan": "Huling Scan",
"Last seen": "Huling nakita",
"Latest Change": "Pinakabagong Pagbabago",
"Learn more": "Matuto pa",
"Learn more at {%url%}": "Matuto pa sa {{url}}",
"Limit": "Limitasyon",
"Listener Failures": "Mga Pagbibigo ng Listener",
"Listener Status": "Status ng Listener",
"Listeners": "Mga Listener",
"Loading data...": "Nilo-load ang mga data...",
"Loading...": "Naglo-load...",
"Local Additions": "Mga Lokal na Pagdagdag",
"Local Discovery": "Lokal na Pagtuklas",
"Local State": "Lokal na Kalagayan",
"Local State (Total)": "Lokal na Kalagayan (Kabuuan)",
"Locally Changed Items": "Mga Lokal na Binago na Item",
"Log": "Tala",
"Log File": "File ng Tala",
"Log In": "Mag-Log In",
"Log Out": "Mag-Log Out",
"Log in to see paths information.": "Mag-log in upang makita ang impormasyon ng mga path.",
"Log in to see version information.": "Mag-log in upang makita ang impormasyon ng bersyon.",
"Log tailing paused. Scroll to the bottom to continue.": "Na-pause ang tailing ng tala. Mag-scroll pababa para magpatuloy.",
"Login failed, see Syncthing logs for details.": "Nabigo ang pag-login, tignan ang mga tala ng Syncthing para sa mga detalye.",
"Logs": "Mga Tala",
"Major Upgrade": "Major na Upgrade",
"Mass actions": "Mga maramihang aksyon",
"Maximum Age": "Pinakamataas na Edad",
"Maximum single entry size": "Pinakamataas na laki ng isang entry",
"Maximum total size": "Pinakamataas na kabuuang laki",
"Metadata Only": "Metadata Lamang",
"Minimum Free Disk Space": "Pinakamababang Bakanteng Espasyo ng Disk",
"Mod. Device": "Device na Binago",
"Mod. Time": "Oras na Binago",
"More than a month ago": "Mahigit isang buwan na ang nakalipas",
"More than a week ago": "Mahigit isang linggo na ang nakalipas",
"More than a year ago": "Mahigit isang taon na ang nakalipas",
"Move to top of queue": "Ilipat sa taas ng queue",
"Multi level wildcard (matches multiple directory levels)": "Multi level wildcard (tumutugma sa maraming level ng direktoryo)",
"Never": "Hindi Kailanman",
"New Device": "Bagong Device",
"New Folder": "Bagong Folder",
"Newest First": "Pinakabago Muna",
"No": "Hindi",
"No File Versioning": "Walang File Versioning",
"No files will be deleted as a result of this operation.": "Walang mga file na buburahin bilang resulta ng operasyong ito.",
"No rules set": "Walang mga tinakda na tuntunin",
"No upgrades": "Walang mga upgrade",
"Not shared": "Hindi binabahagi",
"Notice": "Paunawa",
"Number of Connections": "Numero ng Mga Koneksyon",
"OK": "OK",
"Off": "Nakapatay",
"Oldest First": "Pinakaluma Muna",
"Optional descriptive label for the folder. Can be different on each device.": "Opsyonal na mapaglarawang label para sa folder. Maaaring magkaiba sa bawat device.",
"Options": "Mga Opsyon",
"Out of Sync": "Wala sa Sync",
"Out of Sync Items": "Mga Item na Wala sa Sync",
"Outgoing Rate Limit (KiB/s)": "Rate Limit ng Palabas (KiB/s)",
"Override": "I-override",
"Override Changes": "I-override ang mga Pagbabago",
"Ownership": "Pagmamay-ari",
"Password": "Password",
"Path": "Path",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Path papunta sa folder sa computer na ito. Gagawin kapag hindi umiiral. Maaring gamitin ang tilde na character (~) bilang shortcut sa",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Path kung saan ilalagay ang mga bersyon (iwanang walang laman para sa default .stversions na direktoryo sa binabahaging folder).",
"Paths": "Mga Path",
"Pause": "I-pause",
"Pause All": "I-pause Lahat",
"Paused": "Naka-pause",
"Paused (Unused)": "Naka-pause (Hindi Ginamit)",
"Pending changes": "Mga nakabinbin na pagbabago",
"Periodic scanning at given interval and disabled watching for changes": "Ang pana-panahon na pag-scan sa ibinigay na pagitan at naka-disable ang panonood sa mga pagbabago",
"Periodic scanning at given interval and enabled watching for changes": "Ang pana-panahon na pag-scan sa ibinigay na pagitan at naka-enable ang panonood sa mga pagbabago",
"Periodic scanning at given interval and failed setting up watching for changes, retrying every 1m:": "Ang pana-panahon na pag-scan sa ibinigay na pagitan at nabigo ang panonood sa mga pagbabago, susubukan muli bawat 1m:",
"Permanently add it to the ignore list, suppressing further notifications.": "Permanenteng idagdag ito sa listahan ng huwag pansinin, pinipigilan ang mga karagdagang notification.",
"Please consult the release notes before performing a major upgrade.": "Mangyaring kumonsulta sa mga tala sa release bago magsagawa ng malaking pag-upgrade.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Mangyaring magtakda ng Authentikasyon ng GUI na User at Password sa dialog ng Mga Setting.",
"Please wait": "Mangyaring maghintay",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix na nagsasaad na ang file ay maaaring burahin kung pinipigilan ang pagbura ng direktoryo",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix na nagsasaad na ang pattern ay tutugma nang walang case sensitivity",
"Preparing to Sync": "Naghahandang Mag-Sync",
"Preview": "Preview",
"Preview Usage Report": "I-preview ang Ulat ng Paggamit",
"QR code": "QR code",
"QUIC LAN": "QUIC LAN",
"QUIC WAN": "QUIC WAN",
"Quick guide to supported patterns": "Mabilisang gabay para sa mga sinusuportahang pattern",
"Random": "Random",
"Receive Encrypted": "Makatanggap Naka-Encrypt",
"Receive Only": "Makatanggap Lamang",
"Received data is already encrypted": "Naka-encrypt na ang natanggap na data",
"Recent Changes": "Mga Kamakilang Pagbabago",
"Reduced by ignore patterns": "Binabawasan ng mga ignore pattern",
"Relay LAN": "Relay na LAN",
"Relay WAN": "Relay na WAN",
"Release Notes": "Mga Talaan ng Release",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Naglalaman ng mga kandidatong release ng mga pinakabagong feature at kaayusan. Ang mga ito ay katulad ng tradisyonal na bi-weekly Syncthing release.",
"Remote Devices": "Mga Remote Device",
"Remote GUI": "Remote GUI",
"Remove": "Tanggalin",
"Remove Device": "Tanggalin ang Device",
"Remove Folder": "Tanggalin ang Folder",
"Required identifier for the folder. Must be the same on all cluster devices.": "Kinakailangang pagkakilanlan para sa folder. Kailangang magkatulad sa lahat ng mga cluster device.",
"Rescan": "I-rescan",
"Rescan All": "I-rescan Lahat",
"Rescans": "Mga Rescan",
"Restart": "I-restart",
"Restart Needed": "Kinakailangan ng Restart",
"Restarting": "Nagre-restart",
"Restore": "I-restore",
"Restore Versions": "I-restore ang Mga Bersyon",
"Resume": "I-resume",
"Resume All": "I-resume Lahat",
"Reused": "Ginamit muli",
"Revert": "Ibalik",
"Revert Local Changes": "Ibalik ang mga Lokal na Pagbabago",
"Save": "I-save",
"Saving changes": "Sine-save ang mga pagbabago",
"Scan Time Remaining": "Natitirang Oras sa Pag-scan",
"Scanning": "Sina-scan",
"See external versioning help for supported templated command line parameters.": "Tingnan ang tulong sa external na pag-bersyon para sa mga sinusuportahang naka-template na parameter ng command line.",
"Select All": "Piliin Lahat",
"Select a version": "Pumili ng bersyon",
"Select additional devices to share this folder with.": "Pumili ng mga karagdagang device para ibagagi ang folder na ito.",
"Select additional folders to share with this device.": "Pumili ng mga karagdagang folder para ibagagi sa device na ito.",
"Select latest version": "Piliin ang pinakabagong bersyon",
"Select oldest version": "Piliin ang pinakalumang bersyon",
"Send & Receive": "Magpadala at Makatanggap",
"Send Extended Attributes": "Magpadala ng mga Pinalawak na Attribute",
"Send Only": "Magpadala Lamang",
"Send Ownership": "Ipadala ang Pagmamay-ari",
"Set Ignores on Added Folder": "Itakda ang mga Ignore sa Dinagdag na Folder",
"Settings": "Mga Setting",
"Share": "Ibahagi",
"Share Folder": "Ibahagi ang Folder",
"Share by Email": "Ibahagi sa Pamamagitan ng Email",
"Share by SMS": "Ipadala sa Pamamagitan ng SMS",
"Share this folder?": "Ibahagi ang folder na ito?",
"Shared Folders": "Mga Ibinahaging Folder",
"Shared With": "Ibinabahagi Sa",
"Sharing": "Binabahagi",
"Show ID": "Ipakita ang ID",
"Show QR": "Ipakita ang QR",
"Show detailed discovery status": "Magpakita ng detalyadong status sa pagtuklas",
"Show detailed listener status": "Ipakita ang detalyadong status sa listener",
"Show diff with previous version": "Ipakita ang diff sa nakaraang bersyon",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Ipinapakita sa halip na Device ID sa status ng cluster. Ia-advertise sa iba pang mga device bilang opsyonal na default na pangalan.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Ipinapakita sa halip na Device ID sa status ng cluster. Ia-update sa pangalan na ina-advertise ng device kung iiwanang walang laman.",
"Shutdown": "I-shutdown",
"Shutdown Complete": "Tapos na ang Shutdown",
"Simple": "Simple",
"Simple File Versioning": "Simpleng File Versioning",
"Single level wildcard (matches within a directory only)": "Single level na wildcard (tumutugma sa loob lamang ng isang direktoryo)",
"Size": "Laki",
"Smallest First": "Pinakamaliit muna",
"Some discovery methods could not be established for finding other devices or announcing this device:": "Ang ilang paraan ng pagtuklas ay hindi maitatag para sa paghahanap ng iba pang mga device o pag-anunsyo ng device na ito:",
"Some items could not be restored:": "Hindi ma-restore ang ilang mga file:",
"Some listening addresses could not be enabled to accept connections:": "Hindi ma-enable ng ilang mga listening address para makatanggap ng koneksyon:",
"Source Code": "Source Code",
"Stable releases and release candidates": "Mga stable na release at kandidatong release",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Ang mga matatag na release ay naantala ng humigit-kumulang dalawang linggo. Sa panahong ito dumaan sila sa pagsubok bilang mga kandidatong release.",
"Stable releases only": "Mga stable na release lamang",
"Staggered": "Naka-stagger",
"Staggered File Versioning": "Naka-stagger na File Versioning",
"Start Browser": "Simulan ang Browser",
"Statistics": "Mga Istatistika",
"Stay logged in": "Manatiling naka-log in",
"Stopped": "Nakatigil",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "Iniimbak at sini-sync lamang ang naka-encrypt na data. Ang mga folder sa lahat ng mga nakakonektang device ay kailangangang i-set up gamit ang katulad na password o na sa uri na \"{{receiveEncrypted}}\" din.",
"Subject:": "Paksa:",
"Support": "Support",
"Support Bundle": "Bundle ng Suporta",
"Sync Extended Attributes": "I-sync ang Mga Pinalawak na Attribute",
"Sync Ownership": "I-sync ang Pagmamay-ari",
"Sync Protocol Listen Addresses": "Mga Listen Address ng Sync Protocol",
"Sync Status": "Status ng Sync",
"Syncing": "Nagsi-sync",
"Syncthing device ID for \"{%devicename%}\"": "Syncthing device ID para sa \"{{devicename}}\"",
"Syncthing has been shut down.": "Nag-shut down na ang Syncthing.",
"Syncthing includes the following software or portions thereof:": "Kasama sa Syncthing ang sumusunod na software o mga bahagi nito:",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Ang Syncthing ay Libre at Open Source na Software na nakalisensya sa MPL v2.0.",
"Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Ang Syncthing ay isang continuous na file synchronization na program. Sini-synchronize nito ang mga file sa pagitan ng dalawa o higit pang mga computer sa totoong oras, ligtas na protektado mula sa prying na mata. Ang iyong data ay iyong data at nararapat kang pumili kung saan sila ilalagay, kung binabahagi ito sa third party, at kung paano ito pinapadala sa Internet.",
"Syncthing is listening on the following network addresses for connection attempts from other devices:": "Nakikinig ang Syncthing sa mga sumusunod na network address para sa mga tangka sa koneksyon mula sa ibang device:",
"Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Hindi nakikinig ang Syncthing sa mga tangka sa koneksyon mula sa ibang mga device sa anumang address. Ang mga palabas na koneksyon lamang ay maaring gumana.",
"Syncthing is restarting.": "Nagre-restart ang Syncthing.",
"Syncthing is saving changes.": "Nagse-save ng mga pagbabago ang Syncthing.",
"Syncthing is upgrading.": "Naga-upgrade ang Syncthing.",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Sinusuportahan na ng Syncthing ang pag-ulat ng mga crash sa mga developer. Naka-enable ang feature na ito bilang default.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Mukhang down ang Syncthing, o may problema sa iyong koneksyon sa Internet. Sinusubukan muli…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Mukhang nagkakaroon ng problema ang Syncthing sa pagproseso ng iyong hiling. Paki-refresh ang page o i-restart ang Syncthing kapag nagpapatuloy ang problema.",
"TCP LAN": "TCP LAN",
"TCP WAN": "TCP WAN",
"Take me back": "Ibalik mo ako",
"The GUI address is overridden by startup options. Changes here will not take effect while the override is in place.": "Ang GUI address ay na-override ng mga opsyon sa pagsisimula. Ang mga pagbabago dito ay hindi magkakabisa habang ang pag-override ay nasa lugar.",
"The Syncthing Authors": "Ang Mga Awtor ng Syncthing",
"The Syncthing admin interface is configured to allow remote access without a password.": "Naka-configure ang Syncthing admin interface na payagan ang remote access nang walang password.",
"The aggregated statistics are publicly available at the URL below.": "Available nang publiko ang pinagsama-samang istatistika sa URL sa ibaba.",
"The cleanup interval cannot be blank.": "Hindi maaring walang laman ang pagitan ng paglinis.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Na-save na ang configuration ngunit hindi naka-activate. Kailangang mag-restart ang Syncthing para i-activate ang bagong configuration.",
"The device ID cannot be blank.": "Hindi maaring walang laman ang Device ID.",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "Mahahanap ang device ID na ilalagay dito sa \"Mga Aksyon > Ipakita ang ID\" na dialog sa isa pang device. Opsyonal ang mga puwang at gitling (hindi pinapansin).",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "Araw-araw na pinapadala ang naka-encrypt na ulat sa paggamit. Ginagamit ito sa pag-track ng mga karaniwang platform, laki ng folder, at bersyon ng app. Kapag nabago ang tinakdang data ng ulat ipo-prompt kang muli ng dialog na ito.",
"The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "Mukhang hindi angkop ang inilagay na device ID. Dapat itong 52 o 56 na character na string na binubuo ng mga titik at numero, na may mga puwang at gitling bilang opsyonal.",
"The folder ID cannot be blank.": "Hindi maaring walang laman ang folder ID.",
"The folder ID must be unique.": "Kailangang kakaiba ang folder ID.",
"The folder content on other devices will be overwritten to become identical with this device. Files not present here will be deleted on other devices.": "Io-overwrite ang nilalaman ng folder sa mga ibang device para maging magkapareho sa device na ito. Ang mga file na hindi nandito ay buburahin sa mga ibang device.",
"The folder content on this device will be overwritten to become identical with other devices. Files newly added here will be deleted.": "Io-overwrite ang nilalaman ng folder sa mga ibang device para maging magkapareho sa device na ito. Ang mga file na kamakilang dinagdag dito ay buburahin sa mga ibang device.",
"The folder path cannot be blank.": "Hindi maaring walang laman ang path ng folder.",
"The following intervals are used: for the first hour a version is kept every 30 seconds, for the first day a version is kept every hour, for the first 30 days a version is kept every day, until the maximum age a version is kept every week.": "Ang mga sumusunod na pagitan ay ginagamit: sa unang oras ang isang bersyon ay pinapanatili bawat 30 segundo, sa unang araw ang isang bersyon ay pinapanatili bawat oras, sa unang 30 araw ang isang bersyon ay pinapanatili bawat araw, hanggang sa pinakamataas na edad ang isang bersyon ay pinapanatili bawat linggo.",
"The following items could not be synchronized.": "Hindi ma-synchronize ang mga sumusunod na item.",
"The following items were changed locally.": "Binago ng lokal ang mga sumusunod na item.",
"The following methods are used to discover other devices on the network and announce this device to be found by others:": "Ang mga sumusunod na paraan ay ginagamit upang tumuklas ng mga ibang device sa network at ipahayag ang device na ito na mahanap ng iba:",
"The following text will automatically be inserted into a new message.": "Awtomatikong ilalagay ang sumusunod na text sa bagong mensahe.",
"The following unexpected items were found.": "Nahanap ang mga sumusunod na hindi inaasahang item.",
"The interval must be a positive number of seconds.": "Dapat positibong numero ng segundo ang pagitan.",
"The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "Ang pagitan, bilang segundo, para sa pagtakbo ng paglinis sa versions na direktoryo. Sero para i-disable ang periodical na paglinis.",
"The maximum age must be a number and cannot be blank.": "Dapat numero ang pinakamataas na edad at hindi maaring walang laman.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Ang pinakamataas na oras para panatilihin ang bersyon (bilang araw, itakda sa 0 para panatilihin ang mga bersyon magpakailanman).",
"The number of connections must be a non-negative number.": "Dapat hindi negatibong numero ang bilang ng mga koneksyon.",
"The number of days must be a number and cannot be blank.": "Dapat numero ang bilang ng araw at hindi maaring walang laman.",
"The number of days to keep files in the trash can. Zero means forever.": "Ang bilang ng araw para panatilihin ang mga file sa basurahan. Ang sero ay ibig sabihin ay magpakailanman.",
"The number of old versions to keep, per file.": "Ang bilang ng mga lumang bersyon na dapat panatilihin, bawat file.",
"The number of versions must be a number and cannot be blank.": "Dapat numero ang bilang ng mga bersyon at hindi maaring walang laman.",
"The path cannot be blank.": "Hindi maaring walang laman ang path.",
"The rate limit is applied to the accumulated traffic of all connections to this device.": "Ina-apply ang rate limit sa naipon na traffic ng lahat ng mga koneksyon sa device na ito.",
"The rate limit must be a non-negative number (0: no limit)": "Dapat hindi negatibong numero ang rate limit (0: walang limitasyon)",
"The remote device has not accepted sharing this folder.": "Hindi tinanggap ng remote device ang pagbahagi ng folder na ito.",
"The remote device has paused this folder.": "Na-pause ng remote device ang folder na ito.",
"The rescan interval must be a non-negative number of seconds.": "Dapat hindi negatibong bilang ng segundo ang pagitan ng rescan.",
"There are no devices to share this folder with.": "Walang mga device para ibahagi ang folder na ito sa.",
"There are no file versions to restore.": "Walang mga file version na ibabalik.",
"There are no folders to share with this device.": "Walang mga folder na ibabahagi sa device na ito.",
"They are retried automatically and will be synced when the error is resolved.": "Awtomatikong sinusubok muli ang mga ito at isi-sync kapag nalutas ang error.",
"This Device": "Itong Device",
"This Month": "Itong Buwan",
"This can easily give hackers access to read and change any files on your computer.": "Madali nitong mabibigyan ang mga hacker ng access na basahin at baguhin ang anumang mga file sa iyong computer.",
"This device cannot automatically discover other devices or announce its own address to be found by others. Only devices with statically configured addresses can connect.": "Hindi awtomatikong tutuklasin ng device na ito ng mga ibang device o i-annouce ang sarili nitong address para mahanap ng iba. Makakakonekta lamang ang mga device na may static na naka-configure na address.",
"This is a major version upgrade.": "Ito ay isang upgrade sa major na bersyon.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Kinokontrol ng setting na ito ang kinakailangan na bakanteng espasyo sa home (hal., index database) disk.",
"Time": "Oras",
"Time the item was last modified": "Oras na huling binago ang file",
"To connect with the Syncthing device named \"{%devicename%}\", add a new remote device on your end with this ID:": "Para kumonekta sa Syncthing device na nakapangalan na \"{{devicename}}\", magdagdag ng bagong remote device sa iyong dulo gamit ang ID na ito:",
"To permit a rule, have the checkbox checked. To deny a rule, leave it unchecked.": "Upang payagan ang isang panuntunan, lagyan ng check ang checkbox. Upang tanggihan ang isang panuntunan, iwanan itong walang check.",
"Today": "Ngayon",
"Trash Can": "Basurahan",
"Trash Can File Versioning": "Basurahan na File Versioning",
"Type": "Uri",
"UNIX Permissions": "Mga Pahintulot na UNIX",
"Unavailable": "Hindi Available",
"Unavailable/Disabled by administrator or maintainer": "Hindi Available/Na-disable ng tagapangasiwa",
"Undecided (will prompt)": "Undecided (magbibigay ng prompt)",
"Unexpected Items": "Mga Hindi Inaasahang Item",
"Unexpected items have been found in this folder.": "Nakahanap ng mga hindi inaasahang item sa folder na ito.",
"Unignore": "I-unignore",
"Unknown": "Hindi Alam",
"Unshared": "Hindi Binahagi",
"Unshared Devices": "Mga Hindi Binahaging Device",
"Unshared Folders": "Mga Hindi Binahaging Folder",
"Untrusted": "Hindi Pinagkakatiwalaan",
"Up to Date": "Napapanahon",
"Updated {%file%}": "Binago ang {{file}}",
"Upgrade": "Mag-upgrade",
"Upgrade To {%version%}": "Mag-upgrade Sa {{version}}",
"Upgrading": "Naga-upgrade",
"Upload Rate": "Rate ng Pag-upload",
"Uptime": "Uptime",
"Usage reporting is always enabled for candidate releases.": "Palaging naka-enable ang pag-uulat ng paggamit sa mga kandidatong release.",
"Use HTTPS for GUI": "Gumamit ng HTTPS para sa GUI",
"Use notifications from the filesystem to detect changed items.": "Gumamit ng mga notification mula sa filesystem para mag-detect ng mga nabagong item.",
"User": "Gumagamit",
"User Home": "Home ng User",
"Username/Password has not been set for the GUI authentication. Please consider setting it up.": "Hindi nakatakda ang Username/Password para sa authentikasyon sa GUI. Isaalang-alang na i-set up.",
"Using a QUIC connection over LAN": "Gumagamit ng QUIC na koneksyon mula sa LAN",
"Using a QUIC connection over WAN": "Gumagamit ng QUIC na koneksyon mula sa WAN",
"Using a direct TCP connection over LAN": "Gumagamit ng direktang TCP na koneksyon mula sa LAN",
"Using a direct TCP connection over WAN": "Gumagamit ng direktang TCP na koneksyon mula sa WAN",
"Version": "Bersyon",
"Versions": "Mga Bersyon",
"Versions Path": "Path ng Mga Bersyon",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Awtomatikong buburahin ang mgs bersyon kapag mas matanda sila kaysa sa pinakamataas na edad o lumalagpas sa numero ng mga file na pinapayagan sa pagitan.",
"Waiting to Clean": "Naghihintay para Linisin",
"Waiting to Scan": "Naghihintay para Mag-scan",
"Waiting to Sync": "Naghihintay para Mag-sync",
"Warning": "Babala",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Babala, ang path na ito ay parent directory ng umiiral na folder na \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Babala, ang path na ito ay parent directory ng umiiral na folder na \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Babala, ang path na ito ay isang subdirectory ng umiiral na folder na \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Babala, ang path na ito ay isang subdirectory ng umiiral na folder na \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "Babala: Kapag gumagamit ka ng panlabas na watcher tulad ng {{syncthingInotify}}, dapag siguraduhin mo na naka-deactivate iyan.",
"Watch for Changes": "Manood para sa Mga Pagbabago",
"Watching for Changes": "Nanonood para sa Mga Pagbabago",
"Watching for changes discovers most changes without periodic scanning.": "Ang panonood para sa mga pagbabago ay tumutuklas ng mga karamihang pagbabago nang walang periodic na pag-scan.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Kapag nagdaragdag ng bagong device, tandaan na dapat ding idagdag ang device na ito sa kabilang panig.",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "Kapag nagdaragdag ng bagong folder, tandaan na ang Folder ID ay ginagamit para iugnay ang mga folder sa pagitan ng mga device. Case senitive sila at dapat eksaktong tumugma sa pagitan ng mga device.",
"When set to more than one on both devices, Syncthing will attempt to establish multiple concurrent connections. If the values differ, the highest will be used. Set to zero to let Syncthing decide.": "Kapag nakatakda sa higit sa isa sa parehong device, susubukan ng Syncthing na magtatag ng maraming magkakasabay na koneksyon. Kung magkaiba ang mga halaga, ang pinakamataas ang gagamitin. Itakda sa zero upang hayaan ang Syncthing na magpasya.",
"Yes": "Oo",
"Yesterday": "Kahapon",
"You can also copy and paste the text into a new message manually.": "Maari mo ring kopyahin at i-paste ang text sa isang bagong mensahe nang manwal.",
"You can also select one of these nearby devices:": "Maari mo ring piliin ang isa sa mga malapit na device:",
"You can change your choice at any time in the Settings dialog.": "Pwede mong palitan ang iyong kagustuhan sa anumang oras sa dialog ng Mga Setting.",
"You can read more about the two release channels at the link below.": "Maaari kang magbasa nang higit pa tungkol sa dalawang release channel sa link sa ibaba.",
"You have no ignored devices.": "Wala kang mga hindi pinapansin na device.",
"You have no ignored folders.": "Wala kang mga hindi pinapansin na folder.",
"You have unsaved changes. Do you really want to discard them?": "Mayroon kang mga hindi na-save na pagbabago. Gusto mo ba talagang i-discard ang mga ito?",
"You must keep at least one version.": "Kailangan mong magpanatili ng kahit isang bersyon.",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "Hindi ka dapat magdagdag o magpalit ng anumang lokal sa folder na \"{{receiveEncrypted}}\".",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "Magbubukas ang iyong SMS app para hayaan kang pumili ng tatanggap at ipadala ito mula sa sarili mong numero.",
"Your email app should open to let you choose the recipient and send it from your own address.": "Magbubukas ang iyong email app para hayaan kang pumili ng tatanggap at ipadala mula sa sarili mong address.",
"days": "araw",
"deleted": "binura",
"deny": "tanggihan",
"directories": "mga direktoryo",
"file": "file",
"files": "mga file",
"folder": "folder",
"full documentation": "punong dokumentasyon",
"items": "mga item",
"modified": "binago",
"permit": "payagan",
"seconds": "segundo",
"theme": {
"name": {
"black": "Itim",
"dark": "Madilim",
"default": "Default",
"light": "Maliwanag"
}
},
"unknown device": "hindi alam na device",
"{%device%} wants to share folder \"{%folder%}\".": "Gustong ibahagi ng {{device}} ang folder na \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "Gustong ibahagi ng {{device}} ang folder na \"{{folderlabel}}\" ({{folder}}).",
"{%reintroducer%} might reintroduce this device.": "Maaring ipakilala muli ng {{reintroducer}} ang device na ito."
}

View File

@@ -0,0 +1,555 @@
{
"A device with that ID is already added.": "Tá gléas leis an aitheantas sin curtha leis cheana féin.",
"A negative number of days doesn't make sense.": "Níl ciall le líon diúltach laethanta.",
"A new major version may not be compatible with previous versions.": "B'fhéidir nach bhfuil mórleagan nua comhoiriúnach le leaganacha roimhe seo.",
"API Key": "Eochair API",
"About": "Maidir",
"Action": "Gníomh",
"Actions": "Gníomhartha",
"Active filter rules": "Rialacha gníomhacha scagaire",
"Add": "Cuir Leis",
"Add Device": "Cuir Gléas Leis",
"Add Folder": "Cuir Fillteán Leis",
"Add Remote Device": "Cuir Cianghléas Leis",
"Add devices from the introducer to our device list, for mutually shared folders.": "Cuir gléasanna ón introducer lenár liosta gléasanna, le haghaidh fillteáin a roinntear go frithpháirteach.",
"Add filter entry": "Cuir iontráil scagaire leis",
"Add ignore patterns": "Cuir patrúin neamhairde leis",
"Add new folder?": "Cuir fillteán nua leis?",
"Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "Ina theannta sin méadófar an t-eatramh iomlán athscanta (amanna 60, i.e. mainneachtain nua 1h). Is féidir leat é a chumrú de láimh do gach fillteán níos déanaí tar éis Uimh.",
"Address": "Seoladh",
"Addresses": "Seoltaí",
"Advanced": "Ardrang",
"Advanced Configuration": "Ardchumraíocht",
"All Data": "Na Sonraí Go Léir",
"All Time": "Gach Am",
"All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "Ní mór gach fillteán a roinntear leis an ngléas seo a chosaint le pasfhocal, ionas nach féidir na sonraí go léir a sheoltar a léamh gan an pasfhocal tugtha.",
"Allow Anonymous Usage Reporting?": "Ceadaigh Tuairisciú Úsáide Gan Ainm?",
"Allowed Networks": "Líonraí Ceadaithe",
"Alphabetic": "Aibítreach",
"Altered by ignoring deletes.": "Athraithe trí neamhaird a dhéanamh ar scriosadh.",
"An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "Láimhseálann ordú seachtrach an leagan. Caithfidh sé an comhad a bhaint den fhillteán comhroinnte. Má tá spásanna sa chosán chuig an bhfeidhmchlár, ba chóir é a lua.",
"Anonymous Usage Reporting": "Tuairisciú Úsáide Gan Ainm",
"Anonymous usage report format has changed. Would you like to move to the new format?": "Tá athrú tagtha ar fhormáid na tuarascála úsáide gan ainm. Ar mhaith leat bogadh go dtí an fhormáid nua?",
"Applied to LAN": "Curtha i bhfeidhm ar LAN",
"Apply": "Iarratas a dhéanamh",
"Are you sure you want to override all remote changes?": "An bhfuil tú cinnte go bhfuil fonn ort gach athrú iargúlta a shárú?",
"Are you sure you want to permanently delete all these files?": "An bhfuil tú cinnte go bhfuil fonn ort na comhaid seo go léir a scriosadh go buan?",
"Are you sure you want to remove device {%name%}?": "An bhfuil tú cinnte go bhfuil fonn ort an gléas {{name}}a bhaint?",
"Are you sure you want to remove folder {%label%}?": "An bhfuil tú cinnte go bhfuil fonn ort fillteán {{label}}a bhaint?",
"Are you sure you want to restore {%count%} files?": "An bhfuil tú cinnte go bhfuil fonn ort comhaid {{count}} a aischur?",
"Are you sure you want to revert all local changes?": "An bhfuil tú cinnte go bhfuil fonn ort na hathruithe áitiúla go léir a chur ar ais?",
"Are you sure you want to upgrade?": "An bhfuil tú cinnte go bhfuil fonn ort uasghrádú a dhéanamh?",
"Authentication Required": "Fíordheimhniú de dhíth",
"Authors": "Údair",
"Auto Accept": "Glac go hUathoibríoch",
"Automatic Crash Reporting": "Tuairisciú Uathoibríoch Tuairteála",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Cuireann uasghrádú uathoibríoch anois an rogha idir eisiúintí cobhsaí agus iarrthóirí scaoilte.",
"Automatic upgrades": "Uasghrádú uathoibríoch",
"Automatic upgrades are always enabled for candidate releases.": "Cumasaítear uasghrádú uathoibríoch i gcónaí le haghaidh eisiúintí iarrthóra.",
"Automatically create or share folders that this device advertises at the default path.": "Cruthaigh nó comhroinn fillteáin go huathoibríoch a fhógraíonn an gléas seo ag an gcosán réamhshocraithe.",
"Available debug logging facilities:": "Áiseanna logála dífhabhtaithe atá ar fáil:",
"Be careful!": "Bí cúramach!",
"Body:": "Comhlacht:",
"Bugs": "Fabhtanna",
"Cancel": "Cuir ar ceal",
"Changelog": "ChangelogName",
"Clean out after": "Glan amach tar éis",
"Cleaning Versions": "Leaganacha Glantacháin",
"Cleanup Interval": "Eatramh Glanta",
"Click to see full identification string and QR code.": "Cliceáil chun teaghrán aitheantais iomlán agus cód QR a fheiceáil.",
"Close": "Dún",
"Command": "Ordú",
"Comment, when used at the start of a line": "Trácht a dhéanamh, nuair a úsáidtear é ag tús líne",
"Compression": "Comhbhrú",
"Configuration Directory": "Comhadlann Cumraíochta",
"Configuration File": "Comhad Cumraíochta",
"Configured": "Cumraithe",
"Connected (Unused)": "Ceangailte (Neamhúsáidte)",
"Connection Error": "Earráid naisc",
"Connection Management": "Bainistíocht Ceangail",
"Connection Type": "Cineál Ceangail",
"Connections": "Naisc",
"Connections via relays might be rate limited by the relay": "D'fhéadfadh naisc trí athsheachadáin a bheith ráta teoranta ag an sealaíochta",
"Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "Tá faire leanúnach le haghaidh athruithe ar fáil anois laistigh de Syncthing. Braithfidh sé seo athruithe ar an diosca agus eiseoidh sé scanadh ar na cosáin mhodhnaithe amháin. Is iad na buntáistí ná go ndéantar athruithe a iomadú níos tapúla agus go bhfuil gá le scanadh níos lú iomlán.",
"Copied from elsewhere": "Cóipeáladh ó áiteanna eile",
"Copied from original": "Cóipeáladh ón mbunleagan",
"Copied!": "Cóipeáladh!",
"Copy": "Cóipeáil",
"Copy failed! Try to select and copy manually.": "Theip ar chóip! Déan iarracht a roghnú agus a chóipeáil de láimh.",
"Currently Shared With Devices": "Comhroinnte faoi láthair le gléasanna",
"Custom Range": "Raon Saincheaptha",
"Danger!": "Contúirt!",
"Database Location": "Suíomh an Bhunachair Sonraí",
"Debugging Facilities": "Áiseanna Dífhabhtaithe",
"Default": "Réamhshocrú",
"Default Configuration": "Cumraíocht Réamhshocraithe",
"Default Device": "Gléas Réamhshocraithe",
"Default Folder": "Fillteán Réamhshocraithe",
"Default Ignore Patterns": "Patrúin Neamhairde Réamhshocraithe",
"Defaults": "Réamhshocruithe",
"Delete": "Scrios",
"Delete Unexpected Items": "Scrios Míreanna Gan Choinne",
"Deleted {%file%}": "Scriosta {{file}}",
"Deselect All": "Díroghnaigh Gach Rud",
"Deselect devices to stop sharing this folder with.": "Díroghnaigh gléasanna chun stop a chur le comhroinnt an fhillteáin seo.",
"Deselect folders to stop sharing with this device.": "Díroghnaigh fillteáin chun stop a chur le comhroinnt leis an ngléas seo.",
"Device": "Gléas",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Device \"{{name}}\" ({{device}} at {{address}}) ag iarraidh ceangal. Cuir gléas nua leis?",
"Device Certificate": "Teastas Gléis",
"Device ID": "Aitheantas gléis",
"Device Identification": "Aitheantas gléis",
"Device Name": "Ainm an Ghléis",
"Device Status": "Stádas an Ghléis",
"Device is untrusted, enter encryption password": "Tá an gléas neamhiontaofa, iontráil focal faire criptithe",
"Device rate limits": "Teorainneacha ráta gléis",
"Device that last modified the item": "Gléas a d'athraigh an mhír go deireanach",
"Devices": "Gléasanna",
"Disable Crash Reporting": "Díchumasaigh Tuairisciú Tuairteála",
"Disabled": "Díchumasaithe",
"Disabled periodic scanning and disabled watching for changes": "Scanadh tréimhsiúil díchumasaithe agus daoine faoi mhíchumas ag faire ar athruithe",
"Disabled periodic scanning and enabled watching for changes": "Scanadh tréimhsiúil díchumasaithe agus cumasaíodh faire le haghaidh athruithe",
"Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "Scanadh tréimhsiúil díchumasaithe agus theip ar shocrú faire le haghaidh athruithe, ag triail gach 1m:",
"Disables comparing and syncing file permissions. Useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android).": "Díchumasaigh comparáid agus sioncronú ceadanna comhaid. Úsáideach ar chórais le ceadanna nonexistent nó saincheaptha (m.sh. FAT, exFAT, Synology, Android).",
"Discard": "Ná Sábháil",
"Disconnected": "Dícheangailte",
"Disconnected (Inactive)": "Dícheangailte (Neamhghníomhach)",
"Disconnected (Unused)": "Dícheangailte (Neamhúsáidte)",
"Discovered": "Aimsíodh",
"Discovery": "Fionnachtain",
"Discovery Failures": "Teipeanna Fionnachtana",
"Discovery Status": "Stádas Fionnachtana",
"Dismiss": "Ruaig",
"Do not add it to the ignore list, so this notification may recur.": "Ná cuir leis an liosta neamhairde é, mar sin d'fhéadfadh an fógra seo tarlú arís.",
"Do not restore": "Ná hathchóirigh",
"Do not restore all": "Ná cuir gach rud ar ais",
"Do you want to enable watching for changes for all your folders?": "An bhfuil fonn ort féachaint ar athruithe do d'fhillteáin go léir?",
"Documentation": "Doiciméadú",
"Download Rate": "Ráta Íosluchtaithe",
"Downloaded": "Íoslódáilte",
"Downloading": "Á Íosluchtú",
"Edit": "Cuir in eagar",
"Edit Device": "Cuir Gléas in Eagar",
"Edit Device Defaults": "Cuir Réamhshocruithe gléis in Eagar",
"Edit Folder": "Cuir Fillteán in Eagar",
"Edit Folder Defaults": "Cuir Réamhshocruithe an Fhillteáin in Eagar",
"Editing {%path%}.": "Eagarthóireacht {{path}}.",
"Enable Crash Reporting": "Cumasaigh Tuairisciú Tuairteanna",
"Enable NAT traversal": "Cumasaigh traversal NAT",
"Enable Relaying": "Cumasaigh Athsheachadadh",
"Enabled": "Cumasaithe",
"Enables sending extended attributes to other devices, and applying incoming extended attributes. May require running with elevated privileges.": "Cumasaigh tréithe leathnaithe a sheoladh chuig gléasanna eile, agus tréithe sínte isteach a chur i bhfeidhm. D'fhéadfadh sé go mbeadh gá le rith le pribhléidí ardaithe.",
"Enables sending extended attributes to other devices, but not applying incoming extended attributes. This can have a significant performance impact. Always enabled when \"Sync Extended Attributes\" is enabled.": "Cumasaigh tréithe leathnaithe a sheoladh chuig gléasanna eile, ach gan tréithe leathnaithe ag teacht isteach a chur i bhfeidhm. D'fhéadfadh tionchar suntasach feidhmíochta a bheith aige seo. Cumasaíodh i gcónaí nuair a chumasaítear \"Sync Extended Attributes\".",
"Enables sending ownership information to other devices, and applying incoming ownership information. Typically requires running with elevated privileges.": "Cumasaíonn sé faisnéis úinéireachta a sheoladh chuig gléasanna eile, agus faisnéis úinéireachta isteach a chur i bhfeidhm. De ghnáth éilíonn rith le pribhléidí ardaithe.",
"Enables sending ownership information to other devices, but not applying incoming ownership information. This can have a significant performance impact. Always enabled when \"Sync Ownership\" is enabled.": "Cumasaíonn sé faisnéis úinéireachta a sheoladh chuig gléasanna eile, ach gan faisnéis úinéireachta isteach a chur i bhfeidhm. D'fhéadfadh tionchar suntasach feidhmíochta a bheith aige seo. Cumasaíodh i gcónaí nuair a chumasaítear \"Úinéireacht Shioncronaithe\".",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Iontráil uimhir neamh-dhiúltach (m.sh., \"2.35\") agus roghnaigh aonad. Tá céatadáin mar chuid de mhéid iomlán an diosca.",
"Enter a non-privileged port number (1024 - 65535).": "Cuir isteach uimhir phoirt neamhphribhléid (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Cuir isteach camóg scartha (\"tcp://ip:port\", \"tcp://host:port\") seoltaí nó \"dinimiciúil\" chun fionnachtain uathoibríoch an tseolta a dhéanamh.",
"Enter ignore patterns, one per line.": "Iontráil patrúin neamhaird, ceann in aghaidh an líne.",
"Enter up to three octal digits.": "Iontráil suas le trí dhigit ochtach.",
"Error": "Earráid",
"Extended Attributes": "Tréithe Breisithe",
"Extended Attributes Filter": "Scagaire Tréithe Breisithe",
"External": "Seachtrach",
"External File Versioning": "Leagan Comhad Seachtrach",
"Failed Items": "Míreanna Teipthe",
"Failed to load file versions.": "Theip ar luchtú leaganacha comhaid.",
"Failed to load ignore patterns.": "Theip ar phatrúin neamhairde a luchtú.",
"Failed to setup, retrying": "Theip ar thus, ag triail arís",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Táthar ag súil le mainneachtain ceangal le freastalaithe IPv6 mura bhfuil nascacht IPv6 ann.",
"File Pull Order": "Ordú Tarraingthe Comhad",
"File Versioning": "Leagan Comhaid",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Bogtar comhaid go comhadlann .stversions nuair a chuirtear sioncronú ina n-ionad nó nuair a scriostar iad.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Bogtar comhaid go dtí seo leaganacha stampáilte i gcomhadlann .stversions nuair a chuirtear sioncronú ina n-ionad nó nuair a scriostar iad.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Cosnaítear comhaid ó athruithe a dhéantar ar ghléasanna eile, ach seolfar athruithe a dhéantar ar an ngléas seo chuig an gcuid eile den bhraisle.",
"Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.": "Déantar comhaid a shioncrónú ón mbraisle, ach ní sheolfar aon athruithe a dhéantar go háitiúil chuig gléasanna eile.",
"Filesystem Watcher Errors": "Earráidí Faireoir an Chórais Comhad",
"Filter by date": "Scag de réir dáta",
"Filter by name": "Scag de réir ainm",
"Folder": "Fillteán",
"Folder ID": "Aitheantas an fhillteáin",
"Folder Label": "Lipéad Fillteáin",
"Folder Path": "Conair an Fhillteáin",
"Folder Status": "Stádas an Fhillteáin",
"Folder Type": "Cineál Fillteáin",
"Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "Ní féidir cineál fillteáin \"{{receiveEncrypted}}\" a shocrú ach amháin nuair a chuirtear fillteán nua leis.",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "Ní féidir cineál fillteáin \"{{receiveEncrypted}}\" a athrú tar éis an fillteán a chur leis. Ní mór duit an fillteán a bhaint, na sonraí ar an diosca a scriosadh nó a dhíchriptiú, agus an fillteán a chur leis arís.",
"Folders": "Fillteáin",
"For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "Maidir leis na fillteáin seo a leanas, tharla earráid agus tú ag tosú ag faire ar athruithe. Beidh sé a retried gach nóiméad, mar sin d'fhéadfadh na hearráidí dul amach go luath. Má leanann siad ar aghaidh, déan iarracht an bhuncheist a shocrú agus cabhair a iarraidh mura féidir leat.",
"Forever": "Go brách",
"Full Rescan Interval (s)": "Eatramh Rescan Iomlán (í)",
"GUI": "Comhéadan Grafach",
"GUI / API HTTPS Certificate": "Teastas GUI / API HTTPS",
"GUI Authentication Password": "Pasfhocal Fíordheimhnithe GUI",
"GUI Authentication User": "Úsáideoir Fíordheimhnithe GUI",
"GUI Authentication: Set User and Password": "Fíordheimhniú Grafach: Socraigh Úsáideoir agus Pasfhocal",
"GUI Listen Address": "Seoladh Éisteachta GUI",
"GUI Override Directory": "Comhadlann Sáraithe GUI",
"GUI Theme": "Téama grafach",
"General": "Ginearálta",
"Generate": "Gin",
"Global Discovery": "Fionnachtain Dhomhanda",
"Global Discovery Servers": "Freastalaithe Fionnachtana Domhanda",
"Global State": "Stát Domhanda",
"Help": "Cabhair",
"Hint: only deny-rules detected while the default is deny. Consider adding \"permit any\" as last rule.": "Leid: níor aimsíodh ach rialacha diúltaithe agus an réamhshocrú á séanadh. Smaoinigh ar \"cead ar bith\" a chur leis mar riail dheireanach.",
"Home page": "Leathanach baile",
"However, your current settings indicate you might not want it enabled. We have disabled automatic crash reporting for you.": "Mar sin féin, léiríonn do shocruithe reatha go mb'fhéidir nár mhaith leat é a chumasú. Tá tuairisciú uathoibríoch tuairteála díchumasaithe againn duit.",
"Identification": "Aitheantas",
"If untrusted, enter encryption password": "Mura bhfuil muinín agat as, iontráil focal faire criptithe",
"If you want to prevent other users on this computer from accessing Syncthing and through it your files, consider setting up authentication.": "Más mian leat cosc a chur ar úsáideoirí eile ar an ríomhaire seo rochtain a fháil ar Syncthing agus trí do chuid comhad, smaoinigh ar fhíordheimhniú a bhunú.",
"Ignore": "Déan neamhaird de",
"Ignore Patterns": "Déan neamhaird de Phatrúin",
"Ignore Permissions": "Déan neamhaird de cheadanna",
"Ignore patterns can only be added after the folder is created. If checked, an input field to enter ignore patterns will be presented after saving.": "Ní féidir patrúin neamhaird a chur leis ach amháin tar éis an fillteán a chruthú. Má sheiceáil, beidh réimse ionchur chun dul isteach patrúin neamhaird a chur i láthair tar éis a shábháil.",
"Ignored Devices": "Gléasanna Neamhaird",
"Ignored Folders": "Fillteáin Neamhaird",
"Ignored at": "Neamhaird déanta air ag",
"Included Software": "Bogearraí san áireamh",
"Incoming Rate Limit (KiB/s)": "Teorainn Ráta Isteach (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "D'fhéadfadh cumraíocht mhícheart dochar a dhéanamh d'inneachar d'fhillteáin agus sioncronú a dhéanamh do-oibrithe.",
"Incorrect user name or password.": "Ainm úsáideora nó pasfhocal mícheart.",
"Internally used paths:": "Cosáin a úsáidtear go hinmheánach:",
"Introduced By": "Tugtha isteach ag",
"Introducer": "Réamhrá",
"Introduction": "Réamhrá",
"Inversion of the given condition (i.e. do not exclude)": "Inbhéartú an choinníll áirithe (i.e. ná cuir as an áireamh)",
"Keep Versions": "Coinnigh Leaganacha",
"LDAP": "LDAPName",
"Largest First": "An Chéad Cheann is Mó",
"Last 30 Days": "Laethanta 30 seo caite",
"Last 7 Days": "Laethanta 7 seo caite",
"Last Month": "An Mhí Seo Caite",
"Last Scan": "An scanadh is déanaí",
"Last seen": "Feicthe go deireanach",
"Latest Change": "An tAthrú is Déanaí",
"Learn more": "Faigh tuilleadh eolais",
"Learn more at {%url%}": "Tuilleadh eolais ag {{url}}",
"Limit": "Teorainn",
"Listener Failures": "Teipeanna an Éisteora",
"Listener Status": "Stádas an éisteora",
"Listeners": "Éisteoirí",
"Loading data...": "Sonraí á luchtú...",
"Loading...": "Á Luchtú...",
"Local Additions": "Breiseanna Logánta",
"Local Discovery": "Fionnachtain Áitiúil",
"Local State": "Stát Áitiúil",
"Local State (Total)": "Stát Áitiúil (Iomlán)",
"Locally Changed Items": "Míreanna Athraithe go hÁitiúil",
"Log": "Logáil",
"Log File": "Logchomhad",
"Log In": "Logáil isteach",
"Log Out": "Logáil Amach",
"Log in to see paths information.": "Logáil isteach chun faisnéis faoi chosáin a fheiceáil.",
"Log in to see version information.": "Logáil isteach chun faisnéis faoin leagan a fheiceáil.",
"Log tailing paused. Scroll to the bottom to continue.": "Bhí eireaball loga ar sos. Scrollaigh go bun an leathanaigh chun leanúint ar aghaidh.",
"Login failed, see Syncthing logs for details.": "Theip ar logáil isteach, féach logaí sioncronaithe le haghaidh sonraí.",
"Logs": "Logchomhaid",
"Major Upgrade": "Uasghrádú Mór",
"Mass actions": "Gníomhartha Aifrinn",
"Maximum Age": "Aois Uasta",
"Maximum single entry size": "Uasmhéid iontrála aonair",
"Maximum total size": "Uasmhéid iomlán",
"Metadata Only": "Meiteashonraí Amháin",
"Minimum Free Disk Space": "Íosspás Diosca Saor in Aisce",
"Mod. Device": "Mòd. Gléas",
"Mod. Time": "Mòd. Am",
"More than a month ago": "Níos mó ná mí ó shin",
"More than a week ago": "Níos mó ná seachtain ó shin",
"More than a year ago": "Níos mó ná bliain ó shin",
"Move to top of queue": "Bog go barr na scuaine",
"Multi level wildcard (matches multiple directory levels)": "Saoróg il-leibhéil (meaitseálann sé leibhéil eolaire éagsúla)",
"Never": "Riamh",
"New Device": "Gléas Nua",
"New Folder": "Fillteán Nua",
"Newest First": "An Chéad Cheann is Nuaí",
"No": "Ní hea",
"No File Versioning": "Gan Leagan Comhaid",
"No files will be deleted as a result of this operation.": "Ní scriosfar aon chomhaid mar thoradh ar an oibríocht seo.",
"No rules set": "Níl aon rialacha leagtha síos",
"No upgrades": "Gan uasghrádú",
"Not shared": "Gan roinnt",
"Notice": "Fógra",
"Number of Connections": "Líon na nasc",
"OK": "Ceart go leor",
"Off": "As",
"Oldest First": "An Chéad duine is sine",
"Optional descriptive label for the folder. Can be different on each device.": "Lipéad tuairisciúil roghnach don fhillteán. Is féidir a bheith difriúil ar gach gléas.",
"Options": "Roghanna",
"Out of Sync": "As Sioncronú",
"Out of Sync Items": "As Míreanna Sioncronaithe",
"Outgoing Rate Limit (KiB/s)": "Teorainn Ráta Amach (KiB/s)",
"Override": "Sáraigh",
"Override Changes": "Sáraigh Athruithe",
"Ownership": "Úinéireacht",
"Password": "Pasfhocal",
"Path": "Conair",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Conair chuig an bhfillteán ar an ríomhaire logánta. Cruthófar é mura bhfuil sé ann. Is féidir an carachtar tilde (~) a úsáid mar aicearra le haghaidh",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Conair inar chóir leaganacha a stóráil (fág folamh don chomhadlann réamhshocraithe .stversions san fhillteán comhroinnte).",
"Paths": "Cosáin",
"Pause": "ginideach: Dhún na nGall",
"Pause All": "Cuir Gach Rud ar Sos",
"Paused": "Curtha ar sos",
"Paused (Unused)": "Sosanna (ligthe i ndearmad)",
"Pending changes": "Athruithe ar feitheamh",
"Periodic scanning at given interval and disabled watching for changes": "Scanadh tréimhsiúil ag eatramh áirithe agus daoine faoi mhíchumas ag faire ar athruithe",
"Periodic scanning at given interval and enabled watching for changes": "Scanadh tréimhsiúil ag eatramh áirithe agus cumasaíodh faire le haghaidh athruithe",
"Periodic scanning at given interval and failed setting up watching for changes, retrying every 1m:": "Scanadh tréimhsiúil ag eatramh áirithe agus theip ar shocrú faire le haghaidh athruithe, ag triail gach 1m:",
"Permanently add it to the ignore list, suppressing further notifications.": "Cuir go buan é leis an liosta neamhairde, ag cur fógraí breise faoi chois.",
"Please consult the release notes before performing a major upgrade.": "Féach ar na nótaí scaoilte sula ndéanfaidh tú uasghrádú mór.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Socraigh Úsáideoir Fíordheimhnithe GUI agus Pasfhocal sa dialóg Socruithe.",
"Please wait": "Fan, le do thoil",
"Prefix indicating that the file can be deleted if preventing directory removal": "Réimír a léiríonn gur féidir an comhad a scriosadh má chuirtear cosc ar bhaint eolaire",
"Prefix indicating that the pattern should be matched without case sensitivity": "Réimír a léiríonn gur chóir an patrún a mheaitseáil gan íogaireacht cáis",
"Preparing to Sync": "Ag ullmhú le sioncronú",
"Preview": "Réamhamharc",
"Preview Usage Report": "Tuairisc ar Úsáid Réamhamhairc",
"QR code": "Cód QR",
"QUIC LAN": "LAN QUIC",
"QUIC WAN": "WAN QUIC",
"Quick guide to supported patterns": "Treoir thapa maidir le patrúin tacaithe",
"Random": "Randamach",
"Receive Encrypted": "Faigh Criptithe",
"Receive Only": "Faigh Amháin",
"Received data is already encrypted": "Tá sonraí a fuarthas criptithe cheana féin",
"Recent Changes": "Athruithe le Déanaí",
"Reduced by ignore patterns": "Laghdaithe ag patrúin neamhaird",
"Relay LAN": "Athsheachadán LAN",
"Relay WAN": "Athsheachadán WAN",
"Release Notes": "Nótaí Eisiúna",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Tá na gnéithe agus na socruithe is déanaí ag iarrthóirí scaoilte. Tá siad cosúil leis na heisiúintí traidisiúnta sioncronaithe dé-sheachtainiúla.",
"Remote Devices": "Gléasanna Cianda",
"Remote GUI": "Comhéadan Grafach cianda",
"Remove": "Bain",
"Remove Device": "Bain Gléas",
"Remove Folder": "Bain Fillteán",
"Required identifier for the folder. Must be the same on all cluster devices.": "Aitheantóir riachtanach don fhillteán. Ní mór a bheith mar an gcéanna ar gach gléas braisle.",
"Rescan": "Cealaigh",
"Rescan All": "Cealaigh Gach Rud",
"Rescans": "Athscannáin",
"Restart": "Atosaigh",
"Restart Needed": "Atosaigh de Dhíth",
"Restarting": "Ag atosú",
"Restore": "Athchóirigh",
"Restore Versions": "Athchóirigh Leaganacha",
"Resume": "Athdhúisigh",
"Resume All": "Atosaigh Gach Rud",
"Reused": "Athúsáid",
"Revert": "Fill",
"Revert Local Changes": "Fill athruithe logánta",
"Save": "Sábháil",
"Saving changes": "Athruithe á sábháil",
"Scan Time Remaining": "Scan an t-am atá fágtha",
"Scanning": "Scanadh",
"See external versioning help for supported templated command line parameters.": "Féach cabhair leagan seachtrach le haghaidh paraiméadair líne ordaithe teimpléadaithe tacaithe.",
"Select All": "Roghnaigh Gach Rud",
"Select a version": "Roghnaigh leagan",
"Select additional devices to share this folder with.": "Roghnaigh gléasanna breise chun an fillteán seo a chomhroinnt leis.",
"Select additional folders to share with this device.": "Roghnaigh fillteáin bhreise le comhroinnt leis an ngléas seo.",
"Select latest version": "Roghnaigh an leagan is déanaí",
"Select oldest version": "Roghnaigh an leagan is sine",
"Send & Receive": "Seol & Faigh",
"Send Extended Attributes": "Seol Tréithe Breisithe",
"Send Only": "Seol Amháin",
"Send Ownership": "Seol Úinéireacht",
"Set Ignores on Added Folder": "Socraigh neamhaird ar fhillteán breise",
"Settings": "Socruithe",
"Share": "Roinn",
"Share Folder": "Comhroinn Fillteán",
"Share by Email": "Comhroinn trí Ríomhphost",
"Share by SMS": "Comhroinn de réir SMS",
"Share this folder?": "Comhroinn an fillteán seo?",
"Shared Folders": "Fillteáin Chomhroinnte",
"Shared With": "Roinnte le",
"Sharing": "Comhroinnt",
"Show ID": "Taispeáin Aitheantas",
"Show QR": "Taispeáin QR",
"Show detailed discovery status": "Taispeáin stádas mionsonraithe aimsithe",
"Show detailed listener status": "Taispeáin stádas mionsonraithe an éisteora",
"Show diff with previous version": "Taispeáin diff leis an leagan roimhe seo",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Taispeántar é in ionad ID gléis i stádas na braisle. Fógrófar é do ghléasanna eile mar ainm réamhshocraithe roghnach.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Taispeántar é in ionad ID gléis i stádas na braisle. Déanfar é a nuashonrú go dtí an t-ainm a fhógraíonn an gléas má fhágtar folamh é.",
"Shutdown": "Múchadh",
"Shutdown Complete": "Múchadh Críochnaithe",
"Simple": "Simplí",
"Simple File Versioning": "Leagan Simplí Comhad",
"Single level wildcard (matches within a directory only)": "Saoróg leibhéal aonair (meaitseálann sé laistigh d'eolaire amháin)",
"Size": "Méid",
"Smallest First": "An Chéad Cheann is Lú",
"Some discovery methods could not be established for finding other devices or announcing this device:": "Níorbh fhéidir roinnt modhanna aimsithe a bhunú chun gléasanna eile a aimsiú nó chun an gléas seo a fhógairt:",
"Some items could not be restored:": "Níorbh fhéidir roinnt míreanna a aischur:",
"Some listening addresses could not be enabled to accept connections:": "Níorbh fhéidir roinnt seoltaí éisteachta a chumasú chun glacadh le naisc:",
"Source Code": "Cód Foinseach",
"Stable releases and release candidates": "Eisiúintí cobhsaí agus iarrthóirí scaoilte",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Tá moill thart ar choicís ar scaoileadh cobhsaí. Le linn an ama seo téann siad trí thástáil mar iarrthóirí scaoilte.",
"Stable releases only": "Eisiúintí cobhsaí amháin",
"Staggered": "Tuislithe",
"Staggered File Versioning": "Leagan Comhad Staggered",
"Start Browser": "Tosaigh Brabhsálaí",
"Statistics": "Staitisticí",
"Stay logged in": "Fan logáilte isteach",
"Stopped": "Stoptha",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "Ní dhéanann siopaí agus sioncronaithe ach sonraí criptithe. Ní mór fillteáin ar gach gléas nasctha a chur ar bun leis an bpasfhocal céanna nó a bheith de chineál \"{{receiveEncrypted}}\" freisin.",
"Subject:": "Ábhar:",
"Support": "Tacaíocht",
"Support Bundle": "Beart Tacaíochta",
"Sync Extended Attributes": "Sioncrónaigh Tréithe Breisithe",
"Sync Ownership": "Sioncrónaigh Úinéireacht",
"Sync Protocol Listen Addresses": "Sioncrónaigh Seoltaí Éisteachta an Phrótacail",
"Sync Status": "Stádas sioncronaithe",
"Syncing": "Sioncronú",
"Syncthing device ID for \"{%devicename%}\"": "Aitheantas gléis á shioncronú le haghaidh \"{{devicename}}\"",
"Syncthing has been shut down.": "Tá an sioncronú múchta.",
"Syncthing includes the following software or portions thereof:": "Áirítear leis an sioncronú na bogearraí seo a leanas nó codanna díobh:",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Tá Syncthing Free and Open Source Software ceadúnaithe mar MPL v2.0.",
"Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Is clár leanúnach sioncronaithe comhad é sioncronú. Sioncrónaíonn sé comhaid idir dhá ríomhaire nó níos mó i bhfíor-am, cosanta go sábháilte ó shúile prying. Is é do chuid sonraí amháin do chuid sonraí agus is fiú duit a roghnú cá stóráiltear iad, cibé an roinntear iad le tríú páirtí éigin, agus conas a tharchuirtear iad ar an idirlíon.",
"Syncthing is listening on the following network addresses for connection attempts from other devices:": "Tá sioncronú ag éisteacht ar na seoltaí líonra seo a leanas le haghaidh iarrachtaí ceangail ó ghléasanna eile:",
"Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Níl sioncronú ag éisteacht le hiarrachtaí ceangail ó ghléasanna eile ar aon seoladh. Ní féidir ach naisc amach ón ngléas seo a bheith ag obair.",
"Syncthing is restarting.": "Tá sioncronú ag atosú.",
"Syncthing is saving changes.": "Tá athruithe á sábháil ag sioncronú.",
"Syncthing is upgrading.": "Tá uasghrádú á dhéanamh ar shioncronú.",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Tacaíonn sioncronú anois le tuairteanna a thuairisciú go huathoibríoch do na forbróirí. Cumasaítear an ghné seo de réir réamhshocraithe.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Is cosúil go bhfuil sioncronú síos, nó tá fadhb le do nasc Idirlín. Ag baint triail as…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Is cosúil go bhfuil fadhb ag sioncronú d'iarratas a phróiseáil. Athnuaigh an leathanach nó atosaigh Sioncronú má leanann an fhadhb ar aghaidh.",
"TCP LAN": "LAN TCP",
"TCP WAN": "WAN TCP",
"Take me back": "Tóg ar ais mé",
"The GUI address is overridden by startup options. Changes here will not take effect while the override is in place.": "Tá an seoladh GUI sáraithe ag roghanna tosaithe. Ní thiocfaidh athruithe anseo i bhfeidhm fad is atá an sárú i bhfeidhm.",
"The Syncthing Authors": "Na húdair sioncronaithe",
"The Syncthing admin interface is configured to allow remote access without a password.": "Tá an comhéadan riaracháin Syncthing cumraithe chun cianrochtain a cheadú gan phasfhocal.",
"The aggregated statistics are publicly available at the URL below.": "Tá na staitisticí comhiomlánaithe ar fáil go poiblí ag an URL thíos.",
"The cleanup interval cannot be blank.": "Ní féidir leis an eatramh glanta a bheith bán.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Sábháladh an chumraíocht ach níor cuireadh i ngníomh í. Ní mór sioncronú a atosú chun an chumraíocht nua a ghníomhachtú.",
"The device ID cannot be blank.": "Ní féidir aitheantas an ghléis a bheith bán.",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "Is féidir ID an ghléis atá le cur isteach anseo a fháil sa dialóg \"Gníomhartha > Taispeáin ID\" ar an ngléas eile. Tá spásanna agus daiseanna roghnach (neamhaird).",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "Seoltar an tuarascáil úsáide criptithe gach lá. Úsáidtear é chun ardáin choitianta, méideanna fillteáin agus leaganacha feidhmchláir a rianú. Má athraítear an tacar sonraí tuairiscithe, spreagfar thú leis an dialóg seo arís.",
"The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "Níl cuma bhailí ar aitheantas an ghléis iontráilte. Ba chóir go mbeadh sé ina teaghrán carachtar 52 nó 56 comhdhéanta de litreacha agus uimhreacha, le spásanna agus dashes a bheith roghnach.",
"The folder ID cannot be blank.": "Ní féidir aitheantas an fhillteáin a bheith bán.",
"The folder ID must be unique.": "Caithfidh aitheantas an fhillteáin a bheith uathúil.",
"The folder content on other devices will be overwritten to become identical with this device. Files not present here will be deleted on other devices.": "Déanfar inneachar an fhillteáin ar ghléasanna eile a fhorscríobh le bheith comhionann leis an ngléas seo. Scriosfar comhaid nach bhfuil i láthair anseo ar ghléasanna eile.",
"The folder content on this device will be overwritten to become identical with other devices. Files newly added here will be deleted.": "Déanfar inneachar an fhillteáin ar an ngléas seo a fhorscríobh le bheith comhionann le gléasanna eile. Scriosfar comhaid nua a cuireadh leis anseo.",
"The folder path cannot be blank.": "Ní féidir le cosán an fhillteáin a bheith bán.",
"The following intervals are used: for the first hour a version is kept every 30 seconds, for the first day a version is kept every hour, for the first 30 days a version is kept every day, until the maximum age a version is kept every week.": "Úsáidtear na heatraimh seo a leanas: don chéad uair an chloig coinnítear leagan gach 30 soicind, don chéad lá coinnítear leagan gach uair an chloig, don chéad 30 lá coinnítear leagan gach lá, go dtí an aois uasta a choinnítear leagan gach seachtain.",
"The following items could not be synchronized.": "Níorbh fhéidir na míreanna seo a leanas a shioncrónú.",
"The following items were changed locally.": "Athraíodh na míreanna seo a leanas go háitiúil.",
"The following methods are used to discover other devices on the network and announce this device to be found by others:": "Úsáidtear na modhanna seo a leanas chun gléasanna eile ar an líonra a aimsiú agus chun an gléas seo a fhógairt le haimsiú ag daoine eile:",
"The following text will automatically be inserted into a new message.": "Cuirfear an téacs seo a leanas isteach i dteachtaireacht nua go huathoibríoch.",
"The following unexpected items were found.": "Aimsíodh na míreanna gan choinne seo a leanas.",
"The interval must be a positive number of seconds.": "Caithfidh an t-eatramh a bheith ina líon dearfach soicind.",
"The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "An t-eatramh, i soicindí, le haghaidh glanadh a reáchtáil san eolaire leaganacha. Nialas chun glanadh tréimhsiúil a dhíchumasú.",
"The maximum age must be a number and cannot be blank.": "Caithfidh an aois uasta a bheith ina uimhir agus ní féidir léi a bheith bán.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "An t-uasmhéid ama chun leagan a choinneáil (i laethanta, socraithe go 0 chun leaganacha a choinneáil go deo).",
"The number of connections must be a non-negative number.": "Ní mór líon na nasc a bheith ina uimhir neamh-dhiúltach.",
"The number of days must be a number and cannot be blank.": "Caithfidh líon na laethanta a bheith ina uimhir agus ní féidir leo a bheith bán.",
"The number of days to keep files in the trash can. Zero means forever.": "Líon na laethanta chun comhaid a choinneáil sa bhruscar. Ciallaíonn nialas go deo.",
"The number of old versions to keep, per file.": "Líon na seanleaganacha le coinneáil, in aghaidh an chomhaid.",
"The number of versions must be a number and cannot be blank.": "Caithfidh líon na leaganacha a bheith ina uimhir agus ní féidir leo a bheith bán.",
"The path cannot be blank.": "Ní féidir leis an gcosán a bheith bán.",
"The rate limit is applied to the accumulated traffic of all connections to this device.": "Cuirtear an teorainn ráta i bhfeidhm ar thrácht carntha gach nasc leis an ngléas seo.",
"The rate limit must be a non-negative number (0: no limit)": "Ní mór an teorainn ráta a bheith ina uimhir neamh-dhiúltach (0: gan teorainn)",
"The remote device has not accepted sharing this folder.": "Níor ghlac an gléas cianda leis an bhfillteán seo a chomhroinnt.",
"The remote device has paused this folder.": "Chuir an gléas cianda an fillteán seo ar sos.",
"The rescan interval must be a non-negative number of seconds.": "Ní mór an t-eatramh rescan a bheith ina líon neamh-diúltach soicind.",
"There are no devices to share this folder with.": "Níl aon ghléas ann chun an fillteán seo a roinnt leis.",
"There are no file versions to restore.": "Níl aon leaganacha comhaid le cur ar ais.",
"There are no folders to share with this device.": "Níl aon fhillteáin le roinnt leis an ngléas seo.",
"They are retried automatically and will be synced when the error is resolved.": "Déantar iad a aisghabháil go huathoibríoch agus déanfar iad a shioncronú nuair a réitítear an earráid.",
"This Device": "An Gléas seo",
"This Month": "An mhí seo",
"This can easily give hackers access to read and change any files on your computer.": "Is féidir é seo a thabhairt go héasca hackers rochtain a léamh agus aon chomhaid ar do ríomhaire a athrú.",
"This device cannot automatically discover other devices or announce its own address to be found by others. Only devices with statically configured addresses can connect.": "Ní féidir leis an ngléas seo gléasanna eile a aimsiú go huathoibríoch ná a sheoladh féin a fhógairt le haimsiú ag daoine eile. Ní féidir ach le gléasanna le seoltaí atá cumraithe go statically ceangal.",
"This is a major version upgrade.": "Is uasghrádú mór leagan é seo.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Rialaíonn an socrú seo an spás saor in aisce a theastaíonn ar an diosca baile (i.e., bunachar sonraí innéacs).",
"Time": "Am",
"Time the item was last modified": "Am a athraíodh an mhír go deireanach",
"To connect with the Syncthing device named \"{%devicename%}\", add a new remote device on your end with this ID:": "Chun ceangal a dhéanamh leis an ngléas Sioncronaithe darb ainm \"{{devicename}}\", cuir gléas cianda nua ar do dheireadh leis an ID seo:",
"To permit a rule, have the checkbox checked. To deny a rule, leave it unchecked.": "Chun riail a cheadú, seiceáil an ticbhosca. To deny a rule, é a fhágáil gan seiceáil.",
"Today": "Inniu",
"Trash Can": "Is féidir le bruscar",
"Trash Can File Versioning": "Is féidir le bruscar leagan comhaid",
"Type": "Cineál",
"UNIX Permissions": "Ceadanna UNIX",
"Unavailable": "Níl sé ar fáil",
"Unavailable/Disabled by administrator or maintainer": "Níl sé ar fáil/Díchumasaithe ag riarthóir nó cothaitheoir",
"Undecided (will prompt)": "Neamhdhearbhaithe (tabharfaidh sé leid)",
"Unexpected Items": "Míreanna Gan Choinne",
"Unexpected items have been found in this folder.": "Aimsíodh míreanna gan choinne san fhillteán seo.",
"Unignore": "Gan Neamhaird",
"Unknown": "Neamhaithnid",
"Unshared": "Neamhroinnte",
"Unshared Devices": "Gléasanna Neamhroinnte",
"Unshared Folders": "Fillteáin Neamhroinnte",
"Untrusted": "Neamhiontaofa",
"Up to Date": "Cothrom le dáta",
"Updated {%file%}": "Nuashonraithe {{file}}",
"Upgrade": "Uasghrádú",
"Upgrade To {%version%}": "Uasghrádú go {{version}}",
"Upgrading": "Uasghrádú",
"Upload Rate": "Ráta Uasluchtaithe",
"Uptime": "Aga fónaimh",
"Usage reporting is always enabled for candidate releases.": "Cumasaítear tuairisciú úsáide i gcónaí le haghaidh eisiúintí iarrthóra.",
"Use HTTPS for GUI": "Úsáid HTTPS le haghaidh GUI",
"Use notifications from the filesystem to detect changed items.": "Bain úsáid as fógraí ón gcóras comhad chun míreanna athraithe a bhrath.",
"User": "Úsáideoir",
"User Home": "Baile Úsáideora",
"Username/Password has not been set for the GUI authentication. Please consider setting it up.": "Níor socraíodh ainm úsáideora/pasfhocal le haghaidh fíordheimhniú an GUI. Smaoinigh, le do thoil, ar é a chur ar bun.",
"Using a QUIC connection over LAN": "Ag baint úsáide as nasc QUIC thar LAN",
"Using a QUIC connection over WAN": "Ag baint úsáide as nasc QUIC thar WAN",
"Using a direct TCP connection over LAN": "Ag baint úsáide as nasc TCP díreach thar LAN",
"Using a direct TCP connection over WAN": "Ag baint úsáide as nasc TCP díreach thar WAN",
"Version": "Leagan",
"Versions": "Leaganacha",
"Versions Path": "Conair na Leaganacha",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Scriostar leaganacha go huathoibríoch má tá siad níos sine ná an aois uasta nó má sháraíonn siad líon na gcomhad a cheadaítear in eatramh.",
"Waiting to Clean": "Ag Fanacht le Glanadh",
"Waiting to Scan": "Ag fanacht le Scanadh",
"Waiting to Sync": "Ag fanacht le sioncronú",
"Warning": "Rabhadh",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Rabhadh, is máthairchomhadlann é an cosán seo d'fhillteán atá ann cheana féin \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Rabhadh, is máthairchomhadlann é an cosán seo d'fhillteán atá ann cheana féin \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Rabhadh, is fochomhadlann é an cosán seo d'fhillteán atá ann cheana féin \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Rabhadh, is fochomhadlann é an cosán seo d'fhillteán atá ann cheana féin \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "Rabhadh: Má tá uaireadóir seachtrach á úsáid agat mar {{syncthingInotify}}, ba chóir duit a chinntiú go bhfuil sé díghníomhachtaithe.",
"Watch for Changes": "Bí ag faire ar athruithe",
"Watching for Changes": "Ag Faire ar Athruithe",
"Watching for changes discovers most changes without periodic scanning.": "Má bhreathnaíonn tú ar athruithe, faightear amach an chuid is mó de na hathruithe gan scanadh tréimhsiúil.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Agus gléas nua á chur leis, coinnigh i gcuimhne go gcaithfear an gléas seo a chur leis ar an taobh eile freisin.",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "Agus fillteán nua á chur leis, coinnigh i gcuimhne go n-úsáidtear ID an Fhillteáin chun fillteáin a cheangal le chéile idir gléasanna. Tá siad cásíogair agus ní mór iad a mheaitseáil go díreach idir gach feiste.",
"When set to more than one on both devices, Syncthing will attempt to establish multiple concurrent connections. If the values differ, the highest will be used. Set to zero to let Syncthing decide.": "Nuair a shocraítear níos mó ná ceann amháin ar an dá ghléas, déanfaidh Syncthing iarracht naisc chomhthráthacha iolracha a bhunú. Má tá na luachanna difriúil, úsáidfear an ceann is airde. Socraigh go nialas chun ligean do Syncthing cinneadh a dhéanamh.",
"Yes": "Tá",
"Yesterday": "Inné",
"You can also copy and paste the text into a new message manually.": "Is féidir leat an téacs a chóipeáil agus a ghreamú isteach i dteachtaireacht nua de láimh.",
"You can also select one of these nearby devices:": "Is féidir leat ceann de na gléasanna in aice láimhe seo a roghnú freisin:",
"You can change your choice at any time in the Settings dialog.": "Is féidir leat do rogha a athrú ag am ar bith sa dialóg Socruithe.",
"You can read more about the two release channels at the link below.": "Is féidir leat tuilleadh a léamh faoin dá chainéal scaoilte ag an nasc thíos.",
"You have no ignored devices.": "Níl aon ghléasanna neamhairde agat.",
"You have no ignored folders.": "Níl aon fhillteáin neamhairde agat.",
"You have unsaved changes. Do you really want to discard them?": "Tá athruithe gan sábháil agat. An bhfuil tú cinnte gur mian leat iad a chaitheamh i leataobh?",
"You must keep at least one version.": "Ní mór duit leagan amháin ar a laghad a choinneáil.",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "Níor chóir duit aon rud a chur leis nó a athrú go háitiúil i bhfillteán \"{{receiveEncrypted}}\".",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "Ba chóir go mbeadh d'aip SMS oscailte chun ligean duit an faighteoir a roghnú agus é a sheoladh ó d'uimhir féin.",
"Your email app should open to let you choose the recipient and send it from your own address.": "Ba cheart d'aip ríomhphoist a oscailt chun ligean duit an faighteoir a roghnú agus é a sheoladh ó do sheoladh féin.",
"days": "laethanta",
"deleted": "scriosta",
"deny": "diúltú",
"directories": "Eolairí",
"file": "comhad",
"files": "comhaid",
"folder": "fillteán",
"full documentation": "doiciméadú iomlán",
"items": "míreanna",
"modified": "modhnaithe",
"permit": "cead",
"seconds": "soicind",
"theme": {
"name": {
"black": "Dubh",
"dark": "Dorcha",
"default": "Réamhshocrú",
"light": "Solas"
}
},
"unknown device": "gléas anaithnid",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} ag iarraidh fillteán a roinnt \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} ag iarraidh fillteán a roinnt \"{{folderlabel}}\" ({{folder}}).",
"{%reintroducer%} might reintroduce this device.": "D'fhéadfadh {{reintroducer}} an gléas seo a athbhunú."
}

View File

@@ -10,7 +10,7 @@
"Add Device": "Engadir dispositivo",
"Add Folder": "Engadir cartafol",
"Add Remote Device": "Engadir dispositivo remoto",
"Add devices from the introducer to our device list, for mutually shared folders.": "Engadir dispositivos desde o enviador ao noso dispositivo, para cartafoles mutuamente compartidos.",
"Add devices from the introducer to our device list, for mutually shared folders.": "Engadir dispositivos desde o enviador ao noso dispositivo, para cartafois mutuamente compartidos.",
"Add filter entry": "Engadir unha entrada ao filtro",
"Add ignore patterns": "Engadir patróns a ignorar",
"Add new folder?": "Engadir novo cartafol?",
@@ -21,7 +21,7 @@
"Advanced Configuration": "Configuración avanzada",
"All Data": "Todos os datos",
"All Time": "Todo o tempo",
"All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "Todos os cartafoles compartidos con este dispositivo teñen que estar protexidos por un contrasinal, de modo que os datos enviados sexan ilexibles sen o constrasinal indicado.",
"All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "Todos os cartafois compartidos con este dispositivo teñen que estar protexidos por un contrasinal, de modo que os datos enviados sexan ilexibles sen o constrasinal indicado.",
"Allow Anonymous Usage Reporting?": "Permitir o informe de uso anónimo?",
"Allowed Networks": "Redes permitidas",
"Alphabetic": "Alfabética",
@@ -155,5 +155,312 @@
"Help": "Axuda",
"Home page": "Páxina de inicio",
"Identification": "Identificación",
"LDAP": "LDAP"
"Incoming Rate Limit (KiB/s)": "Límite de Descaga (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Unha configuración incorrecta pode danar os contidos do teu cartafol e deixar Syncthing inutilizable.",
"Incorrect user name or password.": "Nome de usuario ou contrasinal incorrecto.",
"Inversion of the given condition (i.e. do not exclude)": "Inversión da condición dada (por exemplo, non excluír)",
"Keep Versions": "Manter Versións",
"LDAP": "LDAP",
"Largest First": "Máis Grande Primeiros",
"Last 30 Days": "Últimos 30 Días",
"Last 7 Days": "Últimos 7 Días",
"Last Month": "Último mes",
"Last Scan": "Último escaneamento",
"Last seen": "Visto por última vez",
"Latest Change": "Último cambio",
"Limit": "Límite",
"Loading data...": "Cargando datos...",
"Loading...": "Cargando...",
"Local Additions": "Adicións\tlocais",
"Local Discovery": "Descubrimento Local",
"Local State": "Estado Local",
"Local State (Total)": "Estado Local (Total)",
"Locally Changed Items": "Ítems Modificados Localmente",
"Log": "Rexistro",
"Log File": "Ficheiro de Rexistro",
"Log In": "Iniciar Sesión",
"Log Out": "Pechar Sesión",
"Log in to see paths information.": "Inicia sesión para ver información das rutas.",
"Log in to see version information.": "Inicia sesión para ver información da versión.",
"Login failed, see Syncthing logs for details.": "Fallou o inicio de sesión, vexa os rexistros de Syngthing para máis detalles.",
"Logs": "Rexistros",
"Major Upgrade": "Actualización Maior",
"Mass actions": "Accións en masa",
"Maximum Age": "Idade Máxima",
"Maximum total size": "Tamaño máximo total",
"Metadata Only": "Só Metadatos",
"Minimum Free Disk Space": "Espacio Mínimo Libre no Disco",
"More than a month ago": "Fai máis dun mes",
"More than a week ago": "Fai máis dunha semana",
"More than a year ago": "Fai máis dun ano",
"Move to top of queue": "Mover a enriba da cola",
"Never": "Nunca",
"New Device": "Dispositivo Novo",
"New Folder": "Cartafol Novo",
"Newest First": "Máis Novo Primeiro",
"No": "Non",
"No File Versioning": "Sen Versionado de Ficheiros",
"No files will be deleted as a result of this operation.": "Non se eliminará ningún ficheiro como resultado desta operación.",
"No rules set": "Sen regras",
"No upgrades": "Sen actualizacións",
"Not shared": "Non compartido",
"Number of Connections": "Número de Conexións",
"Oldest First": "Máis Vellos Primeiro",
"Optional descriptive label for the folder. Can be different on each device.": "Etiqueta descritiva opcional para o cartafol. Pode ser distinta en cada dispositivo",
"Options": "Opcións",
"Outgoing Rate Limit (KiB/s)": "Límite de Saída (KiB/s)",
"Override": "Sobrescribir",
"Override Changes": "Sobrescribir os Cambios",
"Ownership": "Propiedade",
"Password": "Contrasinal",
"Path": "Ruta",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Ruta ao cartafol no computador local. Crearase de non existir. A tilde (~) pode usarse como atallo para<",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Ruta onde deben gardarse as versión (deixar baleiro para o directorio .stversions por defecto no cartafol compartido).",
"Paths": "Rutas",
"Pause": "Parar",
"Pause All": "Parar Todas",
"Paused": "Parada",
"Paused (Unused)": "Parada (Sen uso)",
"Pending changes": "Cambios pendentes",
"Permanently add it to the ignore list, suppressing further notifications.": "Engadilo permanentemente á lista de ignorados, suprimindo notificacións futuras.",
"Please consult the release notes before performing a major upgrade.": "Por favor consulte as notas de lanzamento antes de realizar unha actualización maior.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Por favor configure un Usuario e Contrasinal de Autenticación para a GUI no diálogo de Configuración.",
"Please wait": "Por favor espere",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefixo que indica que o patrón debe coincidir sen distinguir maiúsculas e minúsculas",
"Preparing to Sync": "Preparandose para Sincronizar",
"Preview": "Vista previa",
"Preview Usage Report": "Vista Previa do Informe de Uso",
"QR code": "Código QR",
"QUIC LAN": "QUIC LAN",
"QUIC WAN": "QUIC WAN",
"Quick guide to supported patterns": "Guía rápida dos patróns soportados",
"Random": "Aleatorio",
"Receive Only": "Só Recibir",
"Received data is already encrypted": "Os datos recibidos xa están encriptados",
"Recent Changes": "Cambios Recentes",
"Reduced by ignore patterns": "Reducido por patróns de ignorar",
"Relay LAN": "Relevo LAN",
"Relay WAN": "Relevo WAN",
"Release Notes": "Notas de Lanzamento",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Os candidatos de lanzamento conteñen as últimas versións e arranxos. Son parecidas aos lanzamentos bisemanais tradicionais de Syncthing.",
"Remote Devices": "Dispositivos Remotos",
"Remote GUI": "GUI Remota",
"Remove": "Quitar",
"Remove Device": "Quitar o Dispositivo",
"Remove Folder": "Quitar o Cartafol",
"Required identifier for the folder. Must be the same on all cluster devices.": "Identificador requirido para o cartafol. Debe de ser o mesmo en todos os dispositivos do clúster.",
"Rescan": "Reescanear",
"Rescan All": "Reescanear Todo",
"Rescans": "Reescaneos",
"Restart": "Reiniciar",
"Restart Needed": "Reinicio Requirido",
"Restarting": "Reiniciando",
"Restore": "Restablecer",
"Restore Versions": "Restablecer Versións",
"Resume": "Continuar",
"Resume All": "Continuar Todo",
"Reused": "Reutilizado",
"Revert": "Desfacer",
"Revert Local Changes": "Desfacer os Cambios Locais",
"Save": "Gardar",
"Saving changes": "Gardando os cambios",
"Scan Time Remaining": "Tempo Restante de Reescaneo",
"Scanning": "Escaneando",
"Select All": "Seleccionar Todo",
"Select a version": "Seleccionar unha versión",
"Select additional devices to share this folder with.": "Seleccione dispositivos adicionais cos que compartir este cartafol.",
"Select additional folders to share with this device.": "Seleccione cartafois adicionais para compatir con este dispositivo.",
"Select latest version": "Seleccionar a última versión",
"Select oldest version": "Seleccionar a versión máis vella",
"Send & Receive": "Enviar e Recibir",
"Send Extended Attributes": "Enviar Atributos Extensos",
"Send Only": "Só Enviar",
"Send Ownership": "Enviar Propiedade",
"Settings": "Configuración",
"Share": "Compartir",
"Share Folder": "Compartir Cartafol",
"Share by Email": "Compartir por Correo Electrónico",
"Share by SMS": "Compartir por SMS",
"Share this folder?": "Compartir este cartafol?",
"Shared Folders": "Cartafois Compartidos",
"Shared With": "Compartido Con",
"Sharing": "Compartindo",
"Show ID": "Mostrar ID",
"Show QR": "Mostrar QR",
"Show detailed discovery status": "Mostrar estado detallado do descubrimento",
"Show detailed listener status": "Mostrar estado detallado da escoita",
"Show diff with previous version": "Mostrar a diferencia coa versión anterior",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Mostrado en lugar do ID de Dispositivo no estado do clúster. Anunciarase a outros dispositivos como nome por defecto opcional.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Mostrado en lugar do ID de Dispositivo no estado do clúster. Actualizarase ao nome que anuncia o dispositivo de se deixar baleiro.",
"Shutdown": "Apagar",
"Shutdown Complete": "Apagado Completado",
"Simple": "Simple",
"Simple File Versioning": "Versionado de Ficheiros Sinxelo",
"Single level wildcard (matches within a directory only)": "Comodín de primeiro nivel (só coincide ao nivel do directorio)",
"Size": "Tamaño",
"Smallest First": "Os máis pequenos primeiro",
"Some discovery methods could not be established for finding other devices or announcing this device:": "Algúns métodos de descubrimento non se puideron establecer para descubrir outros dispositivo ou anunciarse:",
"Some items could not be restored:": "Non se puideron recuperar algúns ítems:",
"Some listening addresses could not be enabled to accept connections:": "Algunhas direccións de escoita non se puideron habilitar para aceptar conexións:",
"Source Code": "Código Fonte",
"Stable releases and release candidates": "Versións estables e candidatos de lanzamento",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "As versións estables retrásanse ao redor de dúas semanas. Durante este tempo próbanse como candidatas de lanzamento.",
"Stable releases only": "Só versións estables",
"Start Browser": "Iniciar o Buscador",
"Statistics": "Estadísticas",
"Stay logged in": "Manter a sesión",
"Stopped": "Parado",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "Só almacena e sincroniza datos encriptados. Os cartafois en todos os dispositivos conectados necesitan configuarse co mesmo constrasinal ou ser do tipo \"{{receiveEncrypted}}\" tamén.",
"Subject:": "Asunto:",
"Sync Extended Attributes": "Sincronizar os Atributos Extendidos",
"Sync Ownership": "Sincronizar Propiedade",
"Sync Protocol Listen Addresses": "Direccións de Escoita do Protocolo de Sincronización",
"Sync Status": "Estado da Sincronización",
"Syncing": "Sincronizando",
"Syncthing device ID for \"{%devicename%}\"": "Sincronizando o ID de dispositivo para \"{{devicename}}\"",
"Syncthing has been shut down.": "Apagouse Syncthing.",
"Syncthing includes the following software or portions thereof:": "Syncthing inclúe todo o seguinte software ou porcións dos mesmos:",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Syncthing e Software Libre licenciado baixo a MPL v2.0.",
"Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Syncthing e un programa de sincronización de ficheiros continua. Sincroniza ficheiros entre dous ou máis computadores en tempo real, de maneira segura protexida de miradas indiscretas. Os teus datos son só teus e mereces elixir onde se gardan, se é cunha terceira parte, e como se transmiten pola rede.",
"Syncthing is listening on the following network addresses for connection attempts from other devices:": "Syncthing está escoitando nas seguintes direccións de rede intentos de conexión doutros dispositivos:",
"Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Syncthing non está escoitando intentos de conexión doutros dispositivos en ningunha dirección. Só funcionarán as conexións saíntes deste dispositivo.",
"Syncthing is restarting.": "Syncthing estase a reiniciar.",
"Syncthing is saving changes.": "Syncthing esta a gardar os cambios.",
"Syncthing is upgrading.": "Syncthing estase a actualizar.",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing agora pode reportar faios de xeito automático aos desenvolvedores. Esta característica está habilitada por defecto.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing parece estar apagado, ou hai un problema coa túa conexión de rede. Volvendo a intentalo…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Parece que Syncthing está a sufrir un problema procesando a túa petición. Por favor refresque a páxina ou reinicie Synthing se o problema perdura.",
"TCP LAN": "LAN TCP",
"TCP WAN": "WAN TCP",
"Take me back": "Léveme de volta",
"The GUI address is overridden by startup options. Changes here will not take effect while the override is in place.": "A dirección da GUI sobrescríbese polas opcións de arranque. Os cambios aquí non terán efecto mentres que a invalidación estea activa.",
"The Syncthing Authors": "Os Autores de Syncthing",
"The Syncthing admin interface is configured to allow remote access without a password.": "A inteface de aministración de Syncthing está configurada para permitir o acceso remoto sen ningún contrasinal.",
"The aggregated statistics are publicly available at the URL below.": "As estatísticas agregadas son públicas na URL de debaixo.",
"The cleanup interval cannot be blank.": "O intervalo de limpeza non pode estar en branco.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Gardouse a configuración pero non se activou. Ten que reiniciar Syncthing para activar a configuración nova.",
"The device ID cannot be blank.": "O ID de dispositivo non pode estar en branco.",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "O informe de uso encriptado envíase diariamente. Úsase para seguir plataformas comús, tamaños de cartafois e versións da aplicación. Se os datos que se envían cambian, preguntaráselle con este diálogo outra vez.",
"The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "O ID de dispositivo introducido non parece válido. Ten que ser unha cadea de 52 ou 56 caracteres consistente de letras e números, sendo opcionais os espacios e guións.",
"The folder ID cannot be blank.": "O ID de cartafol non pode estar en branco.",
"The folder ID must be unique.": "O ID de cartafol ten que ser único.",
"The folder content on other devices will be overwritten to become identical with this device. Files not present here will be deleted on other devices.": "O contenido do cartafol en outros dispositivos será sobrescrito para volverse identico con este dispositivo. Os ficheiros que non estean aquí eliminaranse nos outros dispositivos.",
"The folder content on this device will be overwritten to become identical with other devices. Files newly added here will be deleted.": "O contenido do cartafol neste dispositivo será sobrescrito para volverse idéntico aos outros dispositivos. Os ficheiros novos serán eliminados.",
"The folder path cannot be blank.": "A ruta do cartafol non pode estar en branco.",
"The following items could not be synchronized.": "Non se puido sincronizar os seguintes ítems.",
"The following items were changed locally.": "Cambiáronse localmente os seguintes ítems.",
"The following methods are used to discover other devices on the network and announce this device to be found by others:": "Os seguintes métodos úsanse para descubrir outros dispositivos na rede e anunciar este dispositivo para que o encontren outros:",
"The following text will automatically be inserted into a new message.": "O seguinte texto insertarse automaticamente nunha nova mensaxe.",
"The following unexpected items were found.": "Atopáronse os seguintes ítems inesperados.",
"The interval must be a positive number of seconds.": "O intervalo ten que ser un número positivo de segundos.",
"The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "O intervalo, en segundos, para executar a limpeza no directorio de versions. Cero para deshabilitar a limpeza periódica.",
"The maximum age must be a number and cannot be blank.": "A idade máxima ten que ser un número e non pode estar en branco.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Tempo máximo para manter unha versión (en días, poñer a 0 para manter as versión para sempre).",
"The number of connections must be a non-negative number.": "O número de conexións ten que ser un número non negativo.",
"The number of days must be a number and cannot be blank.": "O número de días ten que ser un número e non pode estar en branco.",
"The number of days to keep files in the trash can. Zero means forever.": "O número de días que manter os ficheiros no lixo. Cero é para sempre.",
"The number of old versions to keep, per file.": "O número de versión vellas a manter, por ficheiro.",
"The number of versions must be a number and cannot be blank.": "O número de versións ten que ser un número e non pode estar en branco.",
"The path cannot be blank.": "A ruta non pode estar en branco.",
"The rate limit is applied to the accumulated traffic of all connections to this device.": "O límite aplícase ao tráfico acumulado de todas as conexións deste dispositivo.",
"The rate limit must be a non-negative number (0: no limit)": "O límite ten que ser un número non negativo (0: sen límite)",
"The remote device has not accepted sharing this folder.": "O dispositivo remoto non aceptou a compartir este cartafol.",
"The remote device has paused this folder.": "O dispositivo remoto parou este cartafol.",
"The rescan interval must be a non-negative number of seconds.": "O intervalo de reescaneo ten que ser un número non negativo de segundos.",
"There are no devices to share this folder with.": "Non hai dispositivos cos que compartir este cartafol.",
"There are no file versions to restore.": "Non hai versións de ficheriso para restaurar.",
"There are no folders to share with this device.": "Non hai cartafois que compartir con este dispositivo.",
"This Device": "Este Dispositivo",
"This Month": "Este Mes",
"This can easily give hackers access to read and change any files on your computer.": "Esto pode dar acceso fácil a hackers para ler e cambiar ficheiros no teu compturador.",
"This device cannot automatically discover other devices or announce its own address to be found by others. Only devices with statically configured addresses can connect.": "Este dispositivo non pode descubrir outros dispositivos automaticamente ou anunciar a súa dirección a outros. So se poden contectar dispositivos con direccións estáticas configuradas.",
"This is a major version upgrade.": "Esta é unha actualización maior.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Este axuste controla o espacio en disco dispoñible necesario no disco principal (p.ej. índice da base de datos).",
"Time": "Hora",
"Time the item was last modified": "Hora na que se modificou o ficheiro por última vez",
"To connect with the Syncthing device named \"{%devicename%}\", add a new remote device on your end with this ID:": "Para conectar co dispositivo de Syncthing chamado \"{{devicename}}\", engada un dispositivo remoto novo con este ID:",
"To permit a rule, have the checkbox checked. To deny a rule, leave it unchecked.": "Para permitir una regra, marque esta caixa. Para negar una gregra, deixea sen marcar.",
"Today": "Hoxe",
"Trash Can": "Cubo do Lixo",
"Trash Can File Versioning": "Vesionado de Ficheiros co Lixo",
"Type": "Tipo",
"UNIX Permissions": "Permisos UNIX",
"Unavailable": "Non dispoñible",
"Unavailable/Disabled by administrator or maintainer": "Non dispoñible/Deshabilitado por un administrador ou mantedor",
"Undecided (will prompt)": "Sen decidir (preguntará)",
"Unexpected Items": "Ítems non espeardos",
"Unexpected items have been found in this folder.": "Atopáronse ítems non esperados neste cartafol.",
"Unignore": "Des-ignorar",
"Unknown": "Descoñecido",
"Unshared": "Des-compartido",
"Unshared Devices": "Dispositivos des-compartidos",
"Unshared Folders": "Cartafois des-compartidos",
"Untrusted": "Sen confiar",
"Up to Date": "Ao día",
"Updated {%file%}": "Actualizouse {{file}}",
"Upgrade": "Actualizar",
"Upgrade To {%version%}": "Actualizar A {{version}}",
"Upgrading": "Actualizando",
"Upload Rate": "Velocidade de Subida",
"Uptime": "Tempo de funcionamento",
"Usage reporting is always enabled for candidate releases.": "O informe de uso sempre está activado para as versións candidatas.",
"Use HTTPS for GUI": "Utilizar HTTPS para a GUI",
"Use notifications from the filesystem to detect changed items.": "Utilizar notificacións do sistema de ficheiros para detectar os ficheiros cambiados.",
"User": "Usuario",
"User Home": "Inicio do Usuario",
"Username/Password has not been set for the GUI authentication. Please consider setting it up.": "Non se configuraron o usuario e contrasinal para a autenticación da GUI. Por favor considere configuralo.",
"Using a QUIC connection over LAN": "Utilizando unha conexión QUIC en LAN",
"Using a QUIC connection over WAN": "Utilizando unha conexión QUIC en WAN",
"Using a direct TCP connection over LAN": "Utilizando unha conexión TCP directa en LAN",
"Using a direct TCP connection over WAN": "Utilizando unha conexión TCP directa en WAN",
"Version": "Versión",
"Versions": "Versións",
"Versions Path": "Ruta das Versións",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "As versións elimínanse automaticamente se son máis vellas que a idade máxima ou sobrepasan o número de ficheiros permitidos nun intervalo.",
"Waiting to Clean": "Esperando para Limpar",
"Waiting to Scan": "Esperando para Escanear",
"Waiting to Sync": "Esperando para Sincronizar",
"Warning": "Aviso",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Aviso, esta ruta é un directorio pai para outro cartafol existente \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Aviso, esta ruta e un directorio pai dun cartafol existente \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Aviso, esta ruta é un subdirectorio dun cartafol existente \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Aviso, esta ruta é un subdirectorio de un cartafol existente \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Ao engadir un dispositivo novo, teña en mente que tamén debe engadir o dispositivo do outro lado.",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "Ao engadir un cartafol novo, teña en mete que o ID de Cartafol úsase para enlazar os cartafois entre dispositivos. Son sensíbles a maiúsculas e teñen que coincidir exactamente entre dispositivos.",
"Yes": "Sí",
"Yesterday": "Onte",
"You can also copy and paste the text into a new message manually.": "Tamén pode copiar e pegar o texto nunha mensaxe de xeito manual.",
"You can also select one of these nearby devices:": "Tamén pode seleccionar un destes dispositivos cercanos:",
"You can change your choice at any time in the Settings dialog.": "Tamén pode cambiar a súa decisión en calqueira momento no diálogo de Opcións.",
"You can read more about the two release channels at the link below.": "Pode ler máis sobre as dúas canles de lanzamentos na ligazón de debaixo.",
"You have no ignored devices.": "Non ten dispositivos ignorados.",
"You have no ignored folders.": "Non ten cartafois ignorados.",
"You have unsaved changes. Do you really want to discard them?": "Ten cambios sen gardar. Realmente quere descartalos?",
"You must keep at least one version.": "Ten que manter ao menos unha versión.",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "Nunca debe engadir nen cambiar nada localmente nun cartafol \"{{receiveEncrypted}}\".",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "A súa aplicación SMS debe abrirse para deixarlle escoller un destinatario e envialo desde o seu propio número.",
"Your email app should open to let you choose the recipient and send it from your own address.": "A súa amplicación de correo debe abrirse para deixarlle escoller un destinatario e envialo desde a súa propia dirección.",
"days": "días",
"deleted": "eliminado",
"deny": "denegar",
"directories": "directorios",
"file": "ficheiro",
"files": "ficheiros",
"folder": "cartafol",
"full documentation": "documentación completa",
"items": "ítems",
"modified": "modificado",
"permit": "permitir",
"seconds": "segundos",
"theme": {
"name": {
"black": "Negro",
"dark": "Escuro",
"default": "Predeterminado",
"light": "Claro"
}
},
"unknown device": "dispositivo descoñecido",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} quere compartir o cartafol \"{{cartafol}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} quere compartir o cartafol \"{{folderlabel}}\" ({{folder}})."
}

View File

@@ -6,11 +6,14 @@
"About": "Om",
"Action": "Handling",
"Actions": "Handlinger",
"Active filter rules": "Regler for aktive filtre",
"Add": "Legg til",
"Add Device": "Legg til enhet",
"Add Folder": "Legg til mappe",
"Add Remote Device": "Legg til ekstern enhet",
"Add devices from the introducer to our device list, for mutually shared folders.": "Legg til enheter fra introdusøren til vår enhetsliste, for innbyrdes delte mapper.",
"Add filter entry": "Legge til filteroppføring",
"Add ignore patterns": "Legg til ignorerte mønstre",
"Add new folder?": "Legg til ny mappe?",
"Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "I tillegg vil omskanningsintervallen bli økt (ganger 60. altså nytt forvalg på 1t). Du kan også sette den opp manuelt for hver mappe senere etter å ha valgt \"Nei\".",
"Address": "Adresse",
@@ -18,15 +21,26 @@
"Advanced": "Avansert",
"Advanced Configuration": "Avanserte innstillinger",
"All Data": "Alle data",
"All Time": "All tid",
"All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "Alle mapper som deles med denne enheten må beskyttes av et passord, slik at alle sendte data er uleselige uten det oppgitte passordet.",
"Allow Anonymous Usage Reporting?": "Tillat anonym innsamling av brukerdata?",
"Allowed Networks": "Tillatte nettverk",
"Alphabetic": "Alfabetisk",
"Altered by ignoring deletes.": "Endret ved å ignorere slettinger.",
"An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "En ekstern kommando tar hånd om versjoneringen. Den må fjerne filen fra den delte mappen. Hvis stien til programmet inneholder mellomrom, må den siteres.",
"Anonymous Usage Reporting": "Anonym innsamling av brukerdata",
"Anonymous usage report format has changed. Would you like to move to the new format?": "Det anonyme bruksrapportformatet har endret seg. Ønsker du å gå over til det nye formatet?",
"Applied to LAN": "Gjelder LAN",
"Apply": "Bruk",
"Are you sure you want to override all remote changes?": "Er du sikker på at du vil overstyre alle eksterne endringer?",
"Are you sure you want to permanently delete all these files?": "Er du sikker på at du vil slette alle disse filene permanent?",
"Are you sure you want to remove device {%name%}?": "Er du sikker på at du ønsker å fjerne enheten {{name}}?",
"Are you sure you want to remove folder {%label%}?": "Er du sikker på at du ønsker å fjerne mappen {{label}}?",
"Are you sure you want to restore {%count%} files?": "Er du sikker på at du ønsker å gjenopprette {{count}} filer?",
"Are you sure you want to revert all local changes?": "Er du sikker på at du vil tilbakestille alle lokale endringer?",
"Are you sure you want to upgrade?": "Er du sikker på at du vil oppgradere?",
"Authentication Required": "Autentisering kreves",
"Authors": "Forfattere",
"Auto Accept": "Godta automatisk",
"Automatic Crash Reporting": "Automatisk krasjrapportering",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Automatisk oppgradering lar deg nå få valget mellom ferdige utgaver og utgivelseskandidater.",
@@ -35,29 +49,58 @@
"Automatically create or share folders that this device advertises at the default path.": "Opprett eller del mapper automatisk i mapper som denne enheten melder som forvalgt mappe.",
"Available debug logging facilities:": "Tilgjengelige funksjoner for logging i feilrettingsøyemed:",
"Be careful!": "Vær forsiktig!",
"Body:": "Kropp:",
"Bugs": "Programfeil",
"Cancel": "Avbryt",
"Changelog": "Endringslogg",
"Clean out after": "Tøm etter",
"Cleaning Versions": "Tømme versjoner",
"Cleanup Interval": "Tømme intervall",
"Click to see full identification string and QR code.": "Klikk for å se hele identifikasjonsstrengen og QR-koden.",
"Close": "Lukk",
"Command": "Kommando",
"Comment, when used at the start of a line": "Kommentar, når det blir brukt i starten av en linje.",
"Comment, when used at the start of a line": "Kommentar, når det blir brukt i starten av en linje",
"Compression": "Komprimering",
"Configuration Directory": "Konfigurasjonskatalog",
"Configuration File": "Konfigurasjonsfil",
"Configured": "Oppsatt",
"Connected (Unused)": "Tilkoblet (ubrukt)",
"Connection Error": "Tilkoblingsfeil",
"Connection Management": "Tilkoblingsadministrasjon",
"Connection Type": "Tilkoblingstype",
"Connections": "Tilkoblinger",
"Connections via relays might be rate limited by the relay": "Tilkoblinger via releer kan være hastighetsbegrenset av reléet",
"Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "Kontinuerlig oppsyn med endringer er nå tilgjengelig i Syncthing. Dette vil oppdage endringer på disk, og utstede full skanning bare for endrede deler. Fordelen er at endringer sprer seg raskere, og at færre fulle skanninger kreves.",
"Copied from elsewhere": "Kopiert fra et annet sted",
"Copied from original": "Kopiert fra original",
"Copied!": "Kopiert!",
"Copy": "Kopier",
"Copy failed! Try to select and copy manually.": "Kopiering mislyktes! Prøv å merke og kopiere manuelt.",
"Currently Shared With Devices": "Deles for øyeblikket med enheter",
"Custom Range": "Tilpasset område",
"Danger!": "Fare!",
"Database Location": "Database plassering",
"Debugging Facilities": "Feilrettingsverktøy",
"Default": "Standard",
"Default Configuration": "Standard konfigurasjon",
"Default Device": "Standard enhet",
"Default Folder": "Standard mappe",
"Default Ignore Patterns": "Standard ignoreringsmønstre",
"Defaults": "Standarder",
"Delete": "Slett",
"Delete Unexpected Items": "Slett uventede elementer",
"Deleted {%file%}": "Slettet {{file}}",
"Deselect All": "Fjern alle markeringer",
"Deselect devices to stop sharing this folder with.": "Fjern merkingen av enheter for å slutte å dele denne mappen med dem.",
"Deselect folders to stop sharing with this device.": "Fjern merkingen av mapper for å slutte å dele med denne enheten.",
"Device": "Enhet",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Enhet \"{{name}}\" ({{device}} på {{address}}) ønsker å koble til. Legge til ny enhet?",
"Device Certificate": "Enhetssertifikat",
"Device ID": "Enhets-ID",
"Device Identification": "Enhetskjennemerke",
"Device Identification": "Enhetsidentifikasjon",
"Device Name": "Navn på enhet",
"Device Status": "Enhetsstatus",
"Device is untrusted, enter encryption password": "Enheten er ikke godkjent, angi krypteringspassord",
"Device rate limits": "enhetshastighetsgrense",
"Device that last modified the item": "Enheten som sist endret elementet",
"Devices": "Enheter",
@@ -66,30 +109,42 @@
"Disabled periodic scanning and disabled watching for changes": "Skrudde av både periodisk skanning og oppsyn med endringer",
"Disabled periodic scanning and enabled watching for changes": "Skrudde av periodisk skanning og skrudde på oppsyn med endringer",
"Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "Skrudde av periodisk skanning og mislyktes i oppsett av oppsyn med endringer, prøver igjen hvert minutt:",
"Disables comparing and syncing file permissions. Useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android).": "Deaktiverer sammenligning og synkronisering av filtillatelser. Nyttig på systemer med ikke-eksisterende eller tilpassede tillatelser (f.eks. FAT, exFAT, Synology, Android).",
"Discard": "Kasser",
"Disconnected": "Frakoblet",
"Disconnected (Inactive)": "Frakoblet (inaktiv)",
"Disconnected (Unused)": "Frakoblet (ubrukt)",
"Discovered": "Oppdaget",
"Discovery": "Oppslag",
"Discovery": "Oppdagelse",
"Discovery Failures": "Oppslagsfeil",
"Discovery Status": "Oppdagelses status",
"Dismiss": "Avvis",
"Do not add it to the ignore list, so this notification may recur.": "Ikke legg den til i ignoreringslisten, så dette varselet kan gjentas.",
"Do not restore": "Ikke gjenopprett",
"Do not restore all": "Ikke gjenopprett alle",
"Do you want to enable watching for changes for all your folders?": "Ønsker du å skru på oppsyn med endringer for alle dine mapper?",
"Documentation": "Dokumentasjon",
"Download Rate": "Nedlastingsrate",
"Download Rate": "Nedlastingshastighet",
"Downloaded": "Lastet ned",
"Downloading": "Laster ned",
"Edit": "Rediger",
"Edit Device": "Rediger enhet",
"Edit Device Defaults": "Endre enhetens standardverdier",
"Edit Folder": "Rediger mappe",
"Edit Folder Defaults": "Endre mappens standardverdier",
"Editing {%path%}.": "Redigerer {{path}}.",
"Enable Crash Reporting": "Skru på krasjrapportering",
"Enable NAT traversal": "Slå på NAT-traversering",
"Enable Relaying": "Aktiver reléforsendelse",
"Enabled": "Påskrudd",
"Enables sending extended attributes to other devices, and applying incoming extended attributes. May require running with elevated privileges.": "Gjør det mulig å sende utvidede attributter til andre enheter og bruke innkommende utvidede attributter. Kan kreve kjøring med utvidede rettigheter.",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Skriv inn et ikke-negativt nummer (f.eks. \"2.35\") og velg en enhet. Prosenter er deler av total diskstørrelse.",
"Enter a non-privileged port number (1024 - 65535).": "Skriv inn et ikke-priviligert portnummer (1024-65535).",
"Enter ignore patterns, one per line.": "Skriv inn mønster som skal utelates, ett per linje.",
"Error": "Feilmelding",
"Extended Attributes": "Utvidede attributter",
"Extended Attributes Filter": "Utvidede attributters filter",
"External": "Ekstern",
"External File Versioning": "Ekstern versjonskontroll",
"Failed Items": "Elementsynkronisering som har mislyktes",
"Failed to setup, retrying": "Klarte ikke å utføre oppsett, prøver igjen",
@@ -106,6 +161,7 @@
"Folder ID": "Mappe-ID",
"Folder Label": "Merkelapp for mappe",
"Folder Path": "Mappeplassering",
"Folder Status": "Mappe status",
"Folder Type": "Mappetype",
"Folders": "Mapper",
"Full Rescan Interval (s)": "Intervall for fullstendig omskanning (s)",
@@ -116,25 +172,32 @@
"GUI Theme": "GUI-tema",
"General": "Hovedinnstillinger",
"Generate": "Generer",
"Global Discovery": "Globalt oppslag",
"Global Discovery Servers": "Globale oppslagstjenere",
"Global Discovery": "Global oppdagelse",
"Global Discovery Servers": "Globale oppdagelses servere",
"Global State": "Global tilstand",
"Help": "Hjelp",
"Home page": "Hjemmeside",
"Identification": "Identifikasjon",
"Ignore": "Ignorer",
"Ignore Patterns": "Utelatelsesmønster",
"Ignore Permissions": "Ignorer rettigheter",
"Ignored Devices": "Ignorerte enheter",
"Ignored Folders": "Utelatte mapper",
"Ignored at": "Ignorert i",
"Included Software": "Inkludert programvare",
"Incoming Rate Limit (KiB/s)": "Innkommende hastighetsbegrensning (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Feilaktige innstillinger kan skade innholdet i dine delte mapper og hindre Syncthing i å fungere.",
"Incorrect user name or password.": "Feil brukernavn eller passord.",
"Introduced By": "Introdusert av",
"Introducer": "Introduktør",
"Introduction": "Introduksjon",
"Inversion of the given condition (i.e. do not exclude)": "Invers av den gitte tilstanden (dvs. ekskluder ikke)",
"Keep Versions": "Behold versjoner",
"LDAP": "LDAP",
"Largest First": "Største fil først",
"Last 30 Days": "Siste 30 dager",
"Last 7 Days": "Siste 7 dager",
"Last Month": "Sist måned",
"Last Scan": "Siste gjennomsøking",
"Last seen": "Sist sett",
"Latest Change": "Sist endret",
@@ -143,11 +206,14 @@
"Listeners": "Lyttere",
"Loading data...": "Laster inn data…",
"Loading...": "Laster…",
"Local Discovery": "Lokalt oppslag",
"Local Discovery": "Lokal oppdagelse",
"Local State": "Lokal tilstand",
"Local State (Total)": "Lokal tilstand (total)",
"Locally Changed Items": "Lokalt endrede elementer",
"Log": "Logg",
"Log File": "Loggfil",
"Log In": "Logg inn",
"Log Out": "Logg ut",
"Logs": "Logger",
"Major Upgrade": "Storoppgradering",
"Mass actions": "Massehandlinger",
@@ -156,6 +222,9 @@
"Minimum Free Disk Space": "Nødvendig ledig diskplass",
"Mod. Device": "Endringsenhet",
"Mod. Time": "Endringstid",
"More than a month ago": "Mer enn en måned siden",
"More than a week ago": "Mer enn en uke siden",
"More than a year ago": "Mer enn et år siden",
"Move to top of queue": "Flytt fremst i køen",
"Multi level wildcard (matches multiple directory levels)": "Multinivåsøk (søker på flere mappenivå)",
"Never": "Aldri",
@@ -166,15 +235,19 @@
"No File Versioning": "Ingen versjonskontroll",
"No files will be deleted as a result of this operation.": "Ingen filer vil bli slettet som følge av denne operasjonen.",
"No upgrades": "Ingen oppgraderinger",
"Not shared": "Ikke delt",
"Notice": "Merknader",
"OK": "OK",
"Off": "Av",
"Oldest First": "Den eldste først",
"Optional descriptive label for the folder. Can be different on each device.": "Valgfri merkelapp på mappa. Denne kan være ulik på forskjellige enheter",
"Optional descriptive label for the folder. Can be different on each device.": "Valgfri merkelapp på mappa. Denne kan være ulik på forskjellige enheter.",
"Options": "Valg",
"Out of Sync": "Ikke synkronisert",
"Out of Sync Items": "Usynkroniserte elementer",
"Outgoing Rate Limit (KiB/s)": "Utgående hastighetsbegrensning (KiB/s)",
"Override Changes": "Overstyr endringer",
"Ownership": "Eierskap",
"Password": "Passord",
"Path": "Sti",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Plasseringen av mappen på datamaskinen. Denne vil bli opprettet dersom den ikke finnes. Krøllstrektegnet (~) kan brukes som forkortelse for",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Plasseringen for lagrede versjoner (la denne være tom for å bruke den forvalgte .stversions-mappa i den delte mappa).",
@@ -192,20 +265,22 @@
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefiks som indikerer at mønsteret skal samsvare uten versalsensitivitet",
"Preview": "Forhåndsvisning",
"Preview Usage Report": "Forhåndsvisning av datainnsamling",
"QR code": "QR kode",
"Quick guide to supported patterns": "Kjapp innføring i godkjente mønstre",
"Random": "Tilfeldig",
"Receive Encrypted": "Motta kryptert",
"Receive Only": "Bare motta",
"Recent Changes": "Nylige endringer",
"Reduced by ignore patterns": "Reduser med utelatelsesmønster",
"Release Notes": "Utgivelsesnotat",
"Release Notes": "Utgivelsesnotater",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Utgivelseskandidater inneholder de seneste problemfiksene og funksjonene. De ligner på de tradisjonelle Syncthing-utgivelsene som kom hver andre uke.",
"Remote Devices": "Andre enheter",
"Remove": "Fjern",
"Remove Device": "Fjern enhet",
"Remove Folder": "Fjern mappe",
"Required identifier for the folder. Must be the same on all cluster devices.": "Påkrevd identifikator for mappa. Denne må være lik på alle enheter i samme klynge.",
"Rescan": "Gjennomsøk på nytt",
"Rescan All": "Gjennomsøk alt på nytt",
"Rescan": "Gjennomsøk",
"Rescan All": "Gjennomsøk alt",
"Rescans": "Omskanninger",
"Restart": "Omstart",
"Restart Needed": "Omstart kreves",
@@ -217,6 +292,7 @@
"Reused": "Gjenbrukt",
"Revert Local Changes": "Tilbakestill lokale endringer",
"Save": "Lagre",
"Saving changes": "Lagrer endringer",
"Scan Time Remaining": "Gjenstående tid for gjennomsøking",
"Scanning": "Gjennomsøker",
"See external versioning help for supported templated command line parameters.": "Se ekstern versjoneringshjelp for støttede mal-baserte kommandolinjeparameter.",
@@ -226,10 +302,14 @@
"Select oldest version": "Velg eldste versjon",
"Send & Receive": "Sende og motta",
"Send Only": "Bare send",
"Send Ownership": "Send eierskap",
"Settings": "Innstillinger",
"Share": "Del",
"Share Folder": "Del mappe",
"Share by Email": "Del via epost",
"Share by SMS": "Del via SMS",
"Share this folder?": "Del denne mappa?",
"Shared Folders": "Delte mapper",
"Shared With": "Delt med",
"Sharing": "Deling",
"Show ID": "Vis ID",
@@ -239,6 +319,7 @@
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Vist i stedet for mappe-ID i gruppestatus. Vil bli oppdatert til navnet enheten kringkaster dersom tomt.",
"Shutdown": "Avslutt",
"Shutdown Complete": "Avslutning fullført",
"Simple": "Enkel",
"Simple File Versioning": "Enkel versjonskontroll",
"Single level wildcard (matches within a directory only)": "Enkeltnivåsøk (søker kun i en mappe)",
"Size": "Størrelse",
@@ -251,32 +332,39 @@
"Staggered File Versioning": "Forskjøvet versjonskontroll",
"Start Browser": "Start nettleser",
"Statistics": "Statistikk",
"Stay logged in": "Forbli innlogget",
"Stopped": "Stoppet",
"Support": "Brukerstøtte",
"Support Bundle": "Støttebunt",
"Sync Extended Attributes": "Synkroniser utvidede attributter",
"Sync Ownership": "Synkroniser eierskap",
"Sync Protocol Listen Addresses": "Lytteadresse for synkroniseringsprotokoll",
"Sync Status": "Synkroniser status",
"Syncing": "Synkroniserer",
"Syncthing has been shut down.": "Syncthing har blitt slått av.",
"Syncthing includes the following software or portions thereof:": "Syncthing inkluderer helt eller delvis følgende programvare:",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Syncthing er fri programvare med MPL v2.0-lisens.",
"Syncthing is restarting.": "Syncthing starter på ny.",
"Syncthing is saving changes.": "Syncthing lagrer endringer.",
"Syncthing is upgrading.": "Syncthing oppgraderer.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing ser ut til å være nede, eller så er det et problem med nettforbindelsen din. Prøver på ny …",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing ser ut til å ha støtt på et problem under behandling av din forespørsel. Gjenoppfrisk nettleseren eller start Syncthing på nytt dersom problemet vedvarer.",
"Take me back": "Gå tilbake",
"The Syncthing Authors": "Syncthings forfattere",
"The Syncthing admin interface is configured to allow remote access without a password.": "Grensesnittet for administrering av Syncthing er satt til å tillate ekstern tilgang uten et passord.",
"The aggregated statistics are publicly available at the URL below.": "Innsamlet statistikk er åpent tilgjengelig via nettadressen angitt nedenfor.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Innstillingene har blitt lagret men ikke aktivert. Syncthing må starte på ny for å aktivere de nye innstillingene.",
"The device ID cannot be blank.": "Enhets-ID kan ikke være tom.",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "Enhets-ID som skal skrives her kan du finne i menyen \"Handlinger\" > \"Vis ID\" på den andre enheten. Mellomrom og strek er valgfritt (ignoreres)",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "Enhets-ID som skal skrives her kan du finne i menyen \"Handlinger\" > \"Vis ID\" på den andre enheten. Mellomrom og strek er valgfritt (ignoreres).",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "Kryptert informasjon om bruken av programmet blir gjort daglig. Dette blir brukt til å følge med på vanlig brukte systemoppsett, størrelser på mapper, og versjoner av programmet. Om datasettet endrer seg vil denne dialogboksen dukke opp og du vil bli bedt om å godkjenne dette.",
"The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "ID-en for denne enheten er ikke godkjent. Det bør være 52 eller 56 tegn bestående av bokstaver og tall, valgfritt med mellomrom og bindestrek.",
"The folder ID cannot be blank.": "Mappe-ID kan ikke være tom.",
"The folder ID must be unique.": "Mappe-ID må være unik.",
"The folder path cannot be blank.": "Mappeplasseringen kan ikke være tom.",
"The folder path cannot be blank.": "Mappe-stien kan ikke være tom.",
"The following intervals are used: for the first hour a version is kept every 30 seconds, for the first day a version is kept every hour, for the first 30 days a version is kept every day, until the maximum age a version is kept every week.": "Følgende intervall blir brukt: Den første timen blir en versjon lagret hvert 30. sekund, den første dagen blir en versjon lagret hver time, de første 30 dagene blir en versjon lagret hver dag, og inntil maksimal levetid blir en versjon lagret hver uke.",
"The following items could not be synchronized.": "Følgende filer kunne ikke synkroniseres.",
"The following items were changed locally.": "Følgende elementer ble endret lokalt.",
"The following text will automatically be inserted into a new message.": "Den følgende teksten vil automatisk bli lagt til i en ny melding.",
"The maximum age must be a number and cannot be blank.": "Maksimal levetid må være et tall og kan ikke være tomt.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Maksimal tid å beholde en versjon (i dager, sett til 0 for å beholde versjoner på ubegrenset tid).",
"The number of days must be a number and cannot be blank.": "Antall dager må være et tall og kan ikke være tomt.",
@@ -286,34 +374,46 @@
"The path cannot be blank.": "Plasseringen kan ikke være tom.",
"The rate limit must be a non-negative number (0: no limit)": "Hastighetsbegrensningen kan ikke være et negativt tall (0: ingen begrensing)",
"The rescan interval must be a non-negative number of seconds.": "Antall sekund for intervallet kan ikke være negativt.",
"There are no file versions to restore.": "Det er ingen filversjoner å gjenopprette.",
"There are no folders to share with this device.": "Det er ingen mapper å dele med denne enheten.",
"They are retried automatically and will be synced when the error is resolved.": "Disse hentes automatisk og vil synkroniseres når feilen er blitt utbedret.",
"This Device": "Denne enheten",
"This Month": "Denne måned",
"This can easily give hackers access to read and change any files on your computer.": "Dette kan lett gi hackere tilgang til å lese og endre alle filer på datamaskinen din.",
"This is a major version upgrade.": "Dette er en storoppgradering",
"This is a major version upgrade.": "Dette er en stor versjonsoppgradering.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Denne innstillingen kontrollerer ledig diskplass krevd på hjemme- (f.eks. indekseringsdatabase-) disken.",
"Time": "Klokkeslett",
"Time the item was last modified": "Tidspunktet elementet sist ble endret",
"Today": "I dag",
"Trash Can File Versioning": "Papirkurv versjonskontroll",
"UNIX Permissions": "UNIX tillatelser",
"Unavailable": "Utilgjengelig",
"Unavailable/Disabled by administrator or maintainer": "Utilgjengelig/avskrudd av administrator eller vedlikeholder",
"Undecided (will prompt)": "Ikke bestemt (vil spørre)",
"Unignore": "Ikke ignorer",
"Unknown": "Ukjent",
"Unshared": "Ikke delt",
"Unshared Devices": "Udelte enheter",
"Unshared Folders": "Udelte mapper",
"Up to Date": "Oppdatert",
"Updated {%file%}": "Oppdatert {{file}}",
"Upgrade": "Oppgradere",
"Upgrade To {%version%}": "Oppgrader til {{version}}",
"Upgrading": "Oppgraderer",
"Upload Rate": "Opplastingsrate",
"Uptime": "Oppetid",
"Usage reporting is always enabled for candidate releases.": "Bruksrapportering er alltid påslått for utgivelseskandidater",
"Usage reporting is always enabled for candidate releases.": "Bruksrapportering er alltid påslått for utgivelseskandidater.",
"Use HTTPS for GUI": "Bruk HTTPS for GUI",
"Use notifications from the filesystem to detect changed items.": "Bruk varslinger fra filsystemet for å oppdage endrede elementer.",
"User": "Bruker",
"Version": "Versjon",
"Versions": "Versjoner",
"Versions Path": "Plassering av versjoner",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Versjoner blir automatisk slettet når maksimal levetid er nådd eller når antall filer er oversteget.",
"Waiting to Clean": "Venter på å rydde opp",
"Waiting to Scan": "Venter på å starte gjennomsøkning",
"Waiting to Sync": "Venter på å synkronisere",
"Warning": "Advarsel",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Advarsel, denne stien er en foreldremappe for en eksisterende mappe \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Advarsel, denne stien er en foreldremappe for en eksisterende mappe \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Advarsel, denne stien er en undermappe i en eksisterende mappe \"{{otherFolder}}\".",
@@ -324,18 +424,39 @@
"When adding a new device, keep in mind that this device must be added on the other side too.": "Når du legger til en ny enhet, husk at enheten må legges til på andre siden også.",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "Når en ny mappe blir lagt til, husk at Mappe-ID blir brukt til å binde sammen mapper mellom enheter. Det er forskjell på store og små bokstaver, så IDene må være identiske på alle enhetene.",
"Yes": "Ja",
"Yesterday": "I går",
"You can also copy and paste the text into a new message manually.": "Du kan også kopiere og lime inn teksten i en ny melding manuelt.",
"You can also select one of these nearby devices:": "Du kan også velge en av disse enhetene i nærheten:",
"You can change your choice at any time in the Settings dialog.": "Du kan endre ditt valg når som helst i innstillingene.",
"You can read more about the two release channels at the link below.": "Du kan lese mer om de to nye utgivelseskanalene i lenken nedenfor.",
"You have no ignored devices.": "Du har ingen ignorerte enheter.",
"You have no ignored folders.": "Du har ingen ignorerte mapper.",
"You must keep at least one version.": "Du må beholde minst én versjon",
"You have unsaved changes. Do you really want to discard them?": "Du har ulagrede endringer. Vil du virkelig forkaste dem?",
"You must keep at least one version.": "Du må beholde minst én versjon.",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "Du bør aldri legge til eller endre noe lokalt i en \"{{receiveEncrypted}}\" mappe.",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "SMS-appen din vil åpnes slik at du kan velge mottaker og sende den fra ditt eget nummer.",
"Your email app should open to let you choose the recipient and send it from your own address.": "E-postappen din vil åpnes slik at du kan velge mottaker og sende den fra din egen adresse.",
"days": "dager",
"deleted": "slettet",
"deny": "avvis",
"directories": "mapper",
"file": "fil",
"files": "filer",
"full documentation": "all dokumentasjon",
"folder": "mappe",
"full documentation": "full dokumentasjon",
"items": "elementer",
"modified": "endret",
"permit": "tillat",
"seconds": "sekunder",
"theme": {
"name": {
"black": "Sort",
"dark": "Mørk",
"default": "Standard",
"light": "Lys"
}
},
"unknown device": "ukjent enhet",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} ønsker å dele mappa \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} ønsker å dele mappa \"{{folderlabel}}\" ({{folder}})."
}

View File

@@ -1,6 +1,6 @@
{
"A device with that ID is already added.": "Устройство с таким ID уже добавлено.",
"A negative number of days doesn't make sense.": "Отрицательное число дней не имеет значения.",
"A negative number of days doesn't make sense.": "Число дней не может быть отрицательным.",
"A new major version may not be compatible with previous versions.": "Новое обновление основной версии может быть несовместимо с предыдущими версиями.",
"API Key": "Ключ API",
"About": "О программе",

View File

@@ -1,62 +1,62 @@
{
"A device with that ID is already added.": "已添加过相同 ID 的设备。",
"A device with that ID is already added.": "已添加过相同 ID 的设备。",
"A negative number of days doesn't make sense.": "天数不能为负。",
"A new major version may not be compatible with previous versions.": "新的版本可能与前的版本之间无法兼容。",
"A new major version may not be compatible with previous versions.": "新的主要版本可能与前的版本兼容。",
"API Key": "API 密钥",
"About": "关于",
"Action": "操作",
"Actions": "操作",
"Active filter rules": "活跃的过滤器规则",
"Active filter rules": "活动的筛选规则",
"Add": "添加",
"Add Device": "添加设备",
"Add Folder": "添加文件夹",
"Add Remote Device": "添加远程设备",
"Add devices from the introducer to our device list, for mutually shared folders.": "将这个设备上那些,跟本机有着共同文件夹的“远程设备”,都添加到本机的“远程设备列表。",
"Add filter entry": "添加过滤器条目",
"Add ignore patterns": "加忽略模式",
"Add devices from the introducer to our device list, for mutually shared folders.": "将中介中的设备添加到我们的设备列表中,用于相互共享的文件夹。",
"Add filter entry": "添加筛选器条目",
"Add ignore patterns": "加忽略模式",
"Add new folder?": "添加新文件夹?",
"Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "另外,完重新扫描的间隔将增(乘以 60例如默认值将变为 1 小时)。也可以在选择“否”后手动配置每个文件夹的时间。",
"Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "另外,完重新扫描的间隔将增(乘以 60例如默认值将变为 1 小时)。也可以在选择“否”后手动配置每个文件夹。",
"Address": "地址",
"Addresses": "地址列表",
"Addresses": "地址",
"Advanced": "高级",
"Advanced Configuration": "高级配置",
"All Data": "所有数据",
"All Time": "所有时间",
"All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "与此设备共享的所有文件夹都必须有密码保护,这样所有发送的数据在没有密码的情况下是不可读的。",
"Allow Anonymous Usage Reporting?": "允许匿名使用报告?",
"Allow Anonymous Usage Reporting?": "允许发送匿名使用报告吗?",
"Allowed Networks": "允许的网络",
"Alphabetic": "字母顺序",
"Altered by ignoring deletes.": "被“忽略删除”修改。",
"An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "外部命令接管了版本控制。该外部命令必须自行从共享文件夹中删除该文件。如果应用程序的路径包含空格,应用半角引号括起来。",
"Altered by ignoring deletes.": "通过忽略删除进行更改。",
"An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "外部命令处理版本控制。必须从共享文件夹中移除文件。如果应用程序的路径包含空格,应用半角引号括起来。",
"Anonymous Usage Reporting": "匿名使用报告",
"Anonymous usage report format has changed. Would you like to move to the new format?": "匿名使用情况的报告格式已经变更。是否要迁移到新格式?",
"Anonymous usage report format has changed. Would you like to move to the new format?": "匿名使用报告格式已更。是否要切换到新格式?",
"Applied to LAN": "已应用到局域网",
"Apply": "应用",
"Are you sure you want to override all remote changes?": "确定要覆盖所有远程更改吗?",
"Are you sure you want to permanently delete all these files?": "确认要永久删除这些文件",
"Are you sure you want to remove device {%name%}?": "确定要移除设备 {{name}}",
"Are you sure you want to remove folder {%label%}?": "确定要移除文件夹 {{label}}",
"Are you sure you want to restore {%count%} files?": "确定要恢复 {{count}} 个文件",
"Are you sure you want to revert all local changes?": "确定要撤销所有本地更改吗?",
"Are you sure you want to upgrade?": "确定要升级",
"Are you sure you want to override all remote changes?": "是否确定要覆盖所有远程更改",
"Are you sure you want to permanently delete all these files?": "是否确定要永久删除所有这些文件?",
"Are you sure you want to remove device {%name%}?": "是否确定要移除设备 {{name}}",
"Are you sure you want to remove folder {%label%}?": "是否确定要移除文件夹 {{label}}",
"Are you sure you want to restore {%count%} files?": "是否确定要恢复 {{count}} 个文件?",
"Are you sure you want to revert all local changes?": "是否确定要还原所有本地更改",
"Are you sure you want to upgrade?": "是否确定要升级?",
"Authentication Required": "需要身份验证",
"Authors": "作者",
"Auto Accept": "自动接受",
"Automatic Crash Reporting": "自动发送崩溃报告",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "自动升级现在提供了稳定版本和候选发布版的选项。",
"Automatic upgrades": "自动升级",
"Automatic upgrades are always enabled for candidate releases.": "候选发布版会一直启用自动升级。",
"Automatically create or share folders that this device advertises at the default path.": "在本机默认文件夹中,自动创建或共享这个设备共享出来的所有文件夹。",
"Automatic upgrades are always enabled for candidate releases.": "候选版本始终启用自动升级。",
"Automatically create or share folders that this device advertises at the default path.": "自动创建或共享此设备在默认路径上显示的文件夹。",
"Available debug logging facilities:": "可用的调试日志功能:",
"Be careful!": "小心!",
"Body:": "正文:",
"Bugs": "问题回报",
"Bugs": "问题反馈",
"Cancel": "取消",
"Changelog": "更新日志",
"Clean out after": "在该时间后清除",
"Cleaning Versions": "清版本",
"Cleaning Versions": "清版本",
"Cleanup Interval": "清除间隔",
"Click to see full identification string and QR code.": "击查看完整的识字符串和二维码。",
"Click to see full identification string and QR code.": "击查看完整的识字符串和二维码。",
"Close": "关闭",
"Command": "命令",
"Comment, when used at the start of a line": "注释,在行首使用",
@@ -65,17 +65,17 @@
"Configuration File": "配置文件",
"Configured": "已配置",
"Connected (Unused)": "已连接(未使用)",
"Connection Error": "连接错",
"Connection Error": "连接错",
"Connection Management": "连接管理",
"Connection Type": "连接类型",
"Connections": "连接",
"Connections via relays might be rate limited by the relay": "经由中继的连接可能会被中继限制速率",
"Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "Syncthing 现在可以持续监视更改。这将检测磁盘上的更改,然后对有修改的路径发起扫描。这样的好处是更改可以更快地传播,且需要的完扫描更少。",
"Copied from elsewhere": "从其设备复制",
"Connections via relays might be rate limited by the relay": "通过中继的连接可能受中继的速率限制",
"Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "现在,Syncthing 中提供了持续监视更改的功能。这将检测磁盘上的更改,并仅对修改的路径进行扫描。好处是更改传播得更快,所需的完扫描更少。",
"Copied from elsewhere": "从其设备复制",
"Copied from original": "从源复制",
"Copied!": "已复制!",
"Copy": "复制",
"Copy failed! Try to select and copy manually.": "复制失败!尝试手动选择复制。",
"Copy failed! Try to select and copy manually.": "复制失败!尝试手动选择复制。",
"Currently Shared With Devices": "当前设备已共享",
"Custom Range": "自定义范围",
"Danger!": "危险!",
@@ -86,48 +86,48 @@
"Default Device": "默认设备",
"Default Folder": "默认文件夹",
"Default Ignore Patterns": "默认忽略模式",
"Defaults": "默认",
"Defaults": "默认",
"Delete": "删除",
"Delete Unexpected Items": "删除特殊项目",
"Deleted {%file%}": "{{file}} 已删除",
"Delete Unexpected Items": "删除意外项目",
"Deleted {%file%}": "删除了 {{file}}",
"Deselect All": "取消全选",
"Deselect devices to stop sharing this folder with.": "取消选择设备以停止共享此文件夹。",
"Deselect devices to stop sharing this folder with.": "取消选择要停止与之共享此文件夹的设备。",
"Deselect folders to stop sharing with this device.": "取消选择文件夹以停止与此设备共享。",
"Device": "设备",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "设备 \"{{name}}\"(位于 {{address}} 的 {{device}}请求连接。是否添加新设备?",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "设备{{name}}”({{address}} 的 {{device}}想要连接。添加新设备?",
"Device Certificate": "设备证书",
"Device ID": "设备 ID",
"Device Identification": "设备标识",
"Device Name": "设备名",
"Device Status": "设备状态",
"Device is untrusted, enter encryption password": "设备不可信,请输入加密密码",
"Device is untrusted, enter encryption password": "设备不受信任,请输入加密密码",
"Device rate limits": "设备速率限制",
"Device that last modified the item": "最近修改项的设备",
"Device that last modified the item": "最近修改项的设备",
"Devices": "设备",
"Disable Crash Reporting": "禁用自动发送崩溃报告",
"Disable Crash Reporting": "禁用崩溃报告",
"Disabled": "已禁用",
"Disabled periodic scanning and disabled watching for changes": "已禁用定期扫描和更改监视",
"Disabled periodic scanning and enabled watching for changes": "已禁用定期扫描并启用更改监视",
"Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "已禁用定期扫描但设置更改监视失败,正在以每 1m 一次重试",
"Disables comparing and syncing file permissions. Useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android).": "禁用比较和同步文件权限。 适用于不存在或自定义权限的系统例如FATexFATSynologyAndroid。",
"Discard": "丢弃",
"Disconnected": "连接已断开",
"Disconnected (Inactive)": "断开连接(不活跃)",
"Disconnected (Unused)": "断开连接(未使用)",
"Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "已禁用定期扫描但设置更改监视失败,每分钟重试一次",
"Disables comparing and syncing file permissions. Useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android).": "禁用比较和同步文件权限。 适用于不存在或自定义权限的系统(例如 FATexFATSynologyAndroid。",
"Discard": "丢弃",
"Disconnected": "已断开连接",
"Disconnected (Inactive)": "断开连接(不活跃)",
"Disconnected (Unused)": "断开连接(未使用)",
"Discovered": "已发现",
"Discovery": "设备发现",
"Discovery Failures": "设备发现错误",
"Discovery Failures": "设备发现失败",
"Discovery Status": "设备发现状态",
"Dismiss": "忽略一次",
"Do not add it to the ignore list, so this notification may recur.": "不要将其加入忽视列表,因此这条通知可能会再出现。",
"Dismiss": "忽略",
"Do not add it to the ignore list, so this notification may recur.": "不要将其添加到忽略列表,因此通知可能会再出现。",
"Do not restore": "不要恢复",
"Do not restore all": "不要全部恢复",
"Do you want to enable watching for changes for all your folders?": "您想要启用监视所有文件夹的更改",
"Do you want to enable watching for changes for all your folders?": "是否要启用监视所有文件夹的更改?",
"Documentation": "文档",
"Download Rate": "下载速",
"Download Rate": "下载速",
"Downloaded": "已下载",
"Downloading": "下载中",
"Edit": "选项",
"Edit": "编辑",
"Edit Device": "编辑设备",
"Edit Device Defaults": "编辑设备默认值",
"Edit Folder": "编辑文件夹",
@@ -137,31 +137,31 @@
"Enable NAT traversal": "启用 NAT 穿透",
"Enable Relaying": "启用中继",
"Enabled": "已启用",
"Enables sending extended attributes to other devices, and applying incoming extended attributes. May require running with elevated privileges.": "启用发送扩展属性至其他设备,并应用传入的扩展属性。可能需要管理员权限。",
"Enables sending extended attributes to other devices, but not applying incoming extended attributes. This can have a significant performance impact. Always enabled when \"Sync Extended Attributes\" is enabled.": "启用发送扩展属性至其他设备,但不应用传入的扩展属性。这可能造成性能上的影响。“同步扩展属性”启用时此选项总是启用。",
"Enables sending ownership information to other devices, and applying incoming ownership information. Typically requires running with elevated privileges.": "启用发送所有权信息至其他设备,并应用传入的所有权信息。通常情况下需要管理员权限。",
"Enables sending ownership information to other devices, but not applying incoming ownership information. This can have a significant performance impact. Always enabled when \"Sync Ownership\" is enabled.": "启用发送所有权信息至其他设备,但不应用传入的所有权信息。此选项可能造成显著的性能影响。“同步所有权”启用时此选项总是启用。",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "输入一个非负数例如“2.35”)并选择单位。%表示占磁盘总容量的百分比。",
"Enter a non-privileged port number (1024 - 65535).": "输入一个非特权端口号 (1024 - 65535)。",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "输入以半角逗号分隔的(\"tcp://ip:port\", \"tcp://host:port\")设备地址列表或者输入“dynamic”以自动发现设备地址。",
"Enables sending extended attributes to other devices, and applying incoming extended attributes. May require running with elevated privileges.": "启用发送扩展属性至其他设备,并应用传入的扩展属性。可能需要以更高的权限运行。",
"Enables sending extended attributes to other devices, but not applying incoming extended attributes. This can have a significant performance impact. Always enabled when \"Sync Extended Attributes\" is enabled.": "启用发送扩展属性至其他设备,但不应用传入的扩展属性。这可能会对性能产生重大影响。启用“同步扩展属性”时始终启用。",
"Enables sending ownership information to other devices, and applying incoming ownership information. Typically requires running with elevated privileges.": "启用发送所有权信息至其他设备,并应用传入的所有权信息。通常需要以更高的权限运行。",
"Enables sending ownership information to other devices, but not applying incoming ownership information. This can have a significant performance impact. Always enabled when \"Sync Ownership\" is enabled.": "启用发送所有权信息至其他设备,但不应用传入的所有权信息。这可能会对性能产生重大影响。启用“同步所有权”时始终启用。",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "输入一个非负数例如“2.35”)并选择单位。% 表示占磁盘总容量的百分比。",
"Enter a non-privileged port number (1024 - 65535).": "输入非特权端口号1024 - 65535。",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "输入以半角逗号分隔的(\"tcp://ip:port\", \"tcp://host:port\"设备地址或者输入“dynamic”以自动发现设备地址。",
"Enter ignore patterns, one per line.": "请输入忽略模式,每行一条。",
"Enter up to three octal digits.": "输入最多三个8进制数字。",
"Enter up to three octal digits.": "输入最多三个进制数字。",
"Error": "错误",
"Extended Attributes": "扩展属性",
"Extended Attributes Filter": "扩展属性过滤器",
"Extended Attributes Filter": "扩展属性筛选器",
"External": "外部",
"External File Versioning": "外部版本控制",
"External File Versioning": "外部文件版本控制",
"Failed Items": "失败的项目",
"Failed to load file versions.": "加载文件版本失败。",
"Failed to load ignore patterns.": "加载忽略模式失败。",
"Failed to setup, retrying": "设置失败,正在重试",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "如果本机没有配置IPv6则无法连接IPv6服务器是正常的。",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "如果本机没有配置 IPv6则无法连接 IPv6 服务器是正常的。",
"File Pull Order": "文件拉取顺序",
"File Versioning": "版本控制",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "当文件被 Syncthing 替换或删除时,将被移动到 .stversions 目录。",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "当某个文件在其他设备被替换或删除时,本设备将在 .stversions 目录中保留该文件的备份,并在文件名中加入时间戳信息。",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "在其设备中对该文件夹内文件的修改并不会被同步到本机,但是在本机上对其的修改,则会被同步到集群的其设备。",
"Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.": "文件从集群同步,但本地所的任何更改都不会发送到其他设备。",
"File Versioning": "文件版本控制",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "当 Syncthing 替换或删除文件时,文件将移动到 .stversions 目录。",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "当 Syncthing 替换或删除文件时,文件将移动到 .stversions 目录中,文件名带有日期戳版本。",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "文件受到保护,不会在其设备上进行更改,但在此设备上所做的更改将发送到集群的其设备。",
"Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.": "文件从集群同步,但本地所的任何更改都不会发送到其他设备。",
"Filesystem Watcher Errors": "文件系统监视器错误",
"Filter by date": "按日期筛选",
"Filter by name": "按名称筛选",
@@ -172,18 +172,18 @@
"Folder Status": "文件夹状态",
"Folder Type": "文件夹类型",
"Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "只能在添加新文件夹时设置文件夹类型“{{receiveEncrypted}}”。",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "添加文件夹后,无法更改文件夹类型“ {{receiveEncrypted}}”。您需要删除该文件夹,删除或解密磁盘上的数据,然后再次添加文件夹。",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "添加文件夹后,无法更改文件夹类型“{{receiveEncrypted}}”。您需要移除文件夹,删除或解密磁盘上的数据,然后重新添加文件夹。",
"Folders": "文件夹",
"For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "开始监视下列文件夹时发生错误。由于每分钟都会重试,所以错误可能很快就消失。如果它们存在,请试着修复潜在问题,如不会则请求帮助。",
"Forever": "永",
"Full Rescan Interval (s)": "完扫描间隔(秒)",
"GUI": "图形用户界面",
"GUI / API HTTPS Certificate": "GUI / API HTTPS证书",
"GUI Authentication Password": "图形管理界面密码",
"GUI Authentication User": "图形管理界面用户",
"GUI Authentication: Set User and Password": "GUI身份验证设置用户和密码",
"For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "对于以下文件夹,在开始监视更改时出错。它将每分钟重试一次,因此错误可能很快就消失。如果它们持续存在,请尝试解决根本问题,如果不能,请寻求帮助。",
"Forever": "永",
"Full Rescan Interval (s)": "完全重新扫描间隔(秒)",
"GUI": "GUI",
"GUI / API HTTPS Certificate": "GUI/API HTTPS 证书",
"GUI Authentication Password": "GUI 身份验证密码",
"GUI Authentication User": "GUI 身份验证用户",
"GUI Authentication: Set User and Password": "GUI 身份验证:设置用户和密码",
"GUI Listen Address": "GUI 监听地址",
"GUI Override Directory": "GUI覆盖目录",
"GUI Override Directory": "GUI 覆盖目录",
"GUI Theme": "GUI 主题",
"General": "常规",
"Generate": "生成",
@@ -193,31 +193,31 @@
"Help": "帮助",
"Hint: only deny-rules detected while the default is deny. Consider adding \"permit any\" as last rule.": "提示:默认拒绝时,仅检测拒绝规则。考虑添加“允许任何”为最后规则。",
"Home page": "主页",
"However, your current settings indicate you might not want it enabled. We have disabled automatic crash reporting for you.": "我们已经为您关闭了自动崩溃报告发送功能,因为您当前的设置显示您可能并不想启用该功能。",
"Identification": "识",
"If untrusted, enter encryption password": "如想更安全,请输入加密密码",
"If you want to prevent other users on this computer from accessing Syncthing and through it your files, consider setting up authentication.": "如果要阻止此计算机上的其他用户访问Syncthing并通过它访问文件请考虑设置身份验证。",
"However, your current settings indicate you might not want it enabled. We have disabled automatic crash reporting for you.": "我们已经为您禁用了自动发送崩溃报告,因为您当前的设置表明您可能并不想启用该选项。",
"Identification": "识",
"If untrusted, enter encryption password": "如果不受信任,请输入加密密码",
"If you want to prevent other users on this computer from accessing Syncthing and through it your files, consider setting up authentication.": "如果要阻止此计算机上的其他用户访问 Syncthing 并通过它访问文件,请考虑设置身份验证。",
"Ignore": "忽略",
"Ignore Patterns": "忽略模式",
"Ignore Permissions": "忽略文件权限",
"Ignore patterns can only be added after the folder is created. If checked, an input field to enter ignore patterns will be presented after saving.": "只有在文件夹创建后,才能对其增加忽略模式。勾选后,在保存后提供一个设置忽略模式的输入框。",
"Ignored Devices": "忽略的设备",
"Ignored Folders": "忽略的文件夹",
"Ignore Permissions": "忽略权限",
"Ignore patterns can only be added after the folder is created. If checked, an input field to enter ignore patterns will be presented after saving.": "只有在创建文件夹后才能添加忽略模式。勾选后,在保存后将显示用于设置忽略模式的输入框。",
"Ignored Devices": "忽略的设备",
"Ignored Folders": "忽略的文件夹",
"Ignored at": "已忽略于",
"Included Software": "包含软件",
"Incoming Rate Limit (KiB/s)": "下载速率限制 (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "错误的配置可能损坏您文件夹内的内容,使得 Syncthing 无法工作。",
"Included Software": "包含软件",
"Incoming Rate Limit (KiB/s)": "传入速率限制KiB/s",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "不正确的配置可能损坏您文件夹内容,并导致 Syncthing 无法运行。",
"Incorrect user name or password.": "用户名或密码不正确。",
"Internally used paths:": "内部使用的路径:",
"Introduced By": "介绍自",
"Introducer": "作为中介",
"Introduction": "介绍",
"Inversion of the given condition (i.e. do not exclude)": "反转本条件(即不排除)",
"Inversion of the given condition (i.e. do not exclude)": "给定条件的反转(即不排除)",
"Keep Versions": "保留版本数量",
"LDAP": "LDAP",
"Largest First": "大文件优先",
"Last 30 Days": "最近30天",
"Last 7 Days": "最近7天",
"Largest First": "大优先",
"Last 30 Days": "最近 30 天",
"Last 7 Days": "最近 7 天",
"Last Month": "上个月",
"Last Scan": "最后扫描",
"Last seen": "最后可见",
@@ -225,12 +225,12 @@
"Learn more": "了解更多",
"Learn more at {%url%}": "了解更多请访问 {{url}}",
"Limit": "限制",
"Listener Failures": "侦听器失败",
"Listener Status": "侦听器状态",
"Listeners": "听程序",
"Listener Failures": "监听程序失败",
"Listener Status": "监听程序状态",
"Listeners": "听程序",
"Loading data...": "正在载入数据…",
"Loading...": "正在载入…",
"Local Additions": "本地添加",
"Local Additions": "本地添加",
"Local Discovery": "本地发现",
"Local State": "本地状态",
"Local State (Total)": "本地状态汇总",
@@ -238,11 +238,11 @@
"Log": "日志",
"Log File": "日志文件",
"Log In": "登录",
"Log Out": "注销",
"Log Out": "登出",
"Log in to see paths information.": "登录查看路径信息。",
"Log in to see version information.": "登查看版本信息。",
"Log tailing paused. Scroll to the bottom to continue.": "已暂停日志跟踪。滚动到底部继续。",
"Login failed, see Syncthing logs for details.": "登录失败,详情见 Syncthing 日志。",
"Log in to see version information.": "登查看版本信息。",
"Log tailing paused. Scroll to the bottom to continue.": "日志跟踪已暂停。滚动到底部继续。",
"Login failed, see Syncthing logs for details.": "登录失败,有关详细信息,请参阅 Syncthing 日志。",
"Logs": "日志",
"Major Upgrade": "重大更新",
"Mass actions": "批量操作",
@@ -256,14 +256,14 @@
"More than a month ago": "一个月前",
"More than a week ago": "一周前",
"More than a year ago": "一年前",
"Move to top of queue": "移动到队列顶",
"Move to top of queue": "移队列顶",
"Multi level wildcard (matches multiple directory levels)": "多级通配符(用以匹配多层文件夹)",
"Never": "从未",
"New Device": "新设备",
"New Folder": "新文件夹",
"Newest First": "新文件优先",
"Newest First": "新优先",
"No": "否",
"No File Versioning": "不启用版本控制",
"No File Versioning": "不启用文件版本控制",
"No files will be deleted as a result of this operation.": "此操作结果不会删除任何文件。",
"No rules set": "未设置规则",
"No upgrades": "无更新",
@@ -272,14 +272,14 @@
"Number of Connections": "连接数",
"OK": "确定",
"Off": "关闭",
"Oldest First": "旧文件优先",
"Optional descriptive label for the folder. Can be different on each device.": "可选的文件夹说明性标签。在不同设备上可以不一致。",
"Oldest First": "旧优先",
"Optional descriptive label for the folder. Can be different on each device.": "文件夹的可选描述性标签。每个设备上可能不同。",
"Options": "选项",
"Out of Sync": "失去同步",
"Out of Sync Items": "同步的项目",
"Outgoing Rate Limit (KiB/s)": "上传速度限制 (KiB/s)",
"Out of Sync": "同步",
"Out of Sync Items": "同步的项目",
"Outgoing Rate Limit (KiB/s)": "传出速率限制(KiB/s",
"Override": "覆盖",
"Override Changes": "撤销改变",
"Override Changes": "覆盖更改",
"Ownership": "所有权",
"Password": "密码",
"Path": "路径",
@@ -287,247 +287,247 @@
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "历史版本储存路径(留空则会默认存储在共享文件夹中的 .stversions 目录)。",
"Paths": "路径",
"Pause": "暂停",
"Pause All": "全部暂停",
"Pause All": "暂停全部",
"Paused": "已暂停",
"Paused (Unused)": "已暂停(未使用)",
"Pending changes": "待的更改",
"Periodic scanning at given interval and disabled watching for changes": "正以给定的间隔定期扫描并禁用更改监视",
"Periodic scanning at given interval and enabled watching for changes": "正以给定的间隔定期扫描并启用更改监视",
"Periodic scanning at given interval and failed setting up watching for changes, retrying every 1m:": "正以给定间隔定期扫描但设置更改监视失败,正在每分钟一次重试:",
"Permanently add it to the ignore list, suppressing further notifications.": "将其永久添加到忽略列表中,禁止进一步通知。",
"Pending changes": "待处理的更改",
"Periodic scanning at given interval and disabled watching for changes": "正以给定的间隔进行定期扫描并禁用更改监视",
"Periodic scanning at given interval and enabled watching for changes": "正以给定的间隔进行定期扫描并启用更改监视",
"Periodic scanning at given interval and failed setting up watching for changes, retrying every 1m:": "正以给定间隔进行定期扫描但设置更改监视失败,正在每分钟重试一次",
"Permanently add it to the ignore list, suppressing further notifications.": "将其永久添加到忽略列表中,以抑制进一步通知。",
"Please consult the release notes before performing a major upgrade.": "请在进行重大更新前查看发布说明。",
"Please set a GUI Authentication User and Password in the Settings dialog.": "请在设置对话框中设置 GUI 验证用户及其密码。",
"Please set a GUI Authentication User and Password in the Settings dialog.": "请在设置对话框中设置 GUI 身份验证用户密码。",
"Please wait": "请稍候",
"Prefix indicating that the file can be deleted if preventing directory removal": "此前缀表示,如果文件阻止删除目录则文件可被删除",
"Prefix indicating that the pattern should be matched without case sensitivity": "此前缀表示,后面的模式在匹配时不区分大小写",
"Preparing to Sync": "准备同步",
"Preparing to Sync": "正在准备同步",
"Preview": "预览",
"Preview Usage Report": "预览使用报告",
"QR code": "二维码",
"QUIC LAN": "QUIC 局域网",
"QUIC WAN": "QUIC 广域网",
"Quick guide to supported patterns": "支持的通配符的简单教程",
"Random": "随机顺序",
"Quick guide to supported patterns": "支持模式的快速指南",
"Random": "随机",
"Receive Encrypted": "加密接收",
"Receive Only": "仅接收",
"Received data is already encrypted": "已加密接收到的数据",
"Received data is already encrypted": "接收到的数据已加密",
"Recent Changes": "最近更改",
"Reduced by ignore patterns": "已由忽略模式减",
"Reduced by ignore patterns": "通过忽略模式减",
"Relay LAN": "中继局域网",
"Relay WAN": "中继广域网",
"Release Notes": "发布说明",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "发布候选版包含最新的特性和修复。它们跟传统的 Syncthing 双周发布版类似。",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "候选版包含最新功能和修复程序。它们类似于传统的每两周一次的 Syncthing 发布。",
"Remote Devices": "远程设备",
"Remote GUI": "远程GUI",
"Remote GUI": "远程 GUI",
"Remove": "移除",
"Remove Device": "移除设备",
"Remove Folder": "移除文件夹",
"Required identifier for the folder. Must be the same on all cluster devices.": "必需的文件夹唯一标识。同一个文件夹在集群中的所有设备上ID必须相同。",
"Required identifier for the folder. Must be the same on all cluster devices.": "文件夹所需的标识符。所有集群设备上必须相同。",
"Rescan": "重新扫描",
"Rescan All": "全部重新扫描",
"Rescans": "重新扫描",
"Restart": "重启 Syncthing",
"Restart Needed": "需要重启 Syncthing",
"Restarting": "重启",
"Restart": "重启",
"Restart Needed": "需要重启",
"Restarting": "正在重启",
"Restore": "恢复",
"Restore Versions": "恢复历史版本",
"Resume": "恢复",
"Resume All": "全部恢复",
"Reused": "复用",
"Revert": "还原",
"Revert Local Changes": "恢复本地更改",
"Revert Local Changes": "还原本地更改",
"Save": "保存",
"Saving changes": "保存更改中",
"Scan Time Remaining": "扫描剩余时间",
"Scan Time Remaining": "剩余扫描时间",
"Scanning": "扫描中",
"See external versioning help for supported templated command line parameters.": "有关受支持的模板命令行参数,请参阅外部版本控制帮助。",
"Select All": "全选",
"Select a version": "选择版本",
"Select additional devices to share this folder with.": "选择其他共享此文件夹的设备。",
"Select additional folders to share with this device.": "选择要与此设备共享的其文件夹。",
"Select additional devices to share this folder with.": "选择要与之共享此文件夹的其他设备。",
"Select additional folders to share with this device.": "选择要与此设备共享的其文件夹。",
"Select latest version": "选择最新的版本",
"Select oldest version": "选择最旧的版本",
"Send & Receive": "发送接收",
"Send & Receive": "发送接收",
"Send Extended Attributes": "发送扩展属性",
"Send Only": "仅发送",
"Send Ownership": "发送所有权",
"Set Ignores on Added Folder": "在加的文件夹中设置忽略",
"Set Ignores on Added Folder": "在加的文件夹中设置忽略",
"Settings": "设置",
"Share": "共享",
"Share Folder": "共享文件夹",
"Share by Email": "通过电子邮件分享",
"Share by SMS": "通过短信分享",
"Share this folder?": "是否共享文件夹?",
"Share this folder?": "共享文件夹?",
"Shared Folders": "共享文件夹",
"Shared With": "共享给",
"Sharing": "共享",
"Show ID": "显示 ID",
"Show QR": "显示 QR 码",
"Show QR": "显示二维码",
"Show detailed discovery status": "显示详细的发现状态",
"Show detailed listener status": "显示详细的侦听器状态",
"Show diff with previous version": "显示与前版本的差异",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "在集群状态中显示该名称,而不是设备 ID。将作为当前设备的可选的默认名称,报告给所有其他设备。",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "在集群状态中显示该名称,而不是设备 ID。如果设置为空,则会使用目标设备自报的默认名称。",
"Shutdown": "关闭 Syncthing",
"Show detailed listener status": "显示详细的监听程序状态",
"Show diff with previous version": "显示与前版本的差异",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "在集群状态中显示该名称,而不是设备 ID。将作为可选的默认名称其他设备通告。",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "在集群状态中显示该名称,而不是设备 ID。如果留空,将更新为设备通告的名称。",
"Shutdown": "关闭",
"Shutdown Complete": "关闭完成",
"Simple": "简单",
"Simple File Versioning": "简版本控制",
"Simple File Versioning": "简单文件版本控制",
"Single level wildcard (matches within a directory only)": "单级通配符(仅匹配单层文件夹)",
"Size": "大小",
"Smallest First": "小文件优先",
"Some discovery methods could not be established for finding other devices or announcing this device:": "有些探索方法无法用于发现其它设备或广播该设备:",
"Some items could not be restored:": "些项目无法恢复:",
"Some listening addresses could not be enabled to accept connections:": "某些监听地址无法接受连接:",
"Smallest First": "小优先",
"Some discovery methods could not be established for finding other devices or announcing this device:": "无法建立某些发现方法来查找其他设备或宣布此设备",
"Some items could not be restored:": "些项目无法恢复:",
"Some listening addresses could not be enabled to accept connections:": "无法启用某些监听地址接受连接",
"Source Code": "源代码",
"Stable releases and release candidates": "稳定版本和发布候选版",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "稳定版本约延迟两个星期。这段时间它们作为发布候选版测试。",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "稳定版本推迟了大约两周。在此期间,它们作为发布候选版进行测试。",
"Stable releases only": "仅稳定版本",
"Staggered": "交错",
"Staggered File Versioning": "阶段版本控制",
"Staggered": "阶段",
"Staggered File Versioning": "阶段文件版本控制",
"Start Browser": "启动浏览器",
"Statistics": "统计",
"Stay logged in": "保持登录",
"Stopped": "已停止",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "仅存储和同步加密数据。所有连接设备上的文件夹需要使用相同的密码设置,或者也必须设置为“ {{receiveEncrypted}}”类型。",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "仅存储和同步加密数据。所有连接设备上的文件夹需要使用相同的密码设置,或者也需要设置为“{{receiveEncrypted}}”类型。",
"Subject:": "主题:",
"Support": "支持",
"Support Bundle": "支持捆绑包",
"Sync Extended Attributes": "同步扩展属性",
"Sync Ownership": "同步所有权",
"Sync Protocol Listen Addresses": "协议监听地址",
"Sync Protocol Listen Addresses": "同步协议监听地址",
"Sync Status": "同步状态",
"Syncing": "同步中",
"Syncthing device ID for \"{%devicename%}\"": "\"{{devicename}}\" 的 Syncthing 设备 ID",
"Syncthing device ID for \"{%devicename%}\"": "{{devicename}}的 Syncthing 设备 ID",
"Syncthing has been shut down.": "Syncthing 已关闭。",
"Syncthing includes the following software or portions thereof:": "Syncthing 使用了下列软件或其中的一部分:",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Syncthing 是个以 MPL v2.0 授权的免费开源软件。",
"Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Syncthing 是一个持续的文件同步程序。它在两台或更多的计算机之间实时同步文件,安全地保护它们不被窥视。的数据是私有的,有权选择它被储存在哪里,是否与一些第三方共享以及如何互联网传输。",
"Syncthing is listening on the following network addresses for connection attempts from other devices:": "Syncthing正在监听以下网络地址,以获取来自其他设备的连接尝试:",
"Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Syncthing 不会在任何地址上侦听来自其他设备的连接尝试。只有来自设备的传出连接可能有效。",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Syncthing 是自由开源软件,许可证为 MPL v2.0。",
"Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Syncthing 是续的文件同步程序。它在两台或多台计算机之间实时同步文件,安全地保护它们防止窥视。的数据是私有的,有权选择其存储位置、是否与第三方共享以及如何通过互联网传输。",
"Syncthing is listening on the following network addresses for connection attempts from other devices:": "Syncthing 正在以下网络地址监听来自其他设备的连接尝试",
"Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Syncthing 不监听任何地址上其他设备的连接尝试。只有来自设备的传出连接才能工作。",
"Syncthing is restarting.": "Syncthing 正在重启。",
"Syncthing is saving changes.": "Syncthing 正保存更改。",
"Syncthing is upgrading.": "Syncthing 正在升级。",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing 现在已经支持将崩溃报告自动发送给开发者。该功能默认开启。",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing 似乎关闭,或者您的网络连接存在故障。重试…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing 在处理您的请求时似乎遇到问题。如果问题持续,请刷新页面或重启 Syncthing。",
"TCP LAN": "局域网TCP",
"TCP WAN": "广域网TCP",
"Take me back": "带我回去",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing 现在支持自动向开发人员发送崩溃报告。默认情况下启用此功能。",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing 似乎关闭,或者您的互联网连接有问题。正在重试…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing 在处理您的请求时似乎遇到问题。如果问题仍然存在,请刷新页面或重启 Syncthing。",
"TCP LAN": "TCP 局域网",
"TCP WAN": "TCP 广域网",
"Take me back": "返回",
"The GUI address is overridden by startup options. Changes here will not take effect while the override is in place.": "GUI 地址已被启动选项覆盖。当覆盖存在时,此处的更改就不会生效。",
"The Syncthing Authors": "Syncthing作者",
"The Syncthing admin interface is configured to allow remote access without a password.": "当前配置允许在不使用密码的情况下远程访问 Syncthing 管理界面。",
"The aggregated statistics are publicly available at the URL below.": "全局统计数据公布于以下 URL。",
"The cleanup interval cannot be blank.": "清间隔不能为空。",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "置已保存,但是还未生效。Syncthing 需要重启以启用新的设置。",
"The Syncthing Authors": "Syncthing 作者",
"The Syncthing admin interface is configured to allow remote access without a password.": "Syncthing 管理界面配置为允许无密码远程访问。",
"The aggregated statistics are publicly available at the URL below.": "汇总统计可在以下 URL 公开获取。",
"The cleanup interval cannot be blank.": "清间隔不能为空。",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "置已保存但未激活。Syncthing 必须重启才能激活新配置。",
"The device ID cannot be blank.": "设备 ID 不能为空。",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "在这里所需要输入的设备 ID可以在目标设备的“操作->显示 ID”中看到。空格和横线可选(将会被忽略)。",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "经过加密的使用报告每天发送。它用跟踪统计使用本软件的平台文件夹大小,以及本软件的版本。如果报告的内容有任何变化,本对话框会再次弹出提示您。",
"The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "输入的设备 ID 似乎无效。设备 ID 包含字母和数字,长度为 52 或 56空格和横线不计在内。",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "在此处输入的设备 ID 可以在另一台设备的“操作 > 显示 ID”对话框中找到。空格和破折号是可选的(忽略)。",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "加密的使用情况报告每天发送一次。它用跟踪常见平台文件夹大小和应用版本。如果报告的数据集发生更改,系统将再次弹出此对话框提示您。",
"The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "输入的设备 ID 似乎无效。设备 ID 包含字母和数字,长度为 52 或 56空格和破折号是可选的。",
"The folder ID cannot be blank.": "文件夹 ID 不能为空。",
"The folder ID must be unique.": "文件夹 ID 不得重复。",
"The folder content on other devices will be overwritten to become identical with this device. Files not present here will be deleted on other devices.": "其设备上的文件夹内容将覆盖,与此设备相同。此处不存在的文件将在其他设备上删除。",
"The folder content on this device will be overwritten to become identical with other devices. Files newly added here will be deleted.": "设备上的文件夹内容将覆盖,使其与其他设备相同。此处新添加的文件将删除。",
"The folder content on other devices will be overwritten to become identical with this device. Files not present here will be deleted on other devices.": "其设备上的文件夹内容将覆盖,与此设备完全相同。此处不存在的文件将在其他设备上删除。",
"The folder content on this device will be overwritten to become identical with other devices. Files newly added here will be deleted.": "设备上的文件夹内容将覆盖,与其他设备相同。此处新添加的文件将删除。",
"The folder path cannot be blank.": "文件夹路径不能为空。",
"The following intervals are used: for the first hour a version is kept every 30 seconds, for the first day a version is kept every hour, for the first 30 days a version is kept every day, until the maximum age a version is kept every week.": "保留的历史版本会遵循以下条件:最近一小时内的历史版本,更新间隔小于三十秒的仅保留一份。最近一天内的历史版本,更新间隔小于一小时的仅保留一份。最近一个月内的历史版本,更新间隔小于一天的仅保留一份。距离现在超过一个月且小于最长保留时间的,更新间隔小于一周的仅保留一份。",
"The following items could not be synchronized.": "下项目无法同步。",
"The following items were changed locally.": "下项目在本地更改。",
"The following methods are used to discover other devices on the network and announce this device to be found by others:": "以下方法用于发现网络上的其他设备并通知其他人发现设备:",
"The following text will automatically be inserted into a new message.": "以下文将自动插入新消息中。",
"The following unexpected items were found.": "找到了以下特殊项。",
"The following intervals are used: for the first hour a version is kept every 30 seconds, for the first day a version is kept every hour, for the first 30 days a version is kept every day, until the maximum age a version is kept every week.": "使用以下间隔:最近一小时内的历史版本,更新间隔小于三十秒的仅保留一份。最近一天内的历史版本,更新间隔小于一小时的仅保留一份。最近一个月内的历史版本,更新间隔小于一天的仅保留一份。距离现在超过一个月且小于最长保留时间的,更新间隔小于一周的仅保留一份。",
"The following items could not be synchronized.": "下项目无法同步。",
"The following items were changed locally.": "下项目在本地更改。",
"The following methods are used to discover other devices on the network and announce this device to be found by others:": "以下方法用于发现网络上的其他设备并通知其他人发现设备:",
"The following text will automatically be inserted into a new message.": "以下文将自动插入新消息中。",
"The following unexpected items were found.": "发现以下意外项目。",
"The interval must be a positive number of seconds.": "间隔必须为正数秒。",
"The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "在版本目录中运行清理的间隔。0表示禁用定期清。",
"The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "在版本目录中运行清理的间隔。0 表示禁用定期清。",
"The maximum age must be a number and cannot be blank.": "最长保留时间必须为数字,且不能为空。",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "历史版本保留的最长天数0 为永久保存。",
"The number of connections must be a non-negative number.": "连接数必须是非负数。",
"The number of days must be a number and cannot be blank.": "天数必须为数字,且不能为空。",
"The number of days to keep files in the trash can. Zero means forever.": "文件保存在回收站的天数。表示永久。",
"The number of old versions to keep, per file.": "每个文件保留的版本数量上限。",
"The number of days to keep files in the trash can. Zero means forever.": "文件保存在回收站的天数。0 表示永久。",
"The number of old versions to keep, per file.": "每个文件保留的版本数。",
"The number of versions must be a number and cannot be blank.": "保留版本数量必须为数字,且不能为空。",
"The path cannot be blank.": "路径不能为空。",
"The rate limit is applied to the accumulated traffic of all connections to this device.": "到这台设备所有连接的累流量被实施了速率限制。",
"The rate limit must be a non-negative number (0: no limit)": "传输速度限制为非负0 表示不限制)",
"The remote device has not accepted sharing this folder.": "远程设备尚未允许分享此文件夹。",
"The remote device has paused this folder.": "远程设备已停此文件夹。",
"The rescan interval must be a non-negative number of seconds.": "扫描间隔单位为秒,且不能为负数。",
"There are no devices to share this folder with.": "没有共享此文件夹的设备。",
"The rate limit is applied to the accumulated traffic of all connections to this device.": "速率限制适用于到此设备所有连接的累流量。",
"The rate limit must be a non-negative number (0: no limit)": "速率限制必须是非负数0:无限制)",
"The remote device has not accepted sharing this folder.": "远程设备尚未接受共享此文件夹。",
"The remote device has paused this folder.": "远程设备已停此文件夹。",
"The rescan interval must be a non-negative number of seconds.": "重新扫描间隔必须为非负数。",
"There are no devices to share this folder with.": "没有可与之共享此文件夹的设备。",
"There are no file versions to restore.": "没有可供恢复的文件版本。",
"There are no folders to share with this device.": "没有文件夹与此设备共享。",
"They are retried automatically and will be synced when the error is resolved.": "系统将会自动重试,错误解决时,它们将会被同步。",
"This Device": "当前设备",
"There are no folders to share with this device.": "没有与此设备共享的文件夹。",
"They are retried automatically and will be synced when the error is resolved.": "系统将会自动重试,并在错误解决同步。",
"This Device": "设备",
"This Month": "本月",
"This can easily give hackers access to read and change any files on your computer.": "这会让骇客能够轻而易举地访问及修改您的文件。",
"This device cannot automatically discover other devices or announce its own address to be found by others. Only devices with statically configured addresses can connect.": "此设备无法自动发现其设备或广播自己的地址被其他人发现。只有具有静态配置地址的设备才能连接。",
"This is a major version upgrade.": "这是一重大版本更新。",
"This setting controls the free space required on the home (i.e., index database) disk.": "此设置控制主(例如索引数据库)磁盘上需要的可用空间。",
"This device cannot automatically discover other devices or announce its own address to be found by others. Only devices with statically configured addresses can connect.": "此设备无法自动发现其设备,也无法向其他人宣布自己的地址。只有具有静态配置地址的设备才能连接。",
"This is a major version upgrade.": "这是一重大版本升级。",
"This setting controls the free space required on the home (i.e., index database) disk.": "此设置控制主磁盘(即索引数据库)上所需的可用空间。",
"Time": "时间",
"Time the item was last modified": "该项最近修改的时间",
"To connect with the Syncthing device named \"{%devicename%}\", add a new remote device on your end with this ID:": "要与名为\"{{devicename}}\"的Syncthing设备连接,请在的终端上用这个ID添加一个新的远程设备:",
"To permit a rule, have the checkbox checked. To deny a rule, leave it unchecked.": "要允许条规则,请选复选框。要拒绝条规则,不勾选即可。",
"Time the item was last modified": "最近修改项目的时间",
"To connect with the Syncthing device named \"{%devicename%}\", add a new remote device on your end with this ID:": "要连接名为“{{devicename}}”的 Syncthing 设备,请在的终端添加具有此 ID 的新远程设备:",
"To permit a rule, have the checkbox checked. To deny a rule, leave it unchecked.": "要允许条规则,请选复选框。要拒绝条规则,请将其保留为未选中状态。",
"Today": "今天",
"Trash Can": "回收站",
"Trash Can File Versioning": "回收站版本控制",
"Trash Can File Versioning": "回收站文件版本控制",
"Type": "类型",
"UNIX Permissions": "UNIX权限",
"UNIX Permissions": "UNIX 权限",
"Unavailable": "无效",
"Unavailable/Disabled by administrator or maintainer": "无效/禁用(由管理员或维护者)",
"Undecided (will prompt)": "定(将提示)",
"Unexpected Items": "特殊项目",
"Unexpected items have been found in this folder.": "在此文件夹中发现了意外项目。",
"Unignore": "解除忽略",
"Undecided (will prompt)": "未决定(将提示)",
"Unexpected Items": "意外项目",
"Unexpected items have been found in this folder.": "在此文件夹中发现了意外项目。",
"Unignore": "取消忽略",
"Unknown": "未知",
"Unshared": "非共享",
"Unshared Devices": "非共享设备",
"Unshared Folders": "非共享文件夹",
"Untrusted": "不可信的",
"Up to Date": "同步完成",
"Updated {%file%}": "{{file}} 已更新",
"Untrusted": "不受信任",
"Up to Date": "最新",
"Updated {%file%}": "已更新 {{file}}",
"Upgrade": "更新",
"Upgrade To {%version%}": "升级至版本 {{version}}",
"Upgrading": "升级中",
"Upload Rate": "上传速",
"Uptime": "启动",
"Usage reporting is always enabled for candidate releases.": "发布候选版总是会启用使用报告。",
"Use HTTPS for GUI": "使用加密连接到图形管理页面",
"Use notifications from the filesystem to detect changed items.": "使用文件系统的通知来检测更改的项目。",
"User": "用户",
"Upload Rate": "上传速",
"Uptime": "启动时间",
"Usage reporting is always enabled for candidate releases.": "发布候选版始终启用使用报告。",
"Use HTTPS for GUI": "使用 HTTPS 连接到 GUI",
"Use notifications from the filesystem to detect changed items.": "使用来自文件系统的通知来检测更改的项目。",
"User": "用户",
"User Home": "用户主目录",
"Username/Password has not been set for the GUI authentication. Please consider setting it up.": "尚未为GUI身份验证设置用户名/密码。 请考虑进行设置。",
"Using a QUIC connection over LAN": "正使用局域网 QUIC 连接",
"Using a QUIC connection over WAN": "正使用广域网 QUIC 连接",
"Using a direct TCP connection over LAN": "通过局域网使用直接TCP连接",
"Using a direct TCP connection over WAN": "通过广域网使用直接TCP连接",
"Username/Password has not been set for the GUI authentication. Please consider setting it up.": "尚未为 GUI 身份验证设置用户名/密码。请考虑设置。",
"Using a QUIC connection over LAN": "正在通过局域网使用 QUIC 连接",
"Using a QUIC connection over WAN": "正在通过广域网使用 QUIC 连接",
"Using a direct TCP connection over LAN": "正在通过局域网使用直接 TCP 连接",
"Using a direct TCP connection over WAN": "正在通过广域网使用直接 TCP 连接",
"Version": "版本",
"Versions": "历史版本",
"Versions Path": "历史版本路径",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "超过最长保留时间,或者不满足下列条件的历史版本,将会被删除。",
"Waiting to Clean": "等待清",
"Waiting to Scan": "等待扫描",
"Waiting to Sync": "等待同步",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "超过最长保留时间,或者不满足下列条件的历史版本,则会自动删除。",
"Waiting to Clean": "正在等待清",
"Waiting to Scan": "正在等待扫描",
"Waiting to Sync": "正在等待同步",
"Warning": "警告",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "警告,路径是有文件夹\"{{otherFolder}}\"的上级目录。",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,路径是有文件夹\"{{otherFolderLabel}}\" ({{otherFolder}})的上级目录。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "警告,路径是有文件夹\"{{otherFolder}}\"的下级目录。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,路径是有文件夹\"{{otherFolderLabel}}\" ({{otherFolder}})的下级目录。",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "警告:如果你在使用外部的监视器如 {{syncthingInotify}},你应该确保它已经取消激活。",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "警告,路径是有文件夹{{otherFolder}}的上级目录。",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,路径是有文件夹{{otherFolderLabel}}”({{otherFolder}}的上级目录。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "警告,路径是有文件夹{{otherFolder}}的下级目录。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,路径是有文件夹{{otherFolderLabel}}”({{otherFolder}}的下级目录。",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "警告:如果您使用的是 {{syncthingInotify}} 等外部监视程序,则应确保其已停用。",
"Watch for Changes": "监视更改",
"Watching for Changes": "正在监视更改",
"Watching for changes discovers most changes without periodic scanning.": "对更改的监视无需定期扫描就可以发现大多数更改。",
"Watching for changes discovers most changes without periodic scanning.": "监视更改无需定期扫描即可发现大多数更改。",
"When adding a new device, keep in mind that this device must be added on the other side too.": "若您在本机添加新设备,记住您也必须在这个新设备上添加本机。",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "若你添加新文件夹记住文件夹 ID 是用以在不同设备间建立联系的。在不同设备间拥有相同 ID 的文件夹将会被同步。且文件夹 ID 区分大小写。",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "添加新文件夹时,请记住文件夹 ID 用于在不同设备间建立联系。它们区分大小写,必须在所有设备之间完全匹配。",
"When set to more than one on both devices, Syncthing will attempt to establish multiple concurrent connections. If the values differ, the highest will be used. Set to zero to let Syncthing decide.": "当两台设备上的连接数均被设为大于 1 时Syncthing 会尝试建立多个并行连接。如果两台设备上的设置的连接数不同,则会使用最大的连接数。设为 0 表示让 Syncthing 自行决定。",
"Yes": "是",
"Yesterday": "昨天",
"You can also copy and paste the text into a new message manually.": "你也可以手动将文本复制并粘贴到新消息中。",
"You can also select one of these nearby devices:": "您可以从这些附近的设备中选择",
"You can change your choice at any time in the Settings dialog.": "您可以在任何时候在设置对话框中更改选择。",
"You can read more about the two release channels at the link below.": "您可以从以下链接读取更多关于两个发渠道的信息。",
"You have no ignored devices.": "没有忽略的设备。",
"You have no ignored folders.": "没有忽略的文件夹。",
"You have unsaved changes. Do you really want to discard them?": "有未保存的更改。你真的要丢弃它们",
"You can also copy and paste the text into a new message manually.": "您还可以手动将文本复制并粘贴到新消息中。",
"You can also select one of these nearby devices:": "您可以选择以下附近的设备之一",
"You can change your choice at any time in the Settings dialog.": "您可以在设置对话框中随时更改您的选择。",
"You can read more about the two release channels at the link below.": "您可以在下面的链接中阅读有关这两个发渠道的更多信息。",
"You have no ignored devices.": "没有忽略的设备。",
"You have no ignored folders.": "没有忽略的文件夹。",
"You have unsaved changes. Do you really want to discard them?": "有未保存的更改。是否确定要丢弃它们?",
"You must keep at least one version.": "您必须保留至少一个版本。",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "您绝对不应在“ {{receiveEncrypted}}”文件夹中添加或更改任何本地内容。",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "的短信应用程序应该打开,让选择收件人并从自己的号码发送。",
"Your email app should open to let you choose the recipient and send it from your own address.": "的电子邮件应用程序应该打开,让选择收件人并从自己的地址发送。",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "您永远不应该在本地添加或更改“{{receiveEncrypted}}”文件夹中的任何内容。",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "的短信应用应该打开,让选择接收者并从自己的号码发送。",
"Your email app should open to let you choose the recipient and send it from your own address.": "的电子邮件应用应该打开,让选择收件人并从自己的地址发送。",
"days": "天",
"deleted": "已删除",
"deny": "拒绝",
@@ -549,7 +549,7 @@
}
},
"unknown device": "未知设备",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} 想“{{folder}}” 文件夹共享给您。",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} 想要共享 \"{{folderlabel}}\" ({{folder}}) 文件夹给您。",
"{%reintroducer%} might reintroduce this device.": "{{reintroducer}}可能会重新引入此设备。"
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} 想要共享文件夹“{{folder}}”。",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} 想要共享文件夹“{{folderlabel}}”({{folder}}。",
"{%reintroducer%} might reintroduce this device.": "{{reintroducer}} 可能会重新引入此设备。"
}

View File

@@ -31,9 +31,9 @@
"Apply": "儲存",
"Are you sure you want to override all remote changes?": "確定要儲存遠端改變?",
"Are you sure you want to permanently delete all these files?": "確定要永久刪除所有這些文件嗎?",
"Are you sure you want to remove device {%name%}?": "確定要移除設備 {%name%} 嗎?",
"Are you sure you want to remove folder {%label%}?": "確定要移除文件夾 {%label%} 嗎?",
"Are you sure you want to restore {%count%} files?": "確定要恢復這 {%count%} 個文件嗎?",
"Are you sure you want to remove device {%name%}?": "確定要移除設備 {{name}} 嗎?",
"Are you sure you want to remove folder {%label%}?": "確定要移除文件夾 {{label}} 嗎?",
"Are you sure you want to restore {%count%} files?": "確定要恢復這 {{count}} 個文件嗎?",
"Are you sure you want to revert all local changes?": "確定要還原所有本地更改嗎?",
"Are you sure you want to upgrade?": "確定要升級嗎?",
"Authors": "作者",
@@ -82,12 +82,12 @@
"Defaults": "默認值",
"Delete": "刪除",
"Delete Unexpected Items": "刪除不需要項目",
"Deleted {%file%}": "{%file%}已刪除",
"Deleted {%file%}": "{{file}} 已刪除",
"Deselect All": "取消全選",
"Deselect devices to stop sharing this folder with.": "反選設備以停止共享此文件夾",
"Deselect folders to stop sharing with this device.": "停止選擇文件夾以停止與此設備共享。",
"Device": "設備",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "設備 \"{%name%}\"(位於 {%address%} 的 {%device%})請求連接。是否添加新設備?",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "設備 \"{{name}}\"(位於 {{address}} 的 {{device}})請求連接。是否添加新設備?",
"Device Certificate": "設備證書",
"Device ID": "設備 ID",
"Device Identification": "設備標識",
@@ -124,7 +124,7 @@
"Edit Device Defaults": "編輯設備默認值",
"Edit Folder": "編輯文件夾",
"Edit Folder Defaults": "編輯文件夾默認值",
"Editing {%path%}.": "正在編輯 {%path%}。",
"Editing {%path%}.": "正在編輯 {{path}}。",
"Enable Crash Reporting": "啟用自動發送崩潰報告",
"Enable NAT traversal": "啟用 NAT 遍歷",
"Enable Relaying": "開啟中繼",
@@ -161,8 +161,8 @@
"Folder Label": "文件夾標籤",
"Folder Path": "文件夾路徑",
"Folder Type": "文件夾類型",
"Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "添加文件夾後無法更改文件夾類型\"{%receiveEncrypted%}\"。您需要刪除文件夾,刪除或解密磁盤上的數據,然後重新添加文件夾。",
"Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "Folder type \"{{receiveEncrypted}}\" can only be set when adding a new folder.",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "添加文件夾後無法更改文件夾類型「{{receiveEncrypted}}」。您需要刪除文件夾,刪除或解密磁盤上的數據,然後重新添加文件夾。",
"Folders": "文件夾",
"For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "開始監視下列文件夾時發生錯誤。由於每分鐘都會重試,所以錯誤可能很快就消失。如果它們仍存在,請試著修復潛在問題,如不會則請求幫助。",
"Forever": "永久",
@@ -359,7 +359,7 @@
"Start Browser": "啟動瀏覽器",
"Statistics": "統計",
"Stopped": "已停止",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "僅存儲和同步加密數據。所有連接設備上的文件夾都需要設置相同的密碼或類型為 \"{%receiveEncrypted%}\"。",
"Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "僅存儲和同步加密數據。所有連接設備上的文件夾都需要設置相同的密碼或類型為 「{{receiveEncrypted}}」。",
"Subject:": "主題:",
"Support": "支持",
"Support Bundle": "支持捆綁包",
@@ -447,9 +447,9 @@
"Unshared Folders": "未共享的文件夾",
"Untrusted": "不信任",
"Up to Date": "同步完成",
"Updated {%file%}": "Updated {%file%}",
"Updated {%file%}": "Updated {{file}}",
"Upgrade": "更新",
"Upgrade To {%version%}": "升級至版本 {%version%}",
"Upgrade To {%version%}": "升級至版本 {{version}}",
"Upgrading": "升級中",
"Upload Rate": "上傳速度",
"Uptime": "已啟動",
@@ -468,11 +468,11 @@
"Waiting to Scan": "等待掃瞄",
"Waiting to Sync": "等待同步",
"Warning": "警告",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "警告,該路徑是已有文件夾\"{%otherFolder%}\"的上級目錄。",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,該路徑是已有文件夾\"{%otherFolderLabel%}\" ({%otherFolder%})的上級目錄。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "警告,該路徑是已有文件夾\"{%otherFolder%}\"的下級目錄。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,該路徑是已有文件夾\"{%otherFolderLabel%}\" ({%otherFolder%})的下級目錄。",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "警告:如果你在使用外部的監視器如 {%syncthingInotify%},你應該確保它已經取消激活。",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "警告,該路徑是已有文件夾「{{otherFolder}}」的上級目錄。",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,該路徑是已有文件夾「{{otherFolderLabel}}」({{otherFolder}}的上級目錄。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "警告,該路徑是已有文件夾「{{otherFolder}}」的下級目錄。",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "警告,該路徑是已有文件夾「{{otherFolderLabel}}」({{otherFolder}}的下級目錄。",
"Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "警告:如果你在使用外部的監視器如 {{syncthingInotify}},你應該確保它已經取消激活。",
"Watch for Changes": "監視更改",
"Watching for Changes": "正在監視更改",
"Watching for changes discovers most changes without periodic scanning.": "對更改的監視無需定期掃瞄就可以發現大多數更改。",
@@ -488,7 +488,7 @@
"You have no ignored folders.": "你沒有已忽略的文件夾。",
"You have unsaved changes. Do you really want to discard them?": "你有未保存的更改。你真的要丟棄它們嗎?",
"You must keep at least one version.": "您必須保留至少一個版本。",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "您絕對不應在\"{%receiveEncrypted%}\"文件夾中本地添加或更改任何內容。",
"You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "您絕對不應在「{{receiveEncrypted}}」文件夾中本地添加或更改任何內容。",
"Your SMS app should open to let you choose the recipient and send it from your own number.": "您的 SMS 應用程序應該打開,讓您選擇收件人並從您自己的電話號碼發送。",
"Your email app should open to let you choose the recipient and send it from your own address.": "您的電子郵件應用程序應該打開,讓您選擇收件人並從您自己的地址發送。",
"days": "天",
@@ -497,7 +497,7 @@
"full documentation": "完整文檔",
"items": "條目",
"seconds": "秒",
"{%device%} wants to share folder \"{%folder%}\".": "{%device%} 想將 「{%folder%}」 文件夾共享給您。",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{%device%} 想要共享 \"{%folderlabel%}\" ({%folder%}) 文件夾給您。",
"{%reintroducer%} might reintroduce this device.": "{%reintroducer%} 可能會重新引入此設備。"
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} 想將 「{{folder}}」 文件夾共享給您。",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} 想要共享「{{folderlabel}}」({{folder}}文件夾給您。",
"{%reintroducer%} might reintroduce this device.": "{{reintroducer}} 可能會重新引入此設備。"
}

View File

@@ -279,7 +279,7 @@
"Out of Sync Items": "未同步項目",
"Outgoing Rate Limit (KiB/s)": "連出速率限制 (KiB/s)",
"Override": "覆蓋",
"Override Changes": "覆蓋變",
"Override Changes": "覆蓋變",
"Ownership": "所有權",
"Password": "密碼",
"Path": "路徑",

View File

@@ -1 +1 @@
var langPrettyprint = {"ar":"Arabic","bg":"Bulgarian","ca":"Catalan","ca@valencia":"Valencian","cs":"Czech","da":"Danish","de":"German","el":"Greek","en":"English","en-GB":"English (United Kingdom)","es":"Spanish","eu":"Basque","fr":"French","fy":"Frisian","hi":"Hindi","hu":"Hungarian","id":"Indonesian","it":"Italian","ja":"Japanese","ko-KR":"Korean","lt":"Lithuanian","nl":"Dutch","pl":"Polish","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","ro-RO":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","sv":"Swedish","tr":"Turkish","uk":"Ukrainian","zh-CN":"Chinese (Simplified)","zh-HK":"Chinese (Traditional, Hong Kong)","zh-TW":"Chinese (Traditional)"}
var langPrettyprint = {"ar":"Arabic","bg":"Bulgarian","ca":"Catalan","ca@valencia":"Valencian","cs":"Czech","da":"Danish","de":"German","el":"Greek","en":"English","en-GB":"English (United Kingdom)","es":"Spanish","eu":"Basque","fil":"Filipino","fr":"French","fy":"Frisian","ga":"Irish","hi":"Hindi","hu":"Hungarian","id":"Indonesian","it":"Italian","ja":"Japanese","ko-KR":"Korean","lt":"Lithuanian","nl":"Dutch","pl":"Polish","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","ro-RO":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","sv":"Swedish","tr":"Turkish","uk":"Ukrainian","zh-CN":"Chinese (Simplified)","zh-HK":"Chinese (Traditional, Hong Kong)","zh-TW":"Chinese (Traditional)"}

View File

@@ -1 +1 @@
var validLangs = ["ar","bg","ca","ca@valencia","cs","da","de","el","en","en-GB","es","eu","fr","fy","hi","hu","id","it","ja","ko-KR","lt","nl","pl","pt-BR","pt-PT","ro-RO","ru","sk","sl","sv","tr","uk","zh-CN","zh-HK","zh-TW"]
var validLangs = ["ar","bg","ca","ca@valencia","cs","da","de","el","en","en-GB","es","eu","fil","fr","fy","ga","hi","hu","id","it","ja","ko-KR","lt","nl","pl","pt-BR","pt-PT","ro-RO","ru","sk","sl","sv","tr","uk","zh-CN","zh-HK","zh-TW"]

View File

@@ -30,7 +30,7 @@
<h4 class="text-center" translate>The Syncthing Authors</h4>
<div class="row">
<div class="col-md-12" id="contributor-list">
Jakob Borg, Audrius Butkevicius, Jesse Lucas, Simon Frei, Tomasz Wilczyński, Alexander Graf, Alexandre Viau, Anderson Mesquita, André Colomb, Antony Male, Ben Schulz, Caleb Callaway, Daniel Harte, Eric P, Evgeny Kuznetsov, Lars K.W. Gohlke, Lode Hoste, Michael Ploujnikov, Nate Morrison, Philippe Schommers, Ryan Sullivan, Sergey Mishin, Stefan Tatschner, Wulf Weich, bt90, greatroar, Aaron Bieber, Adam Piggott, Adel Qalieh, Alan Pope, Alberto Donato, Aleksey Vasenev, Alessandro G., Alex Lindeman, Alex Xu, Alexander Seiler, Alexandre Alves, Aman Gupta, Anatoli Babenia, Andreas Sommer, Andrew Dunham, Andrew Meyer, Andrew Rabert, Andrey D, Anjan Momi, Anthony Goeckner, Antoine Lamielle, Anur, Aranjedeath, Arkadiusz Tymiński, Aroun, Arthur Axel fREW Schmidt, Artur Zubilewicz, Aurélien Rainone, BAHADIR YILMAZ, Bart De Vries, Beat Reichenbach, Ben Curthoys, Ben Shepherd, Ben Sidhom, Benedikt Heine, Benedikt Morbach, Benjamin Nater, Benno Fünfstück, Benny Ng, Boqin Qin, Boris Rybalkin, Brandon Philips, Brendan Long, Brian R. Becker, Carsten Hagemann, Catfriend1, Cathryne Linenweaver, Cedric Staniewski, Chih-Hsuan Yen, Choongkyu, Chris Howie, Chris Joel, Chris Tonkinson, Christian Kujau, Christian Prescott, Colin Kennedy, Cromefire_, Cyprien Devillez, Dale Visser, Dan, Daniel Barczyk, Daniel Bergmann, Daniel Martí, Daniel Padrta, Darshil Chanpura, David Rimmer, DeflateAwning, Denis A., Dennis Wilson, DerRockWolf, Devon G. Redekopp, Dimitri Papadopoulos Orfanos, Dmitry Saveliev, Domenic Horner, Dominik Heidler, Elias Jarlebring, Elliot Huffman, Emil Hessman, Emil Lundberg, Eng Zer Jun, Eric Lesiuta, Erik Meitner, Evan Spensley, Federico Castagnini, Felix, Felix Ableitner, Felix Lampe, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gahl Saraf, Gilli Sigurdsson, Gleb Sinyavskiy, Graham Miln, Greg, Han Boetes, HansK-p, Harrison Jones, Heiko Zuerker, Hugo Locurcio, Iain Barnett, Ian Johnson, Ikko Ashimine, Ilya Brin, Iskander Sharipov, Jaakko Hannikainen, Jacek Szafarkiewicz, Jack Croft, Jacob, Jake Peterson, James O'Beirne, James Patterson, Jaroslav Lichtblau, Jaroslav Malec, Jaspitta, Jauder Ho, Jaya Chithra, Jaya Kumar, Jeffery To, Jens Diemer, Jerry Jacobs, Jochen Voss, Johan Andersson, Johan Vromans, John Rinehart, Jonas Thelemann, Jonathan, Jonathan Cross, Jonta, Jose Manuel Delicado, Julian Lehrhuber, Jörg Thalheim, Jędrzej Kula, K.B.Dharun Krishna, Kalle Laine, Karol Różycki, Kebin Liu, Keith Harrison, Keith Turner, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Kevin Bushiri, Kevin White, Jr., Kurt Fitzner, LSmithx2, Lars Lehtonen, Laurent Arnoud, Laurent Etiemble, Leo Arias, Liu Siyuan, Lord Landon Agahnim, Lukas Lihotzki, Luke Hamburg, Majed Abdulaziz, Marc Laporte, Marc Pujol, Marcin Dziadus, Marcus Legendre, Mario Majila, Mark Pulford, Martchus, Martin Polehla, Mateusz Naściszewski, Mateusz Ż, Matic Potočnik, Matt Burke, Matt Robenolt, Matteo Ruina, Maurizio Tomasi, Max, Max Schulze, MaximAL, Maxime Thirouin, Maximilian, MichaIng, Michael Jephcote, Michael Rienstra, Michael Tilli, Migelo, Mike Boone, MikeLund, MikolajTwarog, Mingxuan Lin, Naveen, Nicholas Rishel, Nick Busey, Nico Stapelbroek, Nicolas Braud-Santoni, Nicolas Perraut, Niels Peter Roest, Nils Jakobi, NinoM4ster, Nitroretro, NoLooseEnds, Oliver Freyermuth, Otiel, Oyebanji Jacob Mayowa, Pablo, Pascal Jungblut, Paul Brit, Pawel Palenica, Paweł Rozlach, Peter Badida, Peter Dave Hello, Peter Hoeg, Peter Marquardt, Phani Rithvij, Phil Davis, Phill Luby, Pier Paolo Ramon, Piotr Bejda, Pramodh KP, Quentin Hibon, Rahmi Pruitt, Richard Hartmann, Robert Carosi, Roberto Santalla, Robin Schoonover, Roman Zaynetdinov, Ross Smith II, Ruslan Yevdokymov, Ryan Qian, Sacheendra Talluri, Scott Klupfel, Sertonix, Severin von Wnuck-Lipinski, Shaarad Dalvi, Simon Mwepu, Sly_tom_cat, Stefan Kuntz, Steven Eckhoff, Suhas Gundimeda, Sven Bachmann, Taylor Khan, Thomas, Thomas Hipp, Tim Abell, Tim Howes, Tim Nordenfur, Tobias Klauser, Tobias Nygren, Tobias Tom, Tom Jakubowski, Tommy Thorn, Tully Robinson, Tyler Brazier, Tyler Kropp, Unrud, Veeti Paananen, Victor Buinsky, Vik, Vil Brekin, Vladimir Rusinov, WangXi, Will Rouesnel, William A. Kennington III, Xavier O., Yannic A., andresvia, andyleap, boomsquared, chenrui, chucic, cjc7373, cui fliter, d-volution, derekriemer, desbma, diemade, digital, entity0xfe, georgespatton, ghjklw, guangwu, gudvinr, ignacy123, janost, jaseg, jelle van der Waa, jtagcat, klemens, kylosus, luchenhan, luzpaz, marco-m, mclang, mv1005, nf, orangekame3, otbutz, overkill, perewa, red_led, rubenbe, sec65, vapatel2, villekalliomaki, wangguoliang, wouter bolsterlee, xarx00, xjtdy888, 佛跳墙, 落心
Jakob Borg, Audrius Butkevicius, Jesse Lucas, Simon Frei, Tomasz Wilczyński, Alexander Graf, Alexandre Viau, Anderson Mesquita, André Colomb, Antony Male, Ben Schulz, Caleb Callaway, Daniel Harte, Eric P, Evgeny Kuznetsov, Lars K.W. Gohlke, Lode Hoste, Michael Ploujnikov, Nate Morrison, Philippe Schommers, Ryan Sullivan, Sergey Mishin, Stefan Tatschner, Wulf Weich, bt90, greatroar, Aaron Bieber, Adam Piggott, Adel Qalieh, Alan Pope, Alberto Donato, Aleksey Vasenev, Alessandro G., Alex Lindeman, Alex Xu, Alexander Seiler, Alexandre Alves, Aman Gupta, Anatoli Babenia, Andreas Sommer, Andrew Dunham, Andrew Meyer, Andrew Rabert, Andrey D, Anjan Momi, Anthony Goeckner, Antoine Lamielle, Anur, Aranjedeath, Arkadiusz Tymiński, Aroun, Arthur Axel fREW Schmidt, Artur Zubilewicz, Aurélien Rainone, BAHADIR YILMAZ, Bart De Vries, Beat Reichenbach, Ben Curthoys, Ben Shepherd, Ben Sidhom, Benedikt Heine, Benedikt Morbach, Benjamin Nater, Benno Fünfstück, Benny Ng, Boqin Qin, Boris Rybalkin, Brandon Philips, Brendan Long, Brian R. Becker, Carsten Hagemann, Catfriend1, Cathryne Linenweaver, Cedric Staniewski, Chih-Hsuan Yen, Choongkyu, Chris Howie, Chris Joel, Chris Tonkinson, Christian Kujau, Christian Prescott, Colin Kennedy, Cromefire_, Cyprien Devillez, Dale Visser, Dan, Daniel Barczyk, Daniel Bergmann, Daniel Martí, Daniel Padrta, Darshil Chanpura, David Rimmer, DeflateAwning, Denis A., Dennis Wilson, DerRockWolf, Devon G. Redekopp, Dimitri Papadopoulos Orfanos, Dmitry Saveliev, Domenic Horner, Dominik Heidler, Elias Jarlebring, Elliot Huffman, Emil Hessman, Emil Lundberg, Eng Zer Jun, Eric Lesiuta, Erik Meitner, Evan Spensley, Federico Castagnini, Felix, Felix Ableitner, Felix Lampe, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gahl Saraf, Gilli Sigurdsson, Gleb Sinyavskiy, Graham Miln, Greg, Gusted, Han Boetes, HansK-p, Harrison Jones, Heiko Zuerker, Hugo Locurcio, Iain Barnett, Ian Johnson, Ikko Ashimine, Ilya Brin, Iskander Sharipov, Jaakko Hannikainen, Jacek Szafarkiewicz, Jack Croft, Jacob, Jake Peterson, James O'Beirne, James Patterson, Jaroslav Lichtblau, Jaroslav Malec, Jaspitta, Jauder Ho, Jaya Chithra, Jaya Kumar, Jeffery To, Jens Diemer, Jerry Jacobs, Jochen Voss, Johan Andersson, Johan Vromans, John Rinehart, Jonas Thelemann, Jonathan, Jonathan Cross, Jonta, Jose Manuel Delicado, Julian Lehrhuber, Jörg Thalheim, Jędrzej Kula, K.B.Dharun Krishna, Kalle Laine, Karol Różycki, Kebin Liu, Keith Harrison, Keith Turner, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Kevin Bushiri, Kevin White, Jr., Kurt Fitzner, LSmithx2, Lars Lehtonen, Laurent Arnoud, Laurent Etiemble, Leo Arias, Liu Siyuan, Lord Landon Agahnim, Lukas Lihotzki, Luke Hamburg, Majed Abdulaziz, Marc Laporte, Marc Pujol, Marcin Dziadus, Marcus Legendre, Mario Majila, Mark Pulford, Martchus, Martin Polehla, Mateusz Naściszewski, Mateusz Ż, Matic Potočnik, Matt Burke, Matt Robenolt, Matteo Ruina, Maurizio Tomasi, Max, Max Schulze, MaximAL, Maxime Thirouin, Maximilian, MichaIng, Michael Jephcote, Michael Rienstra, Michael Tilli, Migelo, Mike Boone, MikeLund, MikolajTwarog, Mingxuan Lin, Naveen, Nicholas Rishel, Nick Busey, Nico Stapelbroek, Nicolas Braud-Santoni, Nicolas Perraut, Niels Peter Roest, Nils Jakobi, NinoM4ster, Nitroretro, NoLooseEnds, Oliver Freyermuth, Otiel, Oyebanji Jacob Mayowa, Pablo, Pascal Jungblut, Paul Brit, Pawel Palenica, Paweł Rozlach, Peter Badida, Peter Dave Hello, Peter Hoeg, Peter Marquardt, Phani Rithvij, Phil Davis, Phill Luby, Pier Paolo Ramon, Piotr Bejda, Pramodh KP, Quentin Hibon, Rahmi Pruitt, Richard Hartmann, Robert Carosi, Roberto Santalla, Robin Schoonover, Roman Zaynetdinov, Ross Smith II, Ruslan Yevdokymov, Ryan Qian, Sacheendra Talluri, Scott Klupfel, Sertonix, Severin von Wnuck-Lipinski, Shaarad Dalvi, Simon Mwepu, Simon Pickup, Sly_tom_cat, Stefan Kuntz, Steven Eckhoff, Suhas Gundimeda, Sven Bachmann, Taylor Khan, Thomas, Thomas Hipp, Tim Abell, Tim Howes, Tim Nordenfur, Tobias Klauser, Tobias Nygren, Tobias Tom, Tom Jakubowski, Tommy Thorn, Tommy van der Vorst, Tully Robinson, Tyler Brazier, Tyler Kropp, Unrud, Veeti Paananen, Victor Buinsky, Vik, Vil Brekin, Vladimir Rusinov, WangXi, Will Rouesnel, William A. Kennington III, Xavier O., Yannic A., andresvia, andyleap, boomsquared, chenrui, chucic, cjc7373, cui fliter, d-volution, derekriemer, desbma, diemade, digital, entity0xfe, georgespatton, ghjklw, guangwu, gudvinr, ignacy123, janost, jaseg, jelle van der Waa, jtagcat, klemens, kylosus, luchenhan, luzpaz, marco-m, mclang, mv1005, nf, orangekame3, otbutz, overkill, perewa, red_led, rubenbe, sec65, vapatel2, villekalliomaki, wangguoliang, wouter bolsterlee, xarx00, xjtdy888, 佛跳墙, 落心
</div>
</div>
</div>
@@ -54,7 +54,6 @@ Jakob Borg, Audrius Butkevicius, Jesse Lucas, Simon Frei, Tomasz Wilczyński, Al
<li><a href="https://github.com/calmh/xdr">calmh/xdr</a>, Copyright &copy; 2014 Jakob Borg.</li>
<li><a href="https://github.com/chmduquesne/rollinghash">chmduquesne/rollinghash</a>, Copyright &copy; 2015 Christophe-Marie Duquesne.</li>
<li><a href="https://github.com/d4l3k/messagediff">d4l3k/messagediff</a>, Copyright &copy; 2015 Tristan Rice.</li>
<li><a href="https://github.com/flynn-archive/go-shlex">flynn-archive/go-shlex</a>, Copyright &copy; 2012 Google Inc.</li>
<li><a href="https://github.com/gobwas/glob">gobwas/glob</a>, Copyright &copy; 2016 Sergey Kamardin.</li>
<li><a href="https://github.com/gogo/protobuf">gogo/protobuf</a>, Copyright &copy; 2013 The GoGo Authors.</li>
<li><a href="https://github.com/golang/groupcache">golang/groupcache</a>, Copyright &copy; 2013 Google Inc.</li>
@@ -65,7 +64,6 @@ Jakob Borg, Audrius Butkevicius, Jesse Lucas, Simon Frei, Tomasz Wilczyński, Al
<li><a href="https://github.com/lib/pq">lib/pq</a>, Copyright &copy; 2011-2013, 'pq' Contributors, portions Copyright &copy; 2011 Blake Mizerany.</li>
<li><a href="https://github.com/mattn/go-isatty">mattn/go-isatty</a>, Copyright &copy; Yasuhiro MATSUMOTO.</li>
<li><a href="https://github.com/matttproud/golang_protobuf_extensions">matttproud/golang_protobuf_extensions</a>, Copyright &copy; 2012 Matt T. Proud.</li>
<li><a href="https://github.com/minio/sha256-simd">minio/sha256-simd</a>, Copyright &copy; 2016-2017 Minio, Inc.</li>
<li><a href="https://github.com/oschwald/geoip2-golang">oschwald/geoip2-golang</a>, Copyright &copy; 2015, Gregory J. Oschwald.</li>
<li><a href="https://github.com/oschwald/maxminddb-golang">oschwald/maxminddb-golang</a>, Copyright &copy; 2015, Gregory J. Oschwald.</li>
<li><a href="https://github.com/petermattis/goid">petermattis/goid</a>, Copyright &copy; 2015-2016 Peter Mattis.</li>

0
gui/default/syncthing/core/syncthingController.js Executable file → Normal file
View File

0
gui/default/vendor/bootstrap/config.json vendored Executable file → Normal file
View File

0
gui/default/vendor/bootstrap/css/bootstrap-theme.css vendored Executable file → Normal file
View File

0
gui/default/vendor/bootstrap/css/bootstrap.css vendored Executable file → Normal file
View File

0
gui/default/vendor/bootstrap/js/bootstrap.js vendored Executable file → Normal file
View File

View File

@@ -444,7 +444,9 @@ func TestAPIServiceRequests(t *testing.T) {
// testHTTPRequest tries the given test case, comparing the result code,
// content type, and result prefix.
func testHTTPRequest(t *testing.T, baseURL string, tc httpTestCase, apikey string) {
timeout := time.Second
// Since running tests in parallel, the previous 1s timeout proved to be too short.
// https://github.com/syncthing/syncthing/issues/9455
timeout := 10 * time.Second
if tc.Timeout > 0 {
timeout = tc.Timeout
}

View File

@@ -40,7 +40,6 @@ var (
envTags = []string{
"STGUIASSETS",
"STHASHING",
"STNORESTART",
"STNOUPGRADE",
}

View File

@@ -17,7 +17,7 @@ import (
"strings"
"time"
"github.com/shirou/gopsutil/v3/disk"
"github.com/shirou/gopsutil/v4/disk"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/db"

View File

@@ -9,6 +9,7 @@ package db
import (
"bytes"
"context"
"crypto/sha256"
"encoding/binary"
"errors"
"fmt"
@@ -22,7 +23,6 @@ import (
"github.com/syncthing/syncthing/lib/events"
"github.com/syncthing/syncthing/lib/fs"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/sha256"
"github.com/syncthing/syncthing/lib/stringutil"
"github.com/syncthing/syncthing/lib/svcutil"
"github.com/syncthing/syncthing/lib/sync"

View File

@@ -15,7 +15,7 @@ import (
"strings"
"time"
"github.com/shirou/gopsutil/v3/disk"
"github.com/shirou/gopsutil/v4/disk"
"github.com/syncthing/syncthing/lib/build"
)

View File

@@ -4,10 +4,12 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !(solaris && !cgo) && !(darwin && !cgo) && !(android && amd64)
//go:build !(solaris && !cgo) && !(darwin && !cgo) && !(darwin && kqueue) && !(android && amd64) && !ios
// +build !solaris cgo
// +build !darwin cgo
// +build !darwin !kqueue
// +build !android !amd64
// +build !ios
package fs

View File

@@ -4,8 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build darwin && !kqueue && cgo
// +build darwin,!kqueue,cgo
//go:build darwin && !kqueue && cgo && !ios
// +build darwin,!kqueue,cgo,!ios
package fs

View File

@@ -4,8 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !linux && !windows && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !darwin && !cgo
// +build !linux,!windows,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!darwin,!cgo
//go:build !linux && !windows && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !darwin && !cgo && !ios
// +build !linux,!windows,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!darwin,!cgo,!ios
// Catch all platforms that are not specifically handled to use the generic
// event types.

View File

@@ -4,8 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build (solaris && !cgo) || (darwin && !cgo) || (android && amd64)
// +build solaris,!cgo darwin,!cgo android,amd64
//go:build (solaris && !cgo) || (darwin && !cgo) || (android && amd64) || ios || (darwin && kqueue)
// +build solaris,!cgo darwin,!cgo android,amd64 ios darwin,kqueue
package fs

View File

@@ -924,6 +924,8 @@ func (f *fakeFile) Name() string {
if f.presentedName != "" {
return f.presentedName
}
f.mut.Lock()
defer f.mut.Unlock()
return f.name
}
@@ -949,7 +951,9 @@ func (f *fakeFile) Truncate(size int64) error {
}
func (f *fakeFile) Stat() (FileInfo, error) {
f.mut.Lock()
info := &fakeFileInfo{*f.fakeEntry}
f.mut.Unlock()
if f.presentedName != "" {
info.name = f.presentedName
}

View File

@@ -261,11 +261,6 @@ func NewFilesystem(fsType FilesystemType, uri string, opts ...Option) Filesystem
}
}
// Case handling is the innermost, as any filesystem calls by wrappers should be case-resolved
if caseOpt != nil {
fs = caseOpt.apply(fs)
}
// mtime handling should happen inside walking, as filesystem calls while
// walking should be mtime-resolved too
if mtimeOpt != nil {
@@ -274,15 +269,35 @@ func NewFilesystem(fsType FilesystemType, uri string, opts ...Option) Filesystem
fs = &metricsFS{next: fs}
layersAboveWalkFilesystem := 0
if caseOpt != nil {
// DirNames calls made to check the case of a name will also be
// attributed to the calling function.
layersAboveWalkFilesystem++
}
if l.ShouldDebug("walkfs") {
return NewWalkFilesystem(&logFilesystem{fs})
// A walkFilesystem is not a layer to skip, it embeds the underlying
// filesystem, passing calls directly trough. Except for calls made
// during walking, however those are truly originating in the walk
// filesystem.
fs = NewWalkFilesystem(newLogFilesystem(fs, layersAboveWalkFilesystem))
} else if l.ShouldDebug("fs") {
fs = newLogFilesystem(NewWalkFilesystem(fs), layersAboveWalkFilesystem)
} else {
fs = NewWalkFilesystem(fs)
}
if l.ShouldDebug("fs") {
return &logFilesystem{NewWalkFilesystem(fs)}
// Case handling is at the outermost layer to resolve all input names.
// Reason being is that the only names/paths that are potentially "wrong"
// come from outside the fs package. Any paths that result from filesystem
// operations itself already have the correct case. Thus there's e.g. no
// point to check the case on all the stating the walk filesystem does, it
// just adds overhead.
if caseOpt != nil {
fs = caseOpt.apply(fs)
}
return NewWalkFilesystem(fs)
return fs
}
// IsInternal returns true if the file, as a path relative to the folder

View File

@@ -16,10 +16,20 @@ import (
type logFilesystem struct {
Filesystem
// Number of filesystem layers on top of logFilesystem to skip when looking
// for the true caller of the filesystem
layers int
}
func getCaller() string {
_, file, line, ok := runtime.Caller(2)
func newLogFilesystem(fs Filesystem, layers int) *logFilesystem {
return &logFilesystem{
Filesystem: fs,
layers: layers,
}
}
func (fs *logFilesystem) getCaller() string {
_, file, line, ok := runtime.Caller(fs.layers + 1)
if !ok {
return "unknown"
}
@@ -28,139 +38,139 @@ func getCaller() string {
func (fs *logFilesystem) Chmod(name string, mode FileMode) error {
err := fs.Filesystem.Chmod(name, mode)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Chmod", name, mode, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Chmod", name, mode, err)
return err
}
func (fs *logFilesystem) Chtimes(name string, atime time.Time, mtime time.Time) error {
err := fs.Filesystem.Chtimes(name, atime, mtime)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Chtimes", name, atime, mtime, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Chtimes", name, atime, mtime, err)
return err
}
func (fs *logFilesystem) Create(name string) (File, error) {
file, err := fs.Filesystem.Create(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Create", name, file, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Create", name, file, err)
return file, err
}
func (fs *logFilesystem) CreateSymlink(target, name string) error {
err := fs.Filesystem.CreateSymlink(target, name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "CreateSymlink", target, name, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "CreateSymlink", target, name, err)
return err
}
func (fs *logFilesystem) DirNames(name string) ([]string, error) {
names, err := fs.Filesystem.DirNames(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "DirNames", name, names, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "DirNames", name, names, err)
return names, err
}
func (fs *logFilesystem) Lstat(name string) (FileInfo, error) {
info, err := fs.Filesystem.Lstat(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Lstat", name, info, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Lstat", name, info, err)
return info, err
}
func (fs *logFilesystem) Mkdir(name string, perm FileMode) error {
err := fs.Filesystem.Mkdir(name, perm)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Mkdir", name, perm, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Mkdir", name, perm, err)
return err
}
func (fs *logFilesystem) MkdirAll(name string, perm FileMode) error {
err := fs.Filesystem.MkdirAll(name, perm)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "MkdirAll", name, perm, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "MkdirAll", name, perm, err)
return err
}
func (fs *logFilesystem) Open(name string) (File, error) {
file, err := fs.Filesystem.Open(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Open", name, file, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Open", name, file, err)
return file, err
}
func (fs *logFilesystem) OpenFile(name string, flags int, mode FileMode) (File, error) {
file, err := fs.Filesystem.OpenFile(name, flags, mode)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "OpenFile", name, flags, mode, file, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "OpenFile", name, flags, mode, file, err)
return file, err
}
func (fs *logFilesystem) ReadSymlink(name string) (string, error) {
target, err := fs.Filesystem.ReadSymlink(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "ReadSymlink", name, target, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "ReadSymlink", name, target, err)
return target, err
}
func (fs *logFilesystem) Remove(name string) error {
err := fs.Filesystem.Remove(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Remove", name, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Remove", name, err)
return err
}
func (fs *logFilesystem) RemoveAll(name string) error {
err := fs.Filesystem.RemoveAll(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "RemoveAll", name, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "RemoveAll", name, err)
return err
}
func (fs *logFilesystem) Rename(oldname, newname string) error {
err := fs.Filesystem.Rename(oldname, newname)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Rename", oldname, newname, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Rename", oldname, newname, err)
return err
}
func (fs *logFilesystem) Stat(name string) (FileInfo, error) {
info, err := fs.Filesystem.Stat(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Stat", name, info, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Stat", name, info, err)
return info, err
}
func (fs *logFilesystem) SymlinksSupported() bool {
supported := fs.Filesystem.SymlinksSupported()
l.Debugln(getCaller(), fs.Type(), fs.URI(), "SymlinksSupported", supported)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "SymlinksSupported", supported)
return supported
}
func (fs *logFilesystem) Walk(root string, walkFn WalkFunc) error {
err := fs.Filesystem.Walk(root, walkFn)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Walk", root, walkFn, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Walk", root, walkFn, err)
return err
}
func (fs *logFilesystem) Watch(path string, ignore Matcher, ctx context.Context, ignorePerms bool) (<-chan Event, <-chan error, error) {
evChan, errChan, err := fs.Filesystem.Watch(path, ignore, ctx, ignorePerms)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Watch", path, ignore, ignorePerms, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Watch", path, ignore, ignorePerms, err)
return evChan, errChan, err
}
func (fs *logFilesystem) Unhide(name string) error {
err := fs.Filesystem.Unhide(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Unhide", name, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Unhide", name, err)
return err
}
func (fs *logFilesystem) Hide(name string) error {
err := fs.Filesystem.Hide(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Hide", name, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Hide", name, err)
return err
}
func (fs *logFilesystem) Glob(name string) ([]string, error) {
names, err := fs.Filesystem.Glob(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Glob", name, names, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Glob", name, names, err)
return names, err
}
func (fs *logFilesystem) Roots() ([]string, error) {
roots, err := fs.Filesystem.Roots()
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Roots", roots, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Roots", roots, err)
return roots, err
}
func (fs *logFilesystem) Usage(name string) (Usage, error) {
usage, err := fs.Filesystem.Usage(name)
l.Debugln(getCaller(), fs.Type(), fs.URI(), "Usage", name, usage, err)
l.Debugln(fs.getCaller(), fs.Type(), fs.URI(), "Usage", name, usage, err)
return usage, err
}

View File

@@ -7,12 +7,12 @@
package fs
import (
"crypto/sha256"
"fmt"
"path/filepath"
"strings"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/sha256"
)
const (

View File

@@ -19,8 +19,7 @@ type nower interface {
var clock = nower(defaultClock{})
type cache struct {
patterns []Pattern
entries map[string]cacheEntry
entries map[string]cacheEntry
}
type cacheEntry struct {
@@ -28,10 +27,9 @@ type cacheEntry struct {
access int64 // Unix nanosecond count. Sufficient until the year 2262.
}
func newCache(patterns []Pattern) *cache {
func newCache() *cache {
return &cache{
patterns: patterns,
entries: make(map[string]cacheEntry),
entries: make(map[string]cacheEntry),
}
}

View File

@@ -21,7 +21,7 @@ func TestCache(t *testing.T) {
clock = oldClock
}()
c := newCache(nil)
c := newCache()
res, ok := c.get("nonexistent")
if res.IsIgnored() || res.IsDeletable() || ok {

View File

@@ -9,6 +9,7 @@ package ignore
import (
"bufio"
"bytes"
"crypto/sha256"
"errors"
"fmt"
"io"
@@ -21,7 +22,6 @@ import (
"github.com/syncthing/syncthing/lib/fs"
"github.com/syncthing/syncthing/lib/ignore/ignoreresult"
"github.com/syncthing/syncthing/lib/osutil"
"github.com/syncthing/syncthing/lib/sha256"
"github.com/syncthing/syncthing/lib/sync"
)
@@ -205,7 +205,7 @@ func (m *Matcher) parseLocked(r io.Reader, file string) error {
m.curHash = newHash
m.patterns = patterns
if m.withCache {
m.matches = newCache(patterns)
m.matches = newCache()
}
return err
@@ -231,6 +231,8 @@ func (m *Matcher) Match(file string) (result ignoreresult.R) {
return ignoreresult.NotIgnored
}
file = filepath.ToSlash(file)
if m.matches != nil {
// Check the cache for a known result.
res, ok := m.matches.get(file)
@@ -248,7 +250,6 @@ func (m *Matcher) Match(file string) (result ignoreresult.R) {
// allow skipping matched directories or not. As soon as we hit an
// exclude pattern (with some exceptions), we can't skip directories
// anymore.
file = filepath.ToSlash(file)
var lowercaseFile string
canSkipDir := true
for _, pattern := range m.patterns {

View File

@@ -4,7 +4,7 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows || darwin
//go:build windows || darwin || ios
package ignoreresult

View File

@@ -4,7 +4,7 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows && !darwin
//go:build !windows && !darwin && !ios
package ignoreresult

View File

@@ -180,7 +180,7 @@ func defaultConfigDir(userHome string) string {
case build.IsWindows:
return windowsConfigDataDir()
case build.IsDarwin:
case build.IsDarwin, build.IsIOS:
return darwinConfigDataDir(userHome)
default:
@@ -191,7 +191,7 @@ func defaultConfigDir(userHome string) string {
// defaultDataDir returns the default data directory, where we store the
// database, log files, etc.
func defaultDataDir(userHome, configDir string) string {
if build.IsWindows || build.IsDarwin {
if build.IsWindows || build.IsDarwin || build.IsIOS {
return configDir
}

View File

@@ -9,6 +9,7 @@ package model
import (
"bytes"
"context"
"crypto/sha256"
"errors"
"fmt"
"io"
@@ -28,7 +29,6 @@ import (
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/scanner"
"github.com/syncthing/syncthing/lib/semaphore"
"github.com/syncthing/syncthing/lib/sha256"
"github.com/syncthing/syncthing/lib/sync"
"github.com/syncthing/syncthing/lib/versioner"
"github.com/syncthing/syncthing/lib/weakhash"
@@ -1579,7 +1579,7 @@ loop:
activity.using(selected)
var buf []byte
blockNo := int(state.block.Offset / int64(state.file.BlockSize()))
buf, lastError = f.model.requestGlobal(f.ctx, selected.ID, f.folderID, state.file.Name, blockNo, state.block.Offset, int(state.block.Size), state.block.Hash, state.block.WeakHash, selected.FromTemporary)
buf, lastError = f.model.RequestGlobal(f.ctx, selected.ID, f.folderID, state.file.Name, blockNo, state.block.Offset, int(state.block.Size), state.block.Hash, state.block.WeakHash, selected.FromTemporary)
activity.done(selected)
if lastError != nil {
l.Debugln("request:", f.folderID, state.file.Name, state.block.Offset, state.block.Size, selected.ID.Short(), "returned error:", lastError)

View File

@@ -261,7 +261,7 @@ func (c *folderSummaryService) processUpdate(ev events.Event) {
return
case events.DownloadProgress:
data := ev.Data.(map[string]map[string]*pullerProgress)
data := ev.Data.(map[string]map[string]*PullerProgress)
c.foldersMut.Lock()
for folder := range data {
c.folders[folder] = struct{}{}

View File

@@ -435,6 +435,28 @@ type Model struct {
result1 protocol.RequestResponse
result2 error
}
RequestGlobalStub func(context.Context, protocol.DeviceID, string, string, int, int64, int, []byte, uint32, bool) ([]byte, error)
requestGlobalMutex sync.RWMutex
requestGlobalArgsForCall []struct {
arg1 context.Context
arg2 protocol.DeviceID
arg3 string
arg4 string
arg5 int
arg6 int64
arg7 int
arg8 []byte
arg9 uint32
arg10 bool
}
requestGlobalReturns struct {
result1 []byte
result2 error
}
requestGlobalReturnsOnCall map[int]struct {
result1 []byte
result2 error
}
ResetFolderStub func(string) error
resetFolderMutex sync.RWMutex
resetFolderArgsForCall []struct {
@@ -2558,6 +2580,84 @@ func (fake *Model) RequestReturnsOnCall(i int, result1 protocol.RequestResponse,
}{result1, result2}
}
func (fake *Model) RequestGlobal(arg1 context.Context, arg2 protocol.DeviceID, arg3 string, arg4 string, arg5 int, arg6 int64, arg7 int, arg8 []byte, arg9 uint32, arg10 bool) ([]byte, error) {
var arg8Copy []byte
if arg8 != nil {
arg8Copy = make([]byte, len(arg8))
copy(arg8Copy, arg8)
}
fake.requestGlobalMutex.Lock()
ret, specificReturn := fake.requestGlobalReturnsOnCall[len(fake.requestGlobalArgsForCall)]
fake.requestGlobalArgsForCall = append(fake.requestGlobalArgsForCall, struct {
arg1 context.Context
arg2 protocol.DeviceID
arg3 string
arg4 string
arg5 int
arg6 int64
arg7 int
arg8 []byte
arg9 uint32
arg10 bool
}{arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8Copy, arg9, arg10})
stub := fake.RequestGlobalStub
fakeReturns := fake.requestGlobalReturns
fake.recordInvocation("RequestGlobal", []interface{}{arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8Copy, arg9, arg10})
fake.requestGlobalMutex.Unlock()
if stub != nil {
return stub(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
}
if specificReturn {
return ret.result1, ret.result2
}
return fakeReturns.result1, fakeReturns.result2
}
func (fake *Model) RequestGlobalCallCount() int {
fake.requestGlobalMutex.RLock()
defer fake.requestGlobalMutex.RUnlock()
return len(fake.requestGlobalArgsForCall)
}
func (fake *Model) RequestGlobalCalls(stub func(context.Context, protocol.DeviceID, string, string, int, int64, int, []byte, uint32, bool) ([]byte, error)) {
fake.requestGlobalMutex.Lock()
defer fake.requestGlobalMutex.Unlock()
fake.RequestGlobalStub = stub
}
func (fake *Model) RequestGlobalArgsForCall(i int) (context.Context, protocol.DeviceID, string, string, int, int64, int, []byte, uint32, bool) {
fake.requestGlobalMutex.RLock()
defer fake.requestGlobalMutex.RUnlock()
argsForCall := fake.requestGlobalArgsForCall[i]
return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4, argsForCall.arg5, argsForCall.arg6, argsForCall.arg7, argsForCall.arg8, argsForCall.arg9, argsForCall.arg10
}
func (fake *Model) RequestGlobalReturns(result1 []byte, result2 error) {
fake.requestGlobalMutex.Lock()
defer fake.requestGlobalMutex.Unlock()
fake.RequestGlobalStub = nil
fake.requestGlobalReturns = struct {
result1 []byte
result2 error
}{result1, result2}
}
func (fake *Model) RequestGlobalReturnsOnCall(i int, result1 []byte, result2 error) {
fake.requestGlobalMutex.Lock()
defer fake.requestGlobalMutex.Unlock()
fake.RequestGlobalStub = nil
if fake.requestGlobalReturnsOnCall == nil {
fake.requestGlobalReturnsOnCall = make(map[int]struct {
result1 []byte
result2 error
})
}
fake.requestGlobalReturnsOnCall[i] = struct {
result1 []byte
result2 error
}{result1, result2}
}
func (fake *Model) ResetFolder(arg1 string) error {
fake.resetFolderMutex.Lock()
ret, specificReturn := fake.resetFolderReturnsOnCall[len(fake.resetFolderArgsForCall)]
@@ -3258,6 +3358,8 @@ func (fake *Model) Invocations() map[string][][]interface{} {
defer fake.remoteNeedFolderFilesMutex.RUnlock()
fake.requestMutex.RLock()
defer fake.requestMutex.RUnlock()
fake.requestGlobalMutex.RLock()
defer fake.requestGlobalMutex.RUnlock()
fake.resetFolderMutex.RLock()
defer fake.resetFolderMutex.RUnlock()
fake.restoreFolderVersionsMutex.RLock()

View File

@@ -117,6 +117,8 @@ type Model interface {
DismissPendingFolder(device protocol.DeviceID, folder string) error
GlobalDirectoryTree(folder, prefix string, levels int, dirsOnly bool) ([]*TreeEntry, error)
RequestGlobal(ctx context.Context, deviceID protocol.DeviceID, folder, name string, blockNo int, offset int64, size int, hash []byte, weakHash uint32, fromTemporary bool) ([]byte, error)
}
type model struct {
@@ -375,7 +377,7 @@ func (m *model) addAndStartFolderLockedWithIgnores(cfg config.FolderConfiguratio
// it'll show up as errored later.
if err := cfg.CreateRoot(); err != nil {
l.Warnln("Failed to create folder root directory", err)
l.Warnln("Failed to create folder root directory:", err)
} else if err = cfg.CreateMarker(); err != nil {
l.Warnln("Failed to create folder marker:", err)
}
@@ -2460,7 +2462,7 @@ func (m *model) deviceDidCloseRLocked(deviceID protocol.DeviceID, duration time.
}
}
func (m *model) requestGlobal(ctx context.Context, deviceID protocol.DeviceID, folder, name string, blockNo int, offset int64, size int, hash []byte, weakHash uint32, fromTemporary bool) ([]byte, error) {
func (m *model) RequestGlobal(ctx context.Context, deviceID protocol.DeviceID, folder, name string, blockNo int, offset int64, size int, hash []byte, weakHash uint32, fromTemporary bool) ([]byte, error) {
conn, connOK := m.requestConnectionForDevice(deviceID)
if !connOK {
return nil, fmt.Errorf("requestGlobal: no connection to device: %s", deviceID.Short())
@@ -2566,7 +2568,7 @@ func (m *model) numHashers(folder string) int {
return folderCfg.Hashers
}
if build.IsWindows || build.IsDarwin || build.IsAndroid {
if build.IsWindows || build.IsDarwin || build.IsIOS || build.IsAndroid {
// Interactive operating systems; don't load the system too heavily by
// default.
return 1

View File

@@ -222,7 +222,7 @@ func BenchmarkRequestOut(b *testing.B) {
b.ResetTimer()
for i := 0; i < b.N; i++ {
data, err := m.requestGlobal(context.Background(), device1, "default", files[i%n].Name, 0, 0, 32, nil, 0, false)
data, err := m.RequestGlobal(context.Background(), device1, "default", files[i%n].Name, 0, 0, 32, nil, 0, false)
if err != nil {
b.Error(err)
}

View File

@@ -118,12 +118,12 @@ func (t *ProgressEmitter) Serve(ctx context.Context) error {
}
func (t *ProgressEmitter) sendDownloadProgressEventLocked() {
output := make(map[string]map[string]*pullerProgress)
output := make(map[string]map[string]*PullerProgress)
for folder, pullers := range t.registry {
if len(pullers) == 0 {
continue
}
output[folder] = make(map[string]*pullerProgress)
output[folder] = make(map[string]*PullerProgress)
for name, puller := range pullers {
output[folder][name] = puller.Progress()
}

View File

@@ -39,7 +39,7 @@ func expectEvent(w events.Subscription, t *testing.T, size int) {
if event.Type != events.DownloadProgress {
t.Fatal("Unexpected event:", event, "at", caller(1))
}
data := event.Data.(map[string]map[string]*pullerProgress)
data := event.Data.(map[string]map[string]*PullerProgress)
if len(data) != size {
t.Fatal("Unexpected event data size:", data, "at", caller(1))
}

View File

@@ -75,7 +75,7 @@ func newSharedPullerState(file protocol.FileInfo, fs fs.Filesystem, folderID, te
}
// A momentary state representing the progress of the puller
type pullerProgress struct {
type PullerProgress struct {
Total int `json:"total"`
Reused int `json:"reused"`
CopiedFromOrigin int `json:"copiedFromOrigin"`
@@ -405,13 +405,13 @@ func encryptionTrailerSize(file protocol.FileInfo) int64 {
}
// Progress returns the momentarily progress for the puller
func (s *sharedPullerState) Progress() *pullerProgress {
func (s *sharedPullerState) Progress() *PullerProgress {
s.mut.RLock()
defer s.mut.RUnlock()
total := s.reused + s.copyTotal + s.pullTotal
done := total - s.copyNeeded - s.pullNeeded
file := len(s.file.Blocks)
return &pullerProgress{
return &PullerProgress{
Total: total,
Reused: s.reused,
CopiedFromOrigin: s.copyOrigin,

View File

@@ -0,0 +1,16 @@
// Copyright (C) 2020 The Syncthing Authors.
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build ios
// +build ios
package osutil
// SetLowPriority not possible on some platforms
// I/O priority depending on the platform and OS.
func SetLowPriority() error {
return nil
}

View File

@@ -4,8 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build (!windows && !linux) || android
// +build !windows,!linux android
//go:build (!windows && !linux && !ios) || android
// +build !windows,!linux,!ios android
package osutil

View File

@@ -4,6 +4,7 @@ package protocol
import (
"bytes"
"crypto/sha256"
"encoding/binary"
"encoding/json"
"errors"
@@ -12,7 +13,6 @@ import (
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/rand"
"github.com/syncthing/syncthing/lib/sha256"
)
const (

View File

@@ -4,13 +4,12 @@ package protocol
import (
"bytes"
"crypto/sha256"
"encoding/base32"
"encoding/binary"
"errors"
"fmt"
"strings"
"github.com/syncthing/syncthing/lib/sha256"
)
const (

View File

@@ -8,6 +8,7 @@ package protocol
import (
"context"
"crypto/sha256"
"encoding/base32"
"encoding/binary"
"errors"
@@ -20,7 +21,6 @@ import (
lru "github.com/hashicorp/golang-lru/v2"
"github.com/miscreant/miscreant.go"
"github.com/syncthing/syncthing/lib/rand"
"github.com/syncthing/syncthing/lib/sha256"
"golang.org/x/crypto/chacha20poly1305"
"golang.org/x/crypto/hkdf"
"golang.org/x/crypto/scrypt"

View File

@@ -9,12 +9,12 @@ package scanner
import (
"bytes"
"context"
"crypto/sha256"
"hash"
"hash/adler32"
"io"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/sha256"
)
var SHA256OfNothing = []uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}

View File

@@ -10,6 +10,7 @@ import (
"bytes"
"context"
"crypto/rand"
"crypto/sha256"
"fmt"
origAdler32 "hash/adler32"
mrand "math/rand"
@@ -18,7 +19,6 @@ import (
rollingAdler32 "github.com/chmduquesne/rollinghash/adler32"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/sha256"
)
var blocksTestData = []struct {

View File

@@ -553,7 +553,7 @@ func (w *walker) walkSymlink(ctx context.Context, relPath string, info fs.FileIn
// normalizePath returns the normalized relative path (possibly after fixing
// it on disk), or skip is true.
func (w *walker) normalizePath(path string, info fs.FileInfo) (normPath string, err error) {
if build.IsDarwin {
if build.IsDarwin || build.IsIOS {
// Mac OS X file names should always be NFD normalized.
normPath = norm.NFD.String(path)
} else {

View File

@@ -9,6 +9,7 @@ package scanner
import (
"bytes"
"context"
"crypto/sha256"
"errors"
"fmt"
"io"
@@ -26,7 +27,6 @@ import (
"github.com/syncthing/syncthing/lib/ignore"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/rand"
"github.com/syncthing/syncthing/lib/sha256"
"golang.org/x/text/unicode/norm"
)

View File

@@ -1,157 +0,0 @@
// Copyright (C) 2016 The Syncthing Authors.
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
package sha256
import (
cryptoSha256 "crypto/sha256"
"encoding/hex"
"fmt"
"hash"
"math/rand"
"os"
"time"
minioSha256 "github.com/minio/sha256-simd"
"github.com/syncthing/syncthing/lib/logger"
)
var l = logger.DefaultLogger.NewFacility("sha256", "SHA256 hashing package")
const (
benchmarkingIterations = 3
benchmarkingDuration = 150 * time.Millisecond
defaultImpl = "crypto/sha256"
minioImpl = "minio/sha256-simd"
Size = cryptoSha256.Size
)
// May be switched out for another implementation
var (
New = cryptoSha256.New
Sum256 = cryptoSha256.Sum256
)
var (
selectedImpl = defaultImpl
cryptoPerf float64
minioPerf float64
)
func SelectAlgo() {
switch os.Getenv("STHASHING") {
case "":
// When unset, probe for the fastest implementation.
benchmark()
if minioPerf > cryptoPerf {
selectMinio()
}
case "minio":
// When set to "minio", use that.
selectMinio()
default:
// When set to anything else, such as "standard", use the default Go
// implementation. Make sure not to touch the minio
// implementation as it may be disabled for incompatibility reasons.
}
verifyCorrectness()
}
// Report prints a line with the measured hash performance rates for the
// selected and alternate implementation.
func Report() {
var otherImpl string
var selectedRate, otherRate float64
switch selectedImpl {
case defaultImpl:
selectedRate = cryptoPerf
otherRate = minioPerf
otherImpl = minioImpl
case minioImpl:
selectedRate = minioPerf
otherRate = cryptoPerf
otherImpl = defaultImpl
}
if selectedRate == 0 {
return
}
l.Infof("Single thread SHA256 performance is %s using %s (%s using %s).", formatRate(selectedRate), selectedImpl, formatRate(otherRate), otherImpl)
}
func selectMinio() {
New = minioSha256.New
Sum256 = minioSha256.Sum256
selectedImpl = minioImpl
}
func benchmark() {
// Interleave the tests to achieve some sort of fairness if the CPU is
// just in the process of spinning up to full speed.
for i := 0; i < benchmarkingIterations; i++ {
if perf := cpuBenchOnce(benchmarkingDuration, cryptoSha256.New); perf > cryptoPerf {
cryptoPerf = perf
}
if perf := cpuBenchOnce(benchmarkingDuration, minioSha256.New); perf > minioPerf {
minioPerf = perf
}
}
}
func cpuBenchOnce(duration time.Duration, newFn func() hash.Hash) float64 {
chunkSize := 100 * 1 << 10
h := newFn()
bs := make([]byte, chunkSize)
r := rand.New(rand.NewSource(time.Now().UnixNano()))
r.Read(bs)
t0 := time.Now()
b := 0
for time.Since(t0) < duration {
h.Write(bs)
b += chunkSize
}
h.Sum(nil)
d := time.Since(t0)
return float64(int(float64(b)/d.Seconds()/(1<<20)*100)) / 100
}
func formatRate(rate float64) string {
decimals := 0
if rate < 1 {
decimals = 2
} else if rate < 10 {
decimals = 1
}
return fmt.Sprintf("%.*f MB/s", decimals, rate)
}
func verifyCorrectness() {
// The currently selected algo should in fact perform a SHA256 calculation.
// $ echo "Syncthing Magic Testing Value" | openssl dgst -sha256 -hex
correct := "87f6cfd24131724c6ec43495594c5c22abc7d2b86bcc134bc6f10b7ec3dda4ee"
input := "Syncthing Magic Testing Value\n"
h := New()
h.Write([]byte(input))
sum := hex.EncodeToString(h.Sum(nil))
if sum != correct {
panic("sha256 is broken")
}
arr := Sum256([]byte(input))
sum = hex.EncodeToString(arr[:])
if sum != correct {
panic("sha256 is broken")
}
}

View File

@@ -11,6 +11,7 @@ package signature
import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/sha256"
"crypto/x509"
"encoding/asn1"
"encoding/pem"
@@ -20,7 +21,6 @@ import (
"math/big"
"github.com/syncthing/syncthing/lib/rand"
"github.com/syncthing/syncthing/lib/sha256"
)
// GenerateKeys returns a new key pair, with the private and public key

View File

@@ -0,0 +1,86 @@
// Copyright (C) 2024 The Syncthing Authors.
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
package syncthing
import (
"context"
"time"
"github.com/syncthing/syncthing/lib/db"
"github.com/syncthing/syncthing/lib/model"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/stats"
)
// Internals allows access to a subset of functionality in model.Model. While intended for use from applications that import
// the package, it is not intended as a stable API at this time. It does however provide a boundary between the more
// volatile Model interface and upstream users (one of which is an iOS app).
type Internals struct {
model model.Model
}
func newInternals(model model.Model) *Internals {
return &Internals{
model: model,
}
}
func (m *Internals) FolderState(folderID string) (string, time.Time, error) {
return m.model.State(folderID)
}
func (m *Internals) Ignores(folderID string) ([]string, []string, error) {
return m.model.CurrentIgnores(folderID)
}
func (m *Internals) SetIgnores(folderID string, content []string) error {
return m.model.SetIgnores(folderID, content)
}
func (m *Internals) DownloadBlock(ctx context.Context, deviceID protocol.DeviceID, folderID string, path string, blockNumber int, blockInfo protocol.BlockInfo, allowFromTemporary bool) ([]byte, error) {
return m.model.RequestGlobal(ctx, deviceID, folderID, path, int(blockNumber), blockInfo.Offset, blockInfo.Size, blockInfo.Hash, blockInfo.WeakHash, allowFromTemporary)
}
func (m *Internals) BlockAvailability(folderID string, file protocol.FileInfo, block protocol.BlockInfo) ([]model.Availability, error) {
return m.model.Availability(folderID, file, block)
}
func (m *Internals) GlobalFileInfo(folderID, path string) (protocol.FileInfo, bool, error) {
return m.model.CurrentGlobalFile(folderID, path)
}
func (m *Internals) GlobalTree(folderID string, prefix string, levels int, returnOnlyDirectories bool) ([]*model.TreeEntry, error) {
return m.model.GlobalDirectoryTree(folderID, prefix, levels, returnOnlyDirectories)
}
func (m *Internals) IsConnectedTo(deviceID protocol.DeviceID) bool {
return m.model.ConnectedTo(deviceID)
}
func (m *Internals) ScanFolders() map[string]error {
return m.model.ScanFolders()
}
func (m *Internals) Completion(deviceID protocol.DeviceID, folderID string) (model.FolderCompletion, error) {
return m.model.Completion(deviceID, folderID)
}
func (m *Internals) DeviceStatistics() (map[protocol.DeviceID]stats.DeviceStatistics, error) {
return m.model.DeviceStatistics()
}
func (m *Internals) PendingFolders(deviceID protocol.DeviceID) (map[string]db.PendingFolder, error) {
return m.model.PendingFolders(deviceID)
}
func (m *Internals) DBSnapshot(folderID string) (*db.Snapshot, error) {
return m.model.DBSnapshot(folderID)
}
func (m *Internals) ScanFolderSubdirs(folderID string, paths []string) error {
return m.model.ScanFolderSubdirs(folderID, paths)
}

View File

@@ -37,7 +37,6 @@ import (
"github.com/syncthing/syncthing/lib/osutil"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/rand"
"github.com/syncthing/syncthing/lib/sha256"
"github.com/syncthing/syncthing/lib/svcutil"
"github.com/syncthing/syncthing/lib/tlsutil"
"github.com/syncthing/syncthing/lib/upgrade"
@@ -77,6 +76,9 @@ type App struct {
stopOnce sync.Once
mainServiceCancel context.CancelFunc
stopped chan struct{}
// Access to internals for direct users of this package. Note that the interface in Internals is unstable!
Internals *Internals
}
func New(cfg config.Wrapper, dbBackend backend.Backend, evLogger events.Logger, cert tls.Certificate, opts Options) (*App, error) {
@@ -152,11 +154,6 @@ func (a *App) startup() error {
l.SetPrefix(fmt.Sprintf("[%s] ", a.myID.String()[:5]))
l.Infoln("My ID:", a.myID)
// Select SHA256 implementation and report. Affected by the
// STHASHING environment variable.
sha256.SelectAlgo()
sha256.Report()
// Emit the Starting event, now that we know who we are.
a.evLogger.Log(events.Starting, map[string]string{
@@ -249,6 +246,7 @@ func (a *App) startup() error {
keyGen := protocol.NewKeyGenerator()
m := model.NewModel(a.cfg, a.myID, a.ll, protectedFiles, a.evLogger, keyGen)
a.Internals = newInternals(m)
a.mainService.Add(m)

View File

@@ -4,8 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !noupgrade
// +build !noupgrade
//go:build !noupgrade && !ios
// +build !noupgrade,!ios
package upgrade
@@ -28,6 +28,7 @@ import (
"strings"
"time"
"github.com/shirou/gopsutil/v4/host"
"github.com/syncthing/syncthing/lib/dialer"
"github.com/syncthing/syncthing/lib/signature"
"golang.org/x/net/http2"
@@ -76,8 +77,12 @@ var insecureHTTP = &http.Client{
},
}
var osVersion string
func init() {
_ = http2.ConfigureTransport(insecureHTTP.Transport.(*http.Transport))
osVersion, _ = host.KernelVersion()
osVersion = strings.TrimSpace(osVersion)
}
func insecureGet(url, version string) (*http.Response, error) {
@@ -87,6 +92,9 @@ func insecureGet(url, version string) (*http.Response, error) {
}
req.Header.Set("User-Agent", fmt.Sprintf(`syncthing %s (%s %s-%s)`, version, runtime.Version(), runtime.GOOS, runtime.GOARCH))
if osVersion != "" {
req.Header.Set("Syncthing-Os-Version", osVersion)
}
return insecureHTTP.Do(req)
}
@@ -118,9 +126,11 @@ type SortByRelease []Release
func (s SortByRelease) Len() int {
return len(s)
}
func (s SortByRelease) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s SortByRelease) Less(i, j int) bool {
return CompareVersions(s[i].Tag, s[j].Tag) > 0
}
@@ -428,7 +438,7 @@ func writeBinary(dir string, inFile io.Reader) (filename string, err error) {
return "", err
}
err = os.Chmod(outFile.Name(), os.FileMode(0755))
err = os.Chmod(outFile.Name(), os.FileMode(0o755))
if err != nil {
os.Remove(outFile.Name())
return "", err

View File

@@ -4,8 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build noupgrade
// +build noupgrade
//go:build noupgrade || ios
// +build noupgrade ios
package upgrade

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "STDISCOSRV" "1" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "STDISCOSRV" "1" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
stdiscosrv \- Syncthing Discovery Server
.SH SYNOPSIS
@@ -112,7 +112,7 @@ entry from the list.
.SS Description
.sp
This guide assumes that you have already set up Syncthing. If you
havent yet, head over to \X'tty: link #getting-started'\fI\%Getting Started\fP\X'tty: link' first.
havent yet, head over to \fI\%Getting Started\fP first.
.SS Installing
.sp
Go to \X'tty: link https://github.com/syncthing/discosrv/releases'\fI\%releases\fP <\fBhttps://github.com/syncthing/discosrv/releases\fP>\X'tty: link' and

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "STRELAYSRV" "1" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "STRELAYSRV" "1" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
strelaysrv \- Syncthing Relay Server
.SH SYNOPSIS

View File

@@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-BEP" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-BEP" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-bep \- Block Exchange Protocol v1
.SH INTRODUCTION AND DEFINITIONS
@@ -378,7 +378,7 @@ The \fBencryption_password_token\fP field contains a token derived from the pass
used to encrypt data sent to this device. If the device is the same as the
device sending the message, it signifies that the device itself has encrypted
data that was encrypted with the given token. It is empty or missing if there is
no encryption. See \X'tty: link #untrusted'\fI\%Untrusted Device Encryption\fP\X'tty: link' for details on the encryption scheme.
no encryption. See \fI\%Untrusted Device Encryption\fP for details on the encryption scheme.
.SS Index and Index Update
.sp
The Index and Index Update messages define the contents of the senders

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-CONFIG" "5" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-CONFIG" "5" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-config \- Syncthing Configuration
.SH SYNOPSIS
@@ -84,7 +84,7 @@ with a custom certificate for HTTPS as desired.
.sp
The database is by default stored in the same directory as the config, but
the location may be overridden by the \fB\-\-data\fP or \fB\-\-home\fP flags or the
corresponding environment varibles (\fB$STDATADIR\fP or \fBSTHOMEDIR\fP).
corresponding environment variables (\fB$STDATADIR\fP or \fBSTHOMEDIR\fP).
.sp
The database directory contains the following files, among others:
.INDENT 0.0
@@ -602,7 +602,7 @@ to \fB\-1\fP to always use weak hash. Default is \fB25\fP\&.
.TP
.B markerName
Name of a directory or file in the folder root to be used as
\X'tty: link #marker-faq'\fI\%How do I serve a folder from a read only filesystem?\fP\X'tty: link'\&. Default is \fB\&.stfolder\fP\&.
\fI\%How do I serve a folder from a read only filesystem?\fP\&. Default is \fB\&.stfolder\fP\&.
.UNINDENT
.INDENT 0.0
.TP
@@ -751,7 +751,7 @@ element:
.INDENT 0.0
.TP
.B id (mandatory)
The \X'tty: link #device-ids'\fI\%device ID\fP\X'tty: link'\&.
The \fI\%device ID\fP\&.
.UNINDENT
.INDENT 0.0
.TP
@@ -1334,7 +1334,7 @@ automatic upgrades.
.TP
.B upgradeToPreReleases
If \fBtrue\fP, automatic upgrades include release candidates (see
\X'tty: link #releases'\fI\%Versions & Releases\fP\X'tty: link').
\fI\%Versions & Releases\fP).
.UNINDENT
.INDENT 0.0
.TP
@@ -1489,7 +1489,7 @@ addresses to global discovery.
.TP
.B sendFullIndexOnUpgrade
Controls whether all index data is resent when an upgrade has happened,
equivalent to starting Syncthing with \X'tty: link #cmdoption-reset-deltas'\fI\%\-\-reset\-deltas\fP\X'tty: link'\&. This used
equivalent to starting Syncthing with \fI\%\-\-reset\-deltas\fP\&. This used
to be the default behavior in older versions, but is mainly useful as a
troubleshooting step and causes high database churn. The default is now
\fBfalse\fP\&.
@@ -1616,7 +1616,7 @@ including the appropriate \fI\%folder.device\fP element underneath.
Added in version 1.19.0.
.sp
Template for the \X'tty: link #ignoring-files'\fI\%ignore patterns\fP\X'tty: link' applied to new
Template for the \fI\%ignore patterns\fP applied to new
folders. These are copied to the \fB\&.stignore\fP file when a folder is
automatically accepted from a remote device. The GUI uses them to pre\-fill
the respective field when adding a new folder as well. In XML, each pattern
@@ -1688,12 +1688,12 @@ accidentally if you sync your home folder between devices. A common symptom
of syncing configuration files is two devices ending up with the same Device ID.
.sp
If you want to use Syncthing to backup your configuration files, it is recommended
that the files you are backing up are in a \X'tty: link #folder-sendonly'\fI\%Send Only Folder\fP\X'tty: link' to prevent other
that the files you are backing up are in a \fI\%Send Only Folder\fP to prevent other
devices from overwriting the per device configuration. The folder on the remote
device(s) should not be used as configuration for the remote devices.
.sp
If youd like to sync your home folder in non\-send only mode, you may add the
folder that stores the configuration files to the \X'tty: link #ignoring-files'\fI\%ignore list\fP\X'tty: link'\&.
folder that stores the configuration files to the \fI\%ignore list\fP\&.
If youd also like to backup your configuration files, add another folder in
send only mode for just the configuration folder.
.SH AUTHOR

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-DEVICE-IDS" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-DEVICE-IDS" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-device-ids \- Understanding Device IDs
.sp

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-EVENT-API" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-EVENT-API" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-event-api \- Event API
.SH DESCRIPTION
@@ -456,7 +456,7 @@ Added in version 0.11.12.
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
The \X'tty: link #statechanged'\fI\%StateChanged\fP\X'tty: link' event.
The \fI\%StateChanged\fP event.
.UNINDENT
.UNINDENT
.SS FolderPaused
@@ -716,7 +716,7 @@ Added in version 0.11.10: The \fBmetadata\fP action.
.SS ListenAddressesChanged
.sp
This event is emitted when a \X'tty: link #listen-addresses'\fI\%listen address\fP\X'tty: link' changes.
This event is emitted when a \fI\%listen address\fP changes.
.INDENT 0.0
.INDENT 3.5
.sp
@@ -981,7 +981,7 @@ Deprecated since version v1.1.2: The \fBfolderID\fP field is a legacy name kept
.SS RemoteDownloadProgress
.sp
This event is emitted when a \X'tty: link #download-progress'\fI\%DownloadProgress\fP\X'tty: link' message is
This event is emitted when a \fI\%DownloadProgress\fP message is
received. It returns a map \fBdata\fP of filenames with a count of
downloaded blocks. The files in questions are currently being
downloaded on the remote \fBdevice\fP and belong to \fBfolder\fP\&.

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-FAQ" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-FAQ" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-faq \- Frequently Asked Questions
.INDENT 0.0
@@ -164,7 +164,7 @@ Directory modification times (not preserved)
Hard links (followed, not preserved)
.IP \(bu 2
Windows junctions (synced as ordinary directories; require enabling in
\X'tty: link #config-option-folder.junctionsasdirs'\fI\%the configuration\fP\X'tty: link' on a per\-folder
\fI\%the configuration\fP on a per\-folder
basis)
.IP \(bu 2
Resource forks (not preserved)
@@ -176,7 +176,7 @@ Devices, FIFOs, and other specials (ignored)
Sparse file sparseness (will become sparse, when supported by the OS & filesystem)
.IP \(bu 2
Syncthing internal files and folders (e.g. \fB\&.stfolder\fP, \fB\&.stignore\fP,
\fB\&.stversions\fP, \X'tty: link #temporary-files'\fI\%temporary files\fP\X'tty: link', etc.)
\fB\&.stversions\fP, \fI\%temporary files\fP, etc.)
.UNINDENT
.SS Is synchronization fast?
.sp
@@ -191,7 +191,7 @@ manner. This means that renaming a file will not cause a retransmission of
that file. Additionally, appending data to existing files should be handled
efficiently as well.
.sp
\X'tty: link #temporary-files'\fI\%Temporary files\fP\X'tty: link' are used to store partial data
\fI\%Temporary files\fP are used to store partial data
downloaded from other devices. They are automatically removed whenever a file
transfer has been completed or after the configured amount of time which is set
in the configuration file (24 hours by default).
@@ -217,8 +217,16 @@ There are no plans by the current Syncthing team to officially support iOS in th
iOS has significant restrictions on background processing that make it very hard to
run Syncthing reliably and integrate it into the system.
.sp
However, there is a commercial packaging of Syncthing for iOS that attempts to work within these limitations. [2]
However, there is an open source app for iOS, incorporating Syncthing, that attempts to work within
these limitations. It provides a native UI and features for selective synchronization as well as
on\-demand access to files. Most Syncthing features are available, but the native UI is simplified
compared to the official client. [2]
.sp
There is also a commercial packaging of Syncthing. It provides access to all Syncthing functionalities
through the original UI. [3]
.IP [2] 5
\X'tty: link https://github.com/pixelspark/sushitrain'\fI\%https://github.com/pixelspark/sushitrain\fP\X'tty: link'
.IP [3] 5
\X'tty: link https://www.mobiussync.com'\fI\%https://www.mobiussync.com\fP\X'tty: link'
.SS Should I keep my device IDs secret?
.sp
@@ -236,7 +244,7 @@ oyster!)
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\X'tty: link #device-ids'\fI\%Understanding Device IDs\fP\X'tty: link'
\fI\%Understanding Device IDs\fP
.UNINDENT
.UNINDENT
.SH TROUBLESHOOTING
@@ -262,7 +270,7 @@ Devices” list on the right side of the GUI, double check that you see
.sp
If you are connected via a relay, this is because a direct connection could
not be established. Double check and follow the suggestions in
\X'tty: link #firewall-setup'\fI\%Firewall Setup\fP\X'tty: link' to enable direct connections.
\fI\%Firewall Setup\fP to enable direct connections.
.sp
Second, if one of the devices is a very low powered machine (a Raspberry Pi,
or a phone, or a NAS, or similar) you are likely constrained by the CPU on
@@ -295,8 +303,8 @@ causes a certain amount of extra CPU usage to calculate the summary data it
presents. Note however that once things are \fIin sync\fP CPU usage should be
negligible.
.sp
To minimize the impact of this, Syncthing attempts to \X'tty: link #config-option-options.setlowpriority'\fI\%lower the
process priority\fP\X'tty: link' when starting up.
To minimize the impact of this, Syncthing attempts to \fI\%lower the
process priority\fP when starting up.
.sp
To further limit the amount of CPU used when syncing and scanning, set the
environment variable \fBGOMAXPROCS\fP to the maximum number of CPU cores
@@ -328,7 +336,7 @@ protect against unauthorized access. Either:
.IP \(bu 2
Make sure the proxy sets a \fBHost\fP header containing \fBlocalhost\fP, or
.IP \(bu 2
Set \X'tty: link #config-option-gui.insecureskiphostcheck'\fI\%gui.insecureSkipHostcheck\fP\X'tty: link' in the advanced settings, or
Set \fI\%gui.insecureSkipHostcheck\fP in the advanced settings, or
.IP \(bu 2
Bind the GUI/API to a non\-localhost listen port.
.UNINDENT
@@ -338,8 +346,8 @@ In all cases, username/password authentication and HTTPS should be used.
.sp
This is almost always a result of bad RAM, storage device or other hardware.
When the index database is found to be corrupt Syncthing cannot operate and will
note this in the logs and exit. To overcome this delete the \X'tty: link #config-locations'\fI\%database
folder\fP\X'tty: link' inside Syncthings data directory and re\-start
note this in the logs and exit. To overcome this delete the \fI\%database
folder\fP inside Syncthings data directory and re\-start
Syncthing. It will then need to perform a full re\-hashing of all shared
folders. You should check your system in case the underlying cause is indeed
faulty hardware which may put the system at risk of further data loss.
@@ -374,7 +382,7 @@ up\-to\-date state with all the neighbours.
.SS Why does Syncthing connect to this unknown/suspicious address?
.sp
If you see outgoing connections to odd and unexpected addresses these are
most likely connections to \X'tty: link #relaying'\fI\%relay servers\fP\X'tty: link'\&. Relay servers
most likely connections to \fI\%relay servers\fP\&. Relay servers
are run by volunteers all over the world. They usually listen on ports 443 or
22067, though this is controlled by the user running it. You can compare the
address you are concerned about with \X'tty: link https://relays.syncthing.net'\fI\%the current list of active relays\fP <\fBhttps://relays.syncthing.net\fP>\X'tty: link'\&. Relays do not and can not see the data
@@ -420,7 +428,7 @@ Also see the \fI\%marker FAQ\fP for more information about the folder marker.
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\X'tty: link #conflict-handling'\fI\%Conflicting Changes\fP\X'tty: link'
\fI\%Conflicting Changes\fP
.UNINDENT
.UNINDENT
.SS How do I serve a folder from a read only filesystem?
@@ -682,7 +690,7 @@ echo 204800 | sudo tee /proc/sys/fs/inotify/max_user_watches
.SS How do I reset the GUI password?
.sp
If youve forgotten / lost the GUI password, you can reset it using the
\X'tty: link #cmdoption-gui-password'\fI\%\-\-gui\-password\fP\X'tty: link' (and possibly \X'tty: link #cmdoption-gui-user'\fI\%\-\-gui\-user\fP\X'tty: link') options to the
\fI\%\-\-gui\-password\fP (and possibly \fI\%\-\-gui\-user\fP) options to the
\fBsyncthing generate\fP subcommand. This should be done while Syncthing is not
running.
.INDENT 0.0
@@ -694,7 +702,7 @@ Stop Syncthing: \fBsyncthing cli operations shutdown\fP
Restart Syncthing as usual.
.UNINDENT
.sp
\fIAlternatively, in step 2\fP, you can manually delete the \X'tty: link #config-option-gui.user'\fI\%<user>\fP\X'tty: link' and \X'tty: link #config-option-gui.password'\fI\%<password>\fP\X'tty: link' XML tags from the
\fIAlternatively, in step 2\fP, you can manually delete the \fI\%<user>\fP and \fI\%<password>\fP XML tags from the
\fB<gui>\fP block in file \fBconfig.xml\fP\&. The location of the file depends on the
OS and is described in the \fI\%configuration documentation\fP\&.
.sp

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-GLOBALDISCO" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-GLOBALDISCO" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-globaldisco \- Global Discovery Protocol v3
.SH ANNOUNCEMENTS

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-LOCALDISCO" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-LOCALDISCO" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-localdisco \- Local Discovery Protocol v4
.SH MODE OF OPERATION
@@ -55,7 +55,7 @@ previously unknown device is discovered or a device has restarted (see the
.SH DEVICE ID
.sp
The device ID is the SHA\-256 (32 bytes) of the device X.509 certificate. See
\X'tty: link #device-ids'\fI\%Understanding Device IDs\fP\X'tty: link' in the Syncthing documentation.
\fI\%Understanding Device IDs\fP in the Syncthing documentation.
.SH ANNOUNCEMENT PACKET
.sp
The Announcement packet has the following structure:

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-NETWORKING" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-NETWORKING" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-networking \- Firewall Setup
.SH ROUTER SETUP
@@ -55,7 +55,7 @@ Communication in Syncthing works both ways. Therefore if you set up port
forwards for one device, other devices will be able to connect to it even when
they are behind a NAT network or firewall.
.sp
In the absence of port forwarding, \X'tty: link #relaying'\fI\%Relaying\fP\X'tty: link' may work well enough to get
In the absence of port forwarding, \fI\%Relaying\fP may work well enough to get
devices connected and synced, but will perform poorly in comparison to a
direct connection.
.SS Local Discovery
@@ -159,7 +159,7 @@ port 8384 on the target machine. This still works even if Syncthing is bound to
listen on localhost only.
.SH VIA A PROXY
.sp
Syncthing can use a SOCKS5 proxy for outbound connections. Please see \X'tty: link #proxying'\fI\%Using Proxies\fP\X'tty: link'\&.
Syncthing can use a SOCKS5 proxy for outbound connections. Please see \fI\%Using Proxies\fP\&.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT

View File

@@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-RELAY" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-RELAY" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-relay \- Relay Protocol v1
.SH WHAT IS A RELAY?

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-REST-API" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-REST-API" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-rest-api \- REST API
.sp
@@ -102,7 +102,7 @@ $ curl \-H \(dqX\-API\-Key: yourkey\(dq localhost:8384/rest/system/browse?curren
.UNINDENT
.SS GET /rest/system/config (DEPRECATED)
.sp
Deprecated since version v1.12.0: This endpoint still works as before but is deprecated. Use \X'tty: link #rest-config'\fI\%/rest/config\fP\X'tty: link'
Deprecated since version v1.12.0: This endpoint still works as before but is deprecated. Use \fI\%/rest/config\fP
instead.
.sp
@@ -371,7 +371,7 @@ Returns the current configuration.
.SS GET /rest/system/config/insync (DEPRECATED)
.sp
Deprecated since version v1.12.0: This endpoint still works as before but is deprecated. Use
\X'tty: link #rest-config-insync'\fI\%/rest/config/restart\-required\fP\X'tty: link' instead.
\fI\%/rest/config/restart\-required\fP instead.
.sp
Returns whether the config is in sync, i.e. whether the running
@@ -395,7 +395,7 @@ instead.
Post the full contents of the configuration, in the same format as returned by
the corresponding GET request. When posting the configuration succeeds,
the posted configuration is immediately applied, except for changes that require a restart. Query
\X'tty: link #rest-config-insync'\fI\%/rest/config/restart\-required\fP\X'tty: link' to check if a restart is required.
\fI\%/rest/config/restart\-required\fP to check if a restart is required.
.sp
This endpoint is the main point to control Syncthing, even if the change only
concerns a very small part of the config: The usual workflow is to get the
@@ -682,7 +682,7 @@ curl \-X POST \-H \(dqX\-API\-Key: abc123\(dq http://localhost:8384/rest/system/
.UNINDENT
.UNINDENT
.sp
\fBCaution\fP: See \X'tty: link #cmdoption-reset-database'\fI\%\-\-reset\-database\fP\X'tty: link' for \fB\&.stfolder\fP creation
\fBCaution\fP: See \fI\%\-\-reset\-database\fP for \fB\&.stfolder\fP creation
side\-effect and caution regarding mountpoints.
.SS POST /rest/system/restart
.sp
@@ -902,7 +902,7 @@ patterns to be used by default on folders, as an array of single\-line strings.
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
The \X'tty: link #config-option-gui.password'\fI\%gui.password\fP\X'tty: link' configuration option has special handling to
The \fI\%gui.password\fP configuration option has special handling to
accept already hashed passwords. Any valid bcrypt hash is stored verbatim,
while a plaintext password is first hashed.
.UNINDENT
@@ -1035,7 +1035,7 @@ Added in version 0.14.53.
Takes one mandatory parameter, \fBfolder\fP, and returns the list of errors
encountered during scanning or pulling.
.sp
The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&.
The results can be paginated using the \fI\%common pagination parameters\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
@@ -1418,7 +1418,7 @@ were changed locally in a receive\-only folder. Thus they differ from the globa
state and could be reverted by pulling from remote devices again, see
\fI\%POST /rest/db/revert\fP\&.
.sp
The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&.
The results can be paginated using the \fI\%common pagination parameters\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
@@ -1455,7 +1455,7 @@ Use sparingly.
Takes one mandatory parameter, \fBfolder\fP, and returns lists of files which are
needed by this device in order for it to become in sync.
.sp
The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&. Pagination happens, across the union of all needed files,
The results can be paginated using the \fI\%common pagination parameters\fP\&. Pagination happens, across the union of all needed files,
that is \- across all 3 sections of the response. For example, given the current
need state is as follows:
.INDENT 0.0
@@ -1559,7 +1559,7 @@ Takes the mandatory parameters \fBfolder\fP and \fBdevice\fP, and returns the li
of files which are needed by that remote device in order for it to become in
sync with the shared folder.
.sp
The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&.
The results can be paginated using the \fI\%common pagination parameters\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
@@ -1730,7 +1730,7 @@ To receive events, perform a HTTP GET of \fB/rest/events\fP\&.
.sp
To filter the event list, in effect creating a specific subscription for only
the desired event types, add a parameter \fBevents=EventTypeA,EventTypeB,...\fP
where the event types are any of the \X'tty: link #event-types'\fI\%Event Types\fP\X'tty: link'\&. If no filter is
where the event types are any of the \fI\%Event Types\fP\&. If no filter is
specified, all events \fIexcept\fP \fI\%LocalChangeDetected\fP and
\fI\%RemoteChangeDetected\fP are included.
.sp
@@ -1908,7 +1908,7 @@ Returns the data sent in the anonymous usage report.
.SH DEBUG ENDPOINTS
.SS Debug Endpoints
.sp
These endpoints require the \X'tty: link #config-option-gui.debugging'\fI\%gui.debugging\fP\X'tty: link' configuration option to
These endpoints require the \fI\%gui.debugging\fP configuration option to
be enabled and yield an access denied error code otherwise.
.SS GET /rest/debug/peerCompletion
.sp

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-SECURITY" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-SECURITY" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-security \- Security Principles
.sp

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-STIGNORE" "5" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-STIGNORE" "5" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-stignore \- Prevent files from being synchronized to other nodes
.SH SYNOPSIS
@@ -124,7 +124,7 @@ more general patterns that follow.
.INDENT 3.5
Negated patterns that can match items below the folder root will cause
Syncthing to traverse otherwise ignored directories. If the
\X'tty: link #scanning'\fI\%watcher\fP\X'tty: link' is enabled, those directories will also be
\fI\%watcher\fP is enabled, those directories will also be
watched. Directories ignored before the first negated pattern can
however be safely skipped, since the first matching pattern wins. For
example:

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING-VERSIONING" "7" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING-VERSIONING" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing-versioning \- Keep automatic backups of deleted files by other nodes
.sp
@@ -285,7 +285,7 @@ files permanently.
.SH CONFIGURATION PARAMETER REFERENCE
.sp
The versioning settings are grouped into their own section of each folder in the
\X'tty: link #config-option-folder.versioning'\fI\%configuration file\fP\X'tty: link'\&. The following shows an
\fI\%configuration file\fP\&. The following shows an
example of such a section in the XML:
.INDENT 0.0
.INDENT 3.5
@@ -326,7 +326,7 @@ in the \fI\%params\fP element.
.B versioning.fsType
The internal file system implementation used to access this versions folder.
Only applies if \fI\%fsPath\fP is also set non\-empty,
otherwise the \X'tty: link #config-option-folder.filesystemtype'\fI\%filesystemType\fP\X'tty: link' from the folder element is used
otherwise the \fI\%filesystemType\fP from the folder element is used
instead. Refer to that option description for possible values. Ignored for
the \fBexternal\fP versioning strategy.
.sp

View File

@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SYNCTHING" "1" "Jun 29, 2024" "v1.27.7" "Syncthing"
.TH "SYNCTHING" "1" "Aug 15, 2024" "v1.27.10" "Syncthing"
.SH NAME
syncthing \- Syncthing
.SH SYNOPSIS
@@ -367,7 +367,7 @@ it is validated and updated to the latest configuration schema, including adding
default values for any new options.
.sp
The \fBdecrypt\fP subcommand is used in conjunction with untrusted (encrypted)
devices, see the relevant section on \X'tty: link #untrusted-decrypt'\fI\%decryption\fP\X'tty: link' for
devices, see the relevant section on \fI\%decryption\fP for
details. It does not depend on Syncthing to be running, but works on offline
data.
.sp
@@ -555,11 +555,6 @@ passing \fI\%\-\-gui\-apikey\fP\&.
Directory to load GUI assets from. Overrides compiled in assets. Useful for
developing webgui, commonly use \fBSTGUIASSETS=gui bin/syncthing\fP\&.
.TP
.B STHASHING
Specify which hashing package to use. Defaults to automatic based on
performance. Specify “minio” (compatibility) or “standard” for the default
Go implementation.
.TP
.B STHEAPPROFILE
Write heap profiles to \fBheap\-$pid\-$timestamp.pprof\fP each time heap usage
increases.

View File

@@ -11,6 +11,7 @@ package integration
import (
cr "crypto/rand"
"crypto/sha256"
"errors"
"fmt"
"io"
@@ -27,7 +28,6 @@ import (
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/rc"
"github.com/syncthing/syncthing/lib/sha256"
)
func init() {