Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a3c340ece9 | |||
| 27bba2c0c2 | |||
| 9ef37e1485 | |||
| 7517d18fbb | |||
| 42d0fee536 | |||
| 2ca9d3b5c5 | |||
| 9cde068f2a | |||
| 1243083831 | |||
| 356c5055ad | |||
| 19693734a3 | |||
| 17e60b9e0c | |||
| ac22b2d00a | |||
| de0b4270df | |||
| e738af7c56 |
@@ -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>
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Executable → Regular
Executable → Regular
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
Executable → Regular
Executable → Regular
@@ -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
|
||||
)
|
||||
|
||||
|
||||
@@ -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=
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"A device with that ID is already added.": "Zařízení s takovým identifikátorem už 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.",
|
||||
|
||||
@@ -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:",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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ú."
|
||||
}
|
||||
@@ -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}})."
|
||||
}
|
||||
|
||||
@@ -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": "О программе",
|
||||
|
||||
@@ -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).": "禁用比较和同步文件权限。 适用于不存在或自定义权限的系统(例如FAT,exFAT,Synology,Android)。",
|
||||
"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).": "禁用比较和同步文件权限。 适用于不存在或自定义权限的系统(例如 FAT、exFAT、Synology、Android)。",
|
||||
"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}} 可能会重新引入此设备。"
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
"Out of Sync Items": "未同步項目",
|
||||
"Outgoing Rate Limit (KiB/s)": "連出速率限制 (KiB/s)",
|
||||
"Override": "覆蓋",
|
||||
"Override Changes": "覆蓋變動",
|
||||
"Override Changes": "覆蓋變更",
|
||||
"Ownership": "所有權",
|
||||
"Password": "密碼",
|
||||
"Path": "路徑",
|
||||
|
||||
@@ -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","fil":"Filipino","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)"}
|
||||
|
||||
@@ -1 +1 @@
|
||||
var validLangs = ["ar","bg","ca","ca@valencia","cs","da","de","el","en","en-GB","es","eu","fil","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"]
|
||||
|
||||
@@ -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 © 2014 Jakob Borg.</li>
|
||||
<li><a href="https://github.com/chmduquesne/rollinghash">chmduquesne/rollinghash</a>, Copyright © 2015 Christophe-Marie Duquesne.</li>
|
||||
<li><a href="https://github.com/d4l3k/messagediff">d4l3k/messagediff</a>, Copyright © 2015 Tristan Rice.</li>
|
||||
<li><a href="https://github.com/flynn-archive/go-shlex">flynn-archive/go-shlex</a>, Copyright © 2012 Google Inc.</li>
|
||||
<li><a href="https://github.com/gobwas/glob">gobwas/glob</a>, Copyright © 2016 Sergey Kamardin.</li>
|
||||
<li><a href="https://github.com/gogo/protobuf">gogo/protobuf</a>, Copyright © 2013 The GoGo Authors.</li>
|
||||
<li><a href="https://github.com/golang/groupcache">golang/groupcache</a>, Copyright © 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 © 2011-2013, 'pq' Contributors, portions Copyright © 2011 Blake Mizerany.</li>
|
||||
<li><a href="https://github.com/mattn/go-isatty">mattn/go-isatty</a>, Copyright © Yasuhiro MATSUMOTO.</li>
|
||||
<li><a href="https://github.com/matttproud/golang_protobuf_extensions">matttproud/golang_protobuf_extensions</a>, Copyright © 2012 Matt T. Proud.</li>
|
||||
<li><a href="https://github.com/minio/sha256-simd">minio/sha256-simd</a>, Copyright © 2016-2017 Minio, Inc.</li>
|
||||
<li><a href="https://github.com/oschwald/geoip2-golang">oschwald/geoip2-golang</a>, Copyright © 2015, Gregory J. Oschwald.</li>
|
||||
<li><a href="https://github.com/oschwald/maxminddb-golang">oschwald/maxminddb-golang</a>, Copyright © 2015, Gregory J. Oschwald.</li>
|
||||
<li><a href="https://github.com/petermattis/goid">petermattis/goid</a>, Copyright © 2015-2016 Peter Mattis.</li>
|
||||
|
||||
Executable → Regular
@@ -40,7 +40,6 @@ var (
|
||||
|
||||
envTags = []string{
|
||||
"STGUIASSETS",
|
||||
"STHASHING",
|
||||
"STNORESTART",
|
||||
"STNOUPGRADE",
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
+1
-1
@@ -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"
|
||||
|
||||
+1
-1
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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 (
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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{}{}
|
||||
|
||||
@@ -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()
|
||||
|
||||
+5
-3
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -4,13 +4,12 @@ package protocol
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/sha256"
|
||||
"encoding/base32"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/syncthing/syncthing/lib/sha256"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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" "Jul 18, 2024" "v1.27.7" "Syncthing"
|
||||
.TH "STDISCOSRV" "1" "Aug 15, 2024" "v1.27.10" "Syncthing"
|
||||
.SH NAME
|
||||
stdiscosrv \- Syncthing Discovery Server
|
||||
.SH SYNOPSIS
|
||||
|
||||
+1
-1
@@ -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" "Jul 18, 2024" "v1.27.7" "Syncthing"
|
||||
.TH "STRELAYSRV" "1" "Aug 15, 2024" "v1.27.10" "Syncthing"
|
||||
.SH NAME
|
||||
strelaysrv \- Syncthing Relay Server
|
||||
.SH SYNOPSIS
|
||||
|
||||
+1
-1
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 2024" "v1.27.7" "Syncthing"
|
||||
.TH "SYNCTHING-CONFIG" "5" "Aug 15, 2024" "v1.27.10" "Syncthing"
|
||||
.SH NAME
|
||||
syncthing-config \- Syncthing Configuration
|
||||
.SH SYNOPSIS
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
+10
-2
@@ -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" "Jul 18, 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
|
||||
@@ -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
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 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?
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 2024" "v1.27.7" "Syncthing"
|
||||
.TH "SYNCTHING-SECURITY" "7" "Aug 15, 2024" "v1.27.10" "Syncthing"
|
||||
.SH NAME
|
||||
syncthing-security \- Security Principles
|
||||
.sp
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
@@ -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" "Jul 18, 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
|
||||
|
||||
+1
-6
@@ -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" "Jul 18, 2024" "v1.27.7" "Syncthing"
|
||||
.TH "SYNCTHING" "1" "Aug 15, 2024" "v1.27.10" "Syncthing"
|
||||
.SH NAME
|
||||
syncthing \- Syncthing
|
||||
.SH SYNOPSIS
|
||||
@@ -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.
|
||||
|
||||
+1
-1
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user