Compare commits

...

213 Commits

Author SHA1 Message Date
Simon Frei
c7221b035d gui: Round down in devices completion (consistent with folders)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4325
2017-08-24 04:26:12 +00:00
Audrius Butkevicius
a69ba18f62 lib/model: Some platforms do not support usage checks (fixes #4321)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4322
2017-08-22 18:13:58 +00:00
Jakob Borg
b31611a8d1 gui, man: Update docs & translations
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4320
2017-08-22 09:00:52 +00:00
Simon Frei
0ca0e3e9bd lib/model: GetIgnores: Don't return error for no .stignore file
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4311
2017-08-22 06:48:25 +00:00
Audrius Butkevicius
0a96a1150b lib/model, lib/ignores: Properly handle out of folder ignores and free space checks (fixes #4313, fixes #4314)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4318
2017-08-22 06:45:00 +00:00
Audrius Butkevicius
b8c249cddc lib/model: Move stale scan check info finisher (ref #4305, fix #3742)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4317
2017-08-22 06:42:09 +00:00
Audrius Butkevicius
e8ba6d4771 lib/upnp: Fix build
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4316
2017-08-21 11:41:40 +00:00
Audrius Butkevicius
606fce09ca lib/upnp: Disable confusing messages
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4312
2017-08-21 10:03:25 +00:00
Audrius Butkevicius
3d8b4a42b7 all: Convert folders to use filesystem abstraction
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4228
2017-08-19 14:36:56 +00:00
Simon Frei
ab8c2fb5c7 lib/model: Fix race in GetIgnores (fixes #4300)
In addition this function returned an error when .stignore file was not
present, which is perfectly valid. Also removed inconsistent nil check in
ignores.go (only relevant for tests) and adjusted walk.go to do what it says
in comments (check if Matcher is nil) to prevent nil deref in tests.

Originally reported in:
https://forum.syncthing.net/t/reason-for-panic-maybe-too-little-ram/10346

Regression from #3996

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4301
2017-08-12 17:10:43 +00:00
Simon Frei
77578e8aac gui: Don't set default path editing existing folders without label (fixes #4297)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4298
LGTM: calmh
2017-08-10 15:31:25 +00:00
Jakob Borg
1fc2ab444b lib/model: Remove ineffective symlink recovery attempt 2017-08-08 15:30:28 +02:00
Jakob Borg
fa5c890ff6 lib/versioner: Clean the versions dir of symlinks, not the full folder
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4289
2017-08-08 13:13:08 +00:00
Jakob Borg
a3c17f8f81 lib/model: Disable symlink attack test on Windows 2017-08-08 08:05:24 +02:00
Jakob Borg
f1f21bf220 lib/model, lib/versioner: Prevent symlink attack via versioning (fixes #4286)
Prior to this, the following is possible:

- Create a symlink "foo -> /somewhere", it gets synced
- Delete "foo", it gets versioned
- Create "foo/bar", it gets synced
- Delete "foo/bar", it gets versioned in "/somewhere/bar"

With this change, versioners should never version symlinks.
2017-08-07 07:57:10 +02:00
MaximAL
54155cb42d gui: Add title attributes for shared devices/folders
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4266
LGTM: AudriusButkevicius
2017-07-27 17:31:14 +00:00
Jakob Borg
414c58174b build: Move -installsuffix behind an explicit option (fixes #4272) 2017-07-27 12:55:07 +02:00
Audrius Butkevicius
94acc20dd6 cmd/strelaysrv: Fix a few connection and routine leaks (fixes #4245)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4273
2017-07-26 19:18:00 +00:00
NoLooseEnds
8e9119eedf assets: Add Mac folder icon
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4238
2017-07-20 13:23:54 +00:00
Simon Frei
a04b92332f gui, lib/config: Add default path for new folders (fixes #2157)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4192
2017-07-20 13:16:54 +00:00
HairyFotr
0ad10b0fee all: Typos
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4263
2017-07-20 13:10:46 +00:00
Ross Smith II
0ca2ed7ad7 build: Use maximum compression when archiving
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4229
2017-07-17 13:20:13 +00:00
Jakob Borg
fa4226cae4 authors: Add rasa 2017-07-17 15:06:47 +02:00
Jakob Borg
cc63236a2e build: Use Go's default GOPATH if it's valid
As of Go 1.8 it's valid to not have a GOPATH set. We ask the Go tool
what the GOPATH seems to be, and if we find ourselves (or a valid copy
of ourselves...) in that location we do not fiddle with the GOPATH.
2017-07-16 21:39:29 +01:00
Jakob Borg
6623657ef3 build: The default build step already includes linting 2017-07-15 17:06:22 +02:00
Jose Manuel Delicado
4405117bea gui: HTML accessibility updates
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4258
LGTM: calmh
2017-07-15 09:54:37 +00:00
Jakob Borg
e371800878 authors: Fixup jmdaweb 2017-07-14 07:53:18 +02:00
Jakob Borg
7a47646534 authors: Add jmdaweb 2017-07-14 07:49:08 +02:00
Jakob Borg
d475ad7ce1 gui, man: Update docs & translations 2017-07-13 08:55:12 +02:00
Jakob Borg
7c8418f493 build: Support builds outside of GOPATH
This adds support for building with the source placed anywhere and no
GOPATH set. The build script handles this by creating a temporary GOPATH
in the system temp dir (or another specified location) and mirroring the
source there before building. The resulting binaries etc still end up in
the same place as usual, meaning at least the "build", "install", "tar",
"zip", "deb", "snap", "test", "vet", "lint", "metalint" and "clean"
commands work without a GOPATH. To this end these commands internally
use fully qualified package paths like
"github.com/syncthing/syncthing/cmd/..." instead of "./cmd/..." like
before.

There is a new command "gopath" that prepares and echoes the directory
of the temporary GOPATH. This can be used to run other non-build go
commands:

export GOPATH=$(go run build.go gopath)  // GOPATH is now set
go test -v -race github.com/syncthing/syncthing/cmd/...

There is a new option "-no-build-gopath" that prevents the
check-and-copy step, instead assuming the temporary GOPATH is already
created and up to date. This is a performance optimization for build
servers running multiple builds commands in sequence:

go run build.go gopath // creates a temporary GOPATH
go run build.go -no-build-gopath -goos=... tar // reuses GOPATH
go run build.go -no-build-gopath -goos=... tar // reuses GOPATH

The temporary GOPATH is placed in the system temporary directory
(os.TempDir()) unless overridden by the STTMPDIR variable. It is named
after the hash of the current directory where build.go is run. The
reason for this is that the name should be unique to a source checkout
without risk for conflict, but still persistent between runs of
build.go.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4253
LGTM: AudriusButkevicius, imsodin
2017-07-11 07:57:58 +00:00
Jakob Borg
200a7fc844 meta: Move metadata checks into meta directory, make them tests
This moves a few things from script/ to a new directory meta/, and makes
them real Go tests. These are the authors, copyright, metalint and gofmt
checks. That means that they can now be run by

go test -v ./meta

and optionally filtered by the usual -run thing to go test. Also -short
will cut down on the metalint stuff and exclude the authors check (which
is slow because it runs git lots of times).

Mainly this makes everything easier on things like build servers where
we can now just run tests instead of do a bunch of scripting.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4252
2017-07-07 20:43:26 +00:00
Jakob Borg
5a38e0ba3f script: Trivial lint error in changelog.go 2017-07-07 21:56:12 +02:00
Jakob Borg
c77490c32d authors: Fixup author email mistakes 2017-07-07 21:42:50 +02:00
Simon Frei
b75c9f2bbb lib/ignores: Don't add text from includes to lines (fixes #4249)
Otherwise all the lines from includes will be shown in the web UI instead of
just the #include ... line. This problem was introduced in #3996.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4248
LGTM: calmh
2017-07-06 11:44:11 +00:00
Siyuan Liu
322bedbb04 gui: Show remaining bytes in remote device panel (fixes #4227)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4246
LGTM: AudriusButkevicius, calmh
2017-07-05 09:19:29 +00:00
Jakob Borg
487655b365 gui, man: Update docs & translations 2017-07-05 07:45:22 +02:00
Siyuan Liu
03c678a810 lib/versioner: Interpret versions path relative to folder path (fixes #4188)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4243
2017-07-03 14:50:51 +00:00
Jakob Borg
b79f8aceb8 authors: Fixup liusy182 2017-07-03 16:40:02 +02:00
Jakob Borg
92e8c4303a authors: Add liusy182 2017-07-03 16:33:41 +02:00
Jakob Borg
e735a3a25c build: Builds from "release" branch are not branch builds 2017-06-30 14:02:16 +02:00
Simon Frei
8d13e01342 gui: Fix discovered devices list (follow-up to #4186)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4239
2017-06-29 13:47:42 +00:00
Jakob Borg
34f8cc8620 gui: Rename assets/lang/README-FIRST to README for greater visibility
README is rendered in the GitHub web UI
2017-06-28 18:58:41 +02:00
Jakob Borg
add10c98fa lib/db: Fix test for Go 1.9's smarter time.Time values 2017-06-28 14:36:04 +02:00
Jakob Borg
6503326073 gui, man: Update docs & translations 2017-06-28 07:45:20 +02:00
Jakob Borg
db1dc9985a lib/upgrade: 0.x to 1.0 is a minor upgrade
This removes the special handling of minor versions as major when the
actual major is zero, and adds the special case that upgrades from 0.x
to 1.x are considered minor. 0.x to 2.x or 1.x to 2.x etc are still
considered major.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4226
2017-06-25 14:17:43 +00:00
Jakob Borg
3641c97667 gui, man: Update docs & translations 2017-06-21 07:45:20 +02:00
Jakob Borg
8f214fe4a9 lib/config: Ignored folders that are added to the config should not remain ignored (fixes #4219)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4220
2017-06-17 18:40:28 +00:00
Simon Frei
98cfc204ca gui: Add dropdown menu to choose discovered devices to device modal (fixes #4157)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4186
LGTM: AudriusButkevicius, calmh
2017-06-16 15:27:09 +00:00
Jakob Borg
d0061c172c gui, man: Update docs & translations 2017-06-14 07:45:21 +02:00
Jakob Borg
93a04158fd vendor: Update github.com/gogo/protobuf, keeping all files
gvt fetch -a, because we need the protobuf files etc for regeneration
2017-06-14 05:24:09 +02:00
Jakob Borg
d862e79133 gui: Fix minor breakage from 9c417571 2017-06-12 08:54:08 +02:00
Jakob Borg
68c1a0b9b4 lib/ignore, lib/model: Use an interface to detect file changes, improving tests
This solves the erratic test failures on model.TestIgnores by ensuring
that the ignore patterns are reloaded even in the face of unchanged
timestamps.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4208
2017-06-11 10:27:12 +00:00
Jakob Borg
2a38d2a3d2 build: Build Debian packages for non-syncthing targets (fixes #4193)
Things like the package name "syncthing" was hardcoded, which is not
awesome. With this in place we can build debs called syncthing-discosrv,
syncthing-relaysrv and syncthing-relaypoolsrv. I don't actually intend
to build and publish the relaypoolsrv, but the others can be good. Using
the "syncthing-" prefix to make the obvious "apt-cache search syncthing"
actually show them etc.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4206
LGTM: AudriusButkevicius, calmh
2017-06-09 08:53:45 +00:00
Simon Frei
9c4175715a gui: Reset ignore input field when adding remote share (fixes #4203)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4204
LGTM: AudriusButkevicius, calmh
2017-06-09 05:41:19 +00:00
Audrius Butkevicius
d637148cca cmd/strelaypoolsrv: Show popup on row hover
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4201
2017-06-07 22:06:00 +00:00
snugghash
3395992abd gui: Make icons and directory information in local device summary consistent with folders (fixes #4100)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4200
2017-06-07 10:34:45 +00:00
Jakob Borg
7a15fef3b8 authors, nicks: Add snugghash 2017-06-07 12:23:16 +02:00
Audrius Butkevicius
9667a0a618 lib/connections: Fix race (fixes #4177) 2017-06-07 10:17:01 +02:00
Jakob Borg
7346113742 gui, man: Update docs & translations 2017-06-07 07:45:21 +02:00
Lars K.W. Gohlke
3f1fa04725 build, jenkins: Move test coverage stuff to jenkins/
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4178
2017-06-02 07:18:59 +00:00
Simon Frei
719c313b23 cmd/syncthing, lib/logger: Set debug flags on SetDebug for tests
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4187
2017-06-02 07:04:06 +00:00
Jakob Borg
3d11efc9e0 gui, man: Update docs & translations 2017-06-01 12:25:17 +02:00
Jakob Borg
3dca7cd694 build: Update prerelease command 2017-06-01 12:09:20 +02:00
Jakob Borg
803da92ca9 cmd/syncthing: Start CPU usage monitoring not from init (fixes #4183)
Starting stuff from init() is an antipattern, and the innerProcess
variable isn't 100% reliable. We should sort out the other uses of it as
well in due time.

Also removing the hack on innerProcess as I happened to see it and the
affected versions are now <1% users.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4185
2017-05-31 18:14:04 +00:00
nrm21
b49bbe82dd gui, lib/config, lib/model: Add ability to ignore folders offered by other nodes (fixes #3993)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4179
LGTM: AudriusButkevicius, calmh
2017-05-31 18:04:00 +00:00
Jakob Borg
3959eb26fb lib/model: Events should have "folder" key, not "folderID" 2017-05-30 08:57:18 +02:00
nrm21
1235cead35 lib/model: Add name of latest modifying device to conflict file (fixes #3524)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4161
LGTM: AudriusButkevicius, calmh
2017-05-25 10:26:41 +00:00
Simon Frei
dd6bb6d5fd gui: Reset warnings about nested folder roots (fixes #3433)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4173
2017-05-23 19:54:56 +00:00
Audrius Butkevicius
91d37f35bc lib/model: Use up to date device name, do not provide name to unknown devices (fixes #4164)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4168
2017-05-22 19:58:33 +00:00
Audrius Butkevicius
51518490c6 lib/connections: Fix KCP from locking up the service (fixes #4072) 2017-05-21 22:16:21 +02:00
Audrius Butkevicius
2c10beed0b gui: Add (?d) and (?i) to ignores guide 2017-05-21 22:16:21 +02:00
Jakob Borg
8f3f787a34 gui, man: Update docs & translations 2017-05-18 07:47:51 +02:00
Darshil Chanpura
3522d451df gui: Added a CSS rule for out of sync items modal
Removed text decoration on hover which was shown while hovering on span with eject icon.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4135
2017-05-16 08:56:54 +00:00
Jakob Borg
cf3114b56d authors: Amend dtchanpura 2017-05-16 10:49:48 +02:00
Jakob Borg
3d95135638 authors: Add dtchanpura 2017-05-16 10:47:29 +02:00
Jakob Borg
4db662e576 gui: Ensure failed items folder path contains separator (fixes #4143)
Windows specific, due to how we handle folder paths.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4149
2017-05-15 06:32:16 +00:00
Jakob Borg
1d15b8be9b cmd/syncthing: Warn when running as a super user (fixes #4123)
UID 0 on Unixes, SYSTEM SID on Windows.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4148
2017-05-15 05:42:21 +00:00
Jakob Borg
d25b15263a cmd/syncthing: Process handle should be closed 2017-05-14 18:06:27 +02:00
Wulf Weich
7931d956f7 gui: fix path breaking out of global changes modal (fixes #3895)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4146
2017-05-13 10:42:37 +00:00
Elliot Huffman
c9afabf09f etc: Update systemd docs URL
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4145
2017-05-13 08:01:53 +00:00
Jakob Borg
c262f48bfe Merge branch 'release'
* release:
  cmd/syncthing: Fix CPU usage reporting (tick time)
2017-05-06 17:37:16 +02:00
Jakob Borg
8c108b4d20 cmd/syncthing: Fix CPU usage reporting (tick time) 2017-05-06 17:36:12 +02:00
Jakob Borg
ec137c9522 cmd/syncthing: Fix CPU usage reporting (tick time) 2017-05-06 17:35:07 +02:00
Jakob Borg
b17d7d8126 Merge branch 'release'
* release:
  cmd/syncthing: Report correct CPU usage on Windows (fixes #4133)
2017-05-05 16:20:35 +02:00
Jakob Borg
43569d8d36 cmd/syncthing: Report correct CPU usage on Windows (fixes #4133) 2017-05-05 16:16:43 +02:00
Jakob Borg
c4b527e5e9 cmd/syncthing: Report correct CPU usage on Windows (fixes #4133) 2017-05-05 16:12:59 +02:00
Jakob Borg
6386d079b0 gui: Don't reload concurrently with saving config when changing theme (fixes #4127) 2017-05-05 16:12:59 +02:00
Ben S
d2699a20fc gui: Display global changes timestamps in 24h format
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4130
2017-05-04 10:18:47 +00:00
Simon Frei
0b854dff9d lib/ignore: Don't match root (".")
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4122
2017-05-01 16:58:08 +00:00
Simon Frei
9de6cdddfd script: Ignore units and allow translated strings as translate-values
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4120
2017-04-29 15:48:00 +00:00
Jakob Borg
5045842f4f lib/config: Don't XML serialize deprecated minDiskFreePct 2017-04-27 14:46:19 +09:00
Jakob Borg
e0405de5bf lib/protocol: More descriptive errors on device ID parse failures 2017-04-27 14:45:35 +09:00
Jakob Borg
d6fbfc3545 lib/fs, lib/model, lib/scanner: Make scans cancellable (fixes #3965)
The folder already knew how to stop properly, but the fs.Walk() didn't
and can potentially take a very long time. This adds context support to
Walk and the underlying scanning stuff, and passes in an appropriate
context from above. The stop channel in model.folder is replaced with a
context for this purpose.

To test I added an infiniteFS that represents a large amount of data
(not actually infinite, but close) and verify that walking it is
properly stopped. For that to be implemented smoothly I moved out the
Walk function to it's own type, as typically the implementer of a new
filesystem type might not need or want to reimplement Walk.

It's somewhat tricky to test that this actually works properly on the
actual sendReceiveFolder and so on, as those are started from inside the
model and the filesystem isn't easily pluggable etc. Instead I've tested
that part manually by adding a huge folder and verifying that pause,
resume and reconfig do the right things by looking at debug output.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4117
2017-04-26 00:15:23 +00:00
Jakob Borg
bdaef44765 gui, man: Update docs & translations 2017-04-26 09:13:12 +09:00
Jakob Borg
488444354b lib/db: Don't panic
So, when first implementing the database layer I added panics on every
unexpected error condition mostly to be sure to flush out bugs and
inconsistencies. Then it became sort of standard, and we don't seem to
have many bugs here any more so the panics are usually caused by things
like checksum errors on read. But it's not an optimal user experience to
crash all the time.

Here I've weeded out most of the panics, while retaining a few "can't
happen" ones like errors on marshalling and write that we really can't
recover from.

For the rest, I'm mostly treating any read error as "entry didn't
exist". This should mean we'll rescan the file and correct the info (if
scanning) or treat it as a new file and do conflict handling (when
pulling). In some cases things like our global stats may be slightly
incorrect until a restart, if a database entry goes suddenly missing
during runtime.

All in all, I think this makes us a bit more robust and friendly without
introducing too many risks for the user. If the database is truly toast,
probably many other things on the system will be toast as well...

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4118
2017-04-25 22:52:37 +00:00
Jakob Borg
26654df48c gui: Restrict GUI listening ports to >1024, add help (fixes #4020)
This adds a pattern validator to the GUI listen port field that checks
for port numbers 1024 and above. Also adds a help link pointing to the
(new) page talking about GUI listen port numbers. That page has
information on how to work around the restriction, in general terms.

Also changes the header from "GUI Listen Addresses" to the singular
version, because we only support one listen address today.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4116
2017-04-24 07:19:28 +00:00
Jakob Borg
7f5e236dd7 gui: Wait for config commit before setting ignores (ref #4095)
Given the saveConfig() is async, it might not have happened before we
try to save the ignores and unpause. Likewise must wait for saving
ignores before unpausing or the scan might start before ignores are on
disk.

Javsacript <3
2017-04-24 08:57:07 +09:00
Simon Frei
914b09fd1f lib/model: Create root directory for paused folders (fixes #4094)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4095
2017-04-23 23:50:56 +00:00
Jakob Borg
e9f05d138f lib/db, lib/model: Always use reasonable sized batches (fixes #2250, fixes #4112)
Harmonize how we use batches in the model, using ProtoSize() to judge
the actual weight of the entire batch instead of estimating. Use smaller
batches in the block map - I think we might have though that batch.Len()
in the leveldb was the batch size in bytes, but it's actually number of
operations.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4114
2017-04-22 14:23:33 +00:00
Jakob Borg
10894695c6 cmd/syncthing: Use a 10 second EWMA for CPU usage, refactor a little
We have it lying around so might as well use it instead of inventing our
own thing.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4111
2017-04-20 08:33:09 +00:00
Simon Frei
6b188ebcf3 lib/model: Mark initial scan as finished even if failed and refactor (fixes #4103)
The mechanism to disallow manual scans before the initial scan completed
(#3996) , had the side effect, that if the initial scan failed, no further
scans are allowed. So this marks the initial scan as finished regardless of
whether it succeeded or not.

There was also redundant code in rofolder and a pointless check for folder
health in scanSubsIfHealthy (happens in internalScanFolderSubdirs as well).
This also moves logging from folder.go to ro/rw-folder.go to include the
information about whether it is send-only or send-receive

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4104
2017-04-20 00:20:34 +00:00
Jakob Borg
57e3f9e64b vendor: Update golang.org/x/sys/unix 2017-04-15 10:31:55 +02:00
Jakob Borg
b5694ca788 Merge branch 'release' (omitting the revert)
* release:
  Revert "lib/model, gui: Allow creating and editing ignores of paused folders (fixes #3608)"
2017-04-15 09:49:32 +02:00
Jakob Borg
bcfd18ceb1 Revert "lib/model, gui: Allow creating and editing ignores of paused folders (fixes #3608)"
This reverts commit 25b314f5f1.
2017-04-15 09:38:23 +02:00
Jonathan Cross
f689512a3f gui: Reduce height of textarea in ignores modal
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4102
2017-04-14 20:33:41 +00:00
Jakob Borg
dd1f7a5ab7 lib/connections: Allow negative ACL entries on devices (fixes #4096)
Prefix an entry with "!" to make it a negative entry. First match wins.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4097
2017-04-13 17:43:29 +00:00
Jakob Borg
d48e46a29c cmd/syncthing: Allow custom event subscriptions (fixes #1879)
This adds a parameter "events" to the /rest/events endpoint. It should
be a comma separated list of the events the consumer is interested in.
When not given it defaults to the current set of events, so it's
backwards compatible.

The API service then manages subscriptions, creating them as required
for each requested event mask. Old subscriptions are not "garbage
collected" - it's assumed that in normal usage the set of event
subscriptions will be small enough. Possibly lower than before, as we
will not set up the disk event subscription unless it's actually used.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4092
2017-04-13 17:14:34 +00:00
Jakob Borg
75460be98d Merge branch 'release'
* release:
  lib/protocol: Accept invalid files without blocks (fixes #4093)
2017-04-12 11:49:11 +02:00
Jakob Borg
ce0456b5ac lib/protocol: Accept invalid files without blocks (fixes #4093) 2017-04-12 11:48:27 +02:00
Jakob Borg
e3e028c988 lib/protocol: Accept invalid files without blocks (fixes #4093) 2017-04-12 11:28:12 +02:00
Jakob Borg
da34f27546 gui, lib/config, lib/model: Allow absolute values for minimum disk free space (fixes #3307)
This deprecates the current minDiskFreePct setting and introduces
minDiskFree. The latter is, in it's serialized form, a string with a
unit. We accept percentages ("2.35%") and absolute values ("250 k", "12.5
Gi"). Common suffixes are understood. The config editor lets the user
enter the string, and validates it.

We still default to "1 %", but the user can change that to an absolute
value at will.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4087
LGTM: AudriusButkevicius, imsodin
2017-04-12 09:01:19 +00:00
Jakob Borg
c205fdd77e cmd/syncthing: Handle pre-releases with zero auto upgrade interval (fixes #4090) 2017-04-10 15:56:52 +02:00
Jakob Borg
ae4206f362 gui: Add forgotten translation string 2017-04-07 09:16:55 +02:00
Keith Turner
391665e322 readme: Use logo as header
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4088
2017-04-07 05:21:11 +00:00
Simon Frei
5521759b23 lib/model: TestIgnores: Add ms sleep on all platforms (ref #3986 #3996)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4083
2017-04-06 09:55:54 +00:00
Jakob Borg
f0492c4eb3 gui: Per remote device transfer rates should follow setting (fixes #4082) 2017-04-06 10:42:45 +02:00
Jakob Borg
b1edf12257 gui, man: Update docs & translations 2017-04-05 17:10:31 +02:00
Jakob Borg
2579e8f715 build: Use tildes in Debian package versioning
Makes their version sorting closer to the semver we expect.
2017-04-05 16:59:37 +02:00
Jakob Borg
a1bcc15458 vendor: Mega update all dependencies
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4080
2017-04-05 14:34:41 +00:00
Jakob Borg
49c1527724 vendor: Update github.com/calmh/du (ref #4079) 2017-04-04 14:53:24 +02:00
Jakob Borg
da35820fd5 lib/model: Work around Mac filesystem precision in TestIgnores (ref #3996) 2017-04-03 15:47:23 +02:00
Adam Piggott
79eac61b09 gui: Re-word introducer text (fixes #1819)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3831
2017-04-01 11:06:13 +00:00
Jakob Borg
2ff08e6c84 lib/sync: Make some tests not depend on real clock
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4065
2017-04-01 11:03:11 +00:00
Simon Frei
25b314f5f1 lib/model, gui: Allow creating and editing ignores of paused folders (fixes #3608)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3996
LGTM: calmh, AudriusButkevicius
2017-04-01 09:58:06 +00:00
Jakob Borg
c5e0c47989 lib/connections, lib/model, gui: Specify allowed networks per device (fixes #219)
This adds a new config AllowedNetworks per device, which when set should
contain a list of network prefixes (192.168.0.0/126 etc) that are
allowed for the given device. The connection service will not attempt
connections to addresses outside of the given networks and incoming
connections will be rejected as well.

I've added the config to the normal device editor and shown it (when
set) in the device summary on the main screen.

There's a unit test for the IsAllowedNetwork method, I've done some
manual sanity testing on top of that.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4073
2017-04-01 09:52:31 +00:00
Jakob Borg
4253f22680 lib/scanner: Use fs.Filesystem for all operations
One more step on the path of the great refactoring. Touches rwfolder a
little bit since it uses the Lstat from fs as well, but mostly this is
just on the scanner as rwfolder is scheduled for a later refactor.

There are a couple of usages of fs.DefaultFilesystem that will in the
end become a filesystem injected from the top, but that comes later.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4070
LGTM: AudriusButkevicius, imsodin
2017-04-01 09:04:11 +00:00
Jakob Borg
bdb56d91b9 lib/model: Honor umask when creating folder directories on Unix (fixes #2519)
Doesn't change the behavior on Windows.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4076
2017-03-31 07:51:23 +00:00
Jakob Borg
c3820fbbf2 gui: Allow toggleable units for transfer rate (fixes #234)
Click the transfer rate to toggle between binary-exponent bytes (KiB/s,
MiB/s) and metric based bits (kb/s, Mb/s). The setting is persisted in
browser local storage (best effort).

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4074
2017-03-31 06:32:54 +00:00
Jakob Borg
cbdb036b69 gui: Handle slices in advanced config, show devices in advanced config (fixes #2267)
The ng-list directive makes angular handle lists by doing comma
separation in the roundtrip. We could simplify our normal config dialog
this way as well...

Also adds devices that were inexplicably not available in the advanced
config.

This reveals some other uglyness, as the "devices" config of a folder
now shows as "[object Object], [object Object]" - previously it was
invisible. I think that's fine for now.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4071
2017-03-30 14:32:58 +00:00
Jakob Borg
b75b4190c8 lib/protocol: Add some consistency checks on incoming index updates (fixes #4053)
With this change we will throw a protocol error on some kinds of
malformed index entries.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4064
2017-03-27 07:21:08 +00:00
Simon Frei
1ad547fb65 gui, script: Translate discovery popover and detect it in translate script
Skip-check: pr-solaris

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4061
2017-03-25 11:56:51 +00:00
Jakob Borg
ac46db78d7 gui, man: Update docs & translations 2017-03-23 20:04:35 +09:00
Jaya chithra
53a7c7bd49 gui: Sort languages alphabetically (fixes #3813)
This change sorts the language selection menu in Syncthing's home page so
that the languages are displayed alphabetically. The issue was discussed in
#3813. There were few ways of doing this. Sorting the language names in
transifix file did not work due to access control. So I sorted the languages
directly in languageSelectdirective.js by inverting and sorting the language
info retrieved from localeService.js.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4052
2017-03-22 05:15:32 +00:00
Jakob Borg
e667fcb472 authors: Add jayachithra 2017-03-22 14:02:46 +09:00
Sacheendra Talluri
ee92ee0190 gui: Move discovery failures to modal (fixes #2344)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4048
LGTM: calmh, AudriusButkevicius
2017-03-20 13:55:08 +00:00
Jakob Borg
3e49b73f70 authors: Add sacheendra 2017-03-20 16:03:22 +09:00
Jakob Borg
236e206764 top: Remove inadvertently commit binary 2017-03-20 14:28:13 +09:00
nov1n
ed771f5c64 gui: Show full failed item path
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4023
2017-03-18 11:43:24 +00:00
Jakob Borg
c6dd777fd6 authors: Add nov1n 2017-03-18 19:08:18 +09:00
kwhite17
1caa683ec1 lib/scanner: Stopped outputting rescan debug message if file doesn't exist locally (fixes #1350)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4028
2017-03-18 00:36:54 +00:00
Simon Frei
88dfd634e5 script, gui: Silence useless warnings in translation script
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4034
LGTM: AudriusButkevicius
2017-03-18 00:27:22 +00:00
Jakob Borg
5c27796471 lib/model, lib/scanner: Properly ignore symlinks on Windows (fixes #4035)
Adds a unit test to ensure we don't scan symlinks on Windows. For the
rwfolder, trusts that the logic in the invalid check is correct and that
the check is actually called from the need loop.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4042
2017-03-18 00:25:47 +00:00
Jakob Borg
a54365424e cmd/syncthing: Append build tags used to the long version string
$ go run build.go -race -no-upgrade
    $ syncthing -version
    syncthing v0.14.25-rc.2 "Dysprosium Dragonfly" (go1.8 darwin-amd64)
      jb@unu.kastelo.net 2017-03-16 23:06:21 UTC [noupgrade, race]

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4043
2017-03-16 23:40:27 +00:00
Benedikt Morbach
ef35a7a4cb etc: linux-systemd: Use sleep.target in syncthing-resume.service
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4037
2017-03-12 15:21:12 +00:00
Simon Frei
601a4fac1a cmd/syncthing: Accept absolute -home paths (regression from #3183)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4033
2017-03-09 14:57:12 +00:00
Jakob Borg
f4ccc69422 gui, man: Update docs & translations 2017-03-09 14:13:11 +01:00
Audrius Butkevicius
ceea5ebeb3 lib/connections, vendor: Change KCP mux to SMUX
Closes #4032
2017-03-09 14:03:09 +01:00
Jakob Borg
f35e1ac0c5 lib/config: Oops, update tests 2017-03-08 14:23:48 +01:00
Jakob Borg
0e76f9d93b lib/config: Update default update interval for KCP 2017-03-08 14:18:39 +01:00
Simon Frei
1b08176583 gui: Update translation strings
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4031
2017-03-08 12:38:25 +00:00
Jakob Borg
b3e2665a79 vendor: Update github.com/xtaci/kcp 2017-03-07 14:29:21 +01:00
Jakob Borg
81af29e3e2 lib/config, lib/connections: Configurables for KCP, disable by default
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4030
2017-03-07 12:55:50 +00:00
Audrius Butkevicius
0da0774ce4 lib/connections: Add KCP support (fixes #804)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3489
2017-03-07 12:44:16 +00:00
Jakob Borg
151004d645 vendor: Update github.com/syndtr/goleveldb 2017-03-07 11:57:45 +01:00
Jakob Borg
4e3fdfaeef build: Disable seemingly buggy staticcheck warning 2017-03-07 11:51:58 +01:00
Simon Frei
1c29a93013 lib/events, cmd/syncthing: Correct GlobalID in debug and mark "since" parameter optional
Skip-check: metalint

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4025
2017-03-07 05:44:47 +00:00
Jakob Borg
689f13f4f1 build: Don't check for supported Go version
One thing less to maintain, and you can discover for yourself if it
builds or not.
2017-03-05 10:31:56 +01:00
Jakob Borg
0558565a95 build, jenkins: Build for linux-mipsle 2017-03-05 10:13:07 +01:00
Jakob Borg
b84c4e1417 vendor: Update github.com/minio/sha256-simd 2017-03-05 10:12:54 +01:00
Simon Frei
416811a2a9 cmd/syncthing, lib/config: Pause/resume all devices whithout argument
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3989
LGTM: AudriusButkevicius, calmh
2017-03-04 07:54:13 +00:00
Simon Frei
c20d612736 cmd/syncthing, lib/model: Handle rel/abs paths for config/protected paths (fixes #3183)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3995
2017-03-04 07:49:48 +00:00
Jakob Borg
3475a9ab0a jenkins: Remove spurious 'parts' directory when cleaning 2017-03-04 08:22:35 +01:00
Jakob Borg
d7adee05a8 build, jenkins: Build for mips (fixes #3959) 2017-03-04 07:48:42 +01:00
Jakob Borg
73cbd17e17 vendor: Update github.com/minio/sha256-simd with patch for mips 2017-03-04 07:48:16 +01:00
Jakob Borg
7260629bc0 vendor: Update golang.org/x/net/ipv6 2017-03-04 07:28:11 +01:00
andresvia
566c348b00 build: Remove obsolete check for vendoring support
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4008
2017-02-26 15:12:20 +00:00
chucic
190f153b92 gui: Correct usage of folder vs directory
skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4007
2017-02-25 17:43:07 +00:00
HairyFotr
c56c48a777 all: Correct various typos
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4005
2017-02-25 08:12:13 +00:00
Wulf Weich
98d22b88a0 gui: Fix icons in pause / resume all buttons (fixes #4003)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4004
2017-02-24 08:42:32 +00:00
Jakob Borg
28449f9f5b gui, man: Update docs and translations 2017-02-23 07:47:07 +01:00
Jakob Borg
a0e2e7a962 gui: Translation strinsg for pause/resume all 2017-02-22 04:03:41 +01:00
Ben S
fb6d453c74 gui: Update button wording
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3982
2017-02-10 17:21:16 +00:00
Jakob Borg
89f8be40c6 lib/model: Use ignore patterns in remote completion calculation
Basically, if we don't care about the sync status of the file we should
not tag someone else out of sync because they don't have the latest
version. This solves *my* "Syncing - 100%" scenario at least.

The reason this happens seems to be like this, in my situation. I have
three devices, connected in a "line": A-B-C. A is a Mac and litters
.DS_Store files everywhere. I've ignored these, but some escaped into
the folders before I did so. I've also ignored them on B and C but at
different stages. B was flagging C as out of sync, because at the point
the ignores were introduced C had a lower version of .DS_Store than A.
Now none of them are sending updates about it any more since it's
ignored...

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3981
2017-02-10 11:22:09 +00:00
Jakob Borg
96fba1b322 Merge branch 'release'
* release:
  cmd/syncthing: Environment handling for upgrade restarts (fixes #3970)
2017-02-10 11:58:26 +01:00
Niller303
0c68e1e510 GUI: Added "Pause All Folders" and "Resume All Folders buttons
As per scienmind's post (#3964) i though it was a good idea and wanted
such a button.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3973
LGTM: AudriusButkevicius, calmh
2017-02-09 20:31:23 +00:00
Simon Frei
22903df2c1 lib/model: Meaningful error messages for paused folders
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3977
LGTM: AudriusButkevicius, calmh
2017-02-09 20:29:56 +00:00
Jakob Borg
10618e80a3 authors: Add Niller303 2017-02-09 13:55:51 +01:00
Jakob Borg
161326c548 all: Weed out a few other http urls (ref #3976) 2017-02-09 08:04:16 +01:00
Jakob Borg
f7fc0c1d3e all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
Audrius Butkevicius
120e6eab2c lib/sync: Fix a race in unlocker logging (fixes #3884)
Other routines use atomics, hence even if we are under a lock, we should
too.

We might atomically store with
Not sure how it happens, but it's between lines

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3974
2017-02-08 22:31:19 +00:00
Audrius Butkevicius
72de47df00 lib/model: Increase in-flight buffer from 2mb to 8mb, download 2 files at a time
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3972
2017-02-08 20:00:55 +00:00
Jakob Borg
dfe23e8d53 jenkins: Set BUILD_USER for Debian and Snap builds
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3971
2017-02-08 13:02:09 +00:00
Jakob Borg
2b1c942d56 cmd/syncthing: Environment handling for upgrade restarts (fixes #3970) 2017-02-07 21:36:58 +01:00
Jakob Borg
204f125ab3 cmd/syncthing: Environment handling for upgrade restarts (fixes #3970) 2017-02-07 21:25:33 +01:00
Jakob Borg
73f9c7d174 lib/versioner: Convert Staggered to a suture.Service (fixes #3820) 2017-02-07 14:33:33 +01:00
Jakob Borg
c4ba580cbb all: Remove symlink support on Windows, SymlinksEnabled config
After this change,

- Symlinks on Windows are always unsupported. Sorry.

- Symlinks are always enabled on other platforms. They are just a small
  file like anything else. There is no need to special case them. If you
  don't want to sync some symlinks, ignore them.

- The protocol doesn't differentiate between different "types" of
  symlinks. If that distinction ever does become relevant the individual
  devices can figure it out by looking at the destination when they
  create the link.

It's backwards compatible in that all the old symlink types are still
understood to be symlinks, and the new SYMLINK type is equivalent to the
old SYMLINK_UNKNOWN which was always a valid way to do it.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3962
LGTM: AudriusButkevicius
2017-02-07 08:34:24 +00:00
Jakob Borg
9fda9642d3 lib/events: Make test even less timing dependent 2017-02-07 08:57:39 +01:00
Jakob Borg
dfd2c464b6 lib/events: Overflow test should calculate average log time 2017-02-07 08:47:53 +01:00
Jakob Borg
5a1ee7f0b0 gui, man: Update docs & translations 2017-02-07 08:28:02 +01:00
Jakob Borg
fdcbd54cd7 lib/events: Be more resilient against dropping events (fixes #3952)
Instead of just immediately dropping the event if the subscription isn't
ready to receive it, give it 15 ms to catch up. The value 15 ms is
grabbed out of thin air - it just seems reasonable to me.

The timer juggling makes the event send pretty much exactly twice as
slow as it was before, but we're still under a microsecond. I think it's
negligible compared to whatever event that just happened that we're
interested in logging (usually a file operation of some kind).

	benchmark                  old ns/op     new ns/op     delta
	BenchmarkBufferedSub-8     475           950           +100.00%

	benchmark                  old allocs     new allocs     delta
	BenchmarkBufferedSub-8     4              4              +0.00%

	benchmark                  old bytes     new bytes     delta
	BenchmarkBufferedSub-8     104           117           +12.50%

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3960
2017-02-07 07:25:09 +00:00
Jakob Borg
e14741a58c cmd/syncthing: Speed up the CPU benchmark
Not the measured performance, just the wall clock time it takes to
complete. The random generation was dominating.
2017-02-06 13:42:39 +01:00
Audrius Butkevicius
67acef1794 lib/weakhash, lib/model, cmd/syncthing: Decide if to use weakhash on startup (fixes #3938)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3949
2017-02-06 10:27:11 +00:00
Simon Frei
237893ead3 cmd/syncthing: Only delay next scan (via REST) if the scan succeeds
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3927
2017-02-05 18:17:44 +00:00
Jakob Borg
2590536ef3 readme: Spelling error in bold in the first sentence
Nobody reads this, right?
2017-02-05 18:58:12 +01:00
Jakob Borg
dc91995475 readme: Go report card badge 2017-02-05 18:54:25 +01:00
Jakob Borg
3655c97850 cmd/syncthing, lib/fs, lib/sync: Spelling in comments 2017-02-05 18:51:52 +01:00
Jakob Borg
c0f3f06cfb lib/weakhash, script: gofmt -s 2017-02-05 18:49:57 +01:00
Jakob Borg
05450ca034 readme: More build badges 2017-02-05 18:46:17 +01:00
Jakob Borg
c005e61151 snapcraft: s/snap/prime (fixes #3955) 2017-02-05 15:03:36 +01:00
Jakob Borg
63e0b53e8b build: Set snap grade "stable" for release candidates 2017-02-05 14:42:29 +01:00
Jakob Borg
1f586c0fdd gui, man: Update docs & translations 2017-02-05 13:54:49 +01:00
Jakob Borg
f1a073501f lib/fs: A nil MtimeFS is valid (fixes #3958)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3961
2017-02-05 12:54:08 +00:00
Jakob Borg
a72f5379fb jenkins: Build natively on Solaris
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3957
2017-02-05 11:20:15 +00:00
Jakob Borg
8cccecceba lib/events: Speed up event polling loop slightly (ref #3952)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3954
2017-02-04 15:53:39 +00:00
janost
81418d724a jenkins: Add arm64 deb build
Skip-check: authors

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3953
2017-02-04 14:18:54 +00:00
Jakob Borg
3eb7a9373a gui, lib/config: Add notification about new release channels
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3945
2017-02-04 09:45:17 +00:00
Antony Male
ac510b26e2 cmd/syncthing, lib/events, lib/sync: Add timeout to REST event API, remove Ping (fixes #3933)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3941
2017-01-31 12:04:29 +00:00
Jakob Borg
20f8b4fd57 gui: Wording of auto upgrade selections 2017-01-30 23:14:45 +01:00
Jakob Borg
1c9361a818 cmd/syncthing: Implement "release candidate" logic
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3943
LGTM: AudriusButkevicius
2017-01-30 21:33:07 +00:00
Jakob Borg
35e87e23fd cmd/syncthing, gui, lib/config, lib/upgrade: Add option to upgrade to pre-releases
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3939
2017-01-27 12:17:06 +00:00
benshep
e03be9158b gui: Remaining sync bytes in folder header (fixes #3908)
The progress indicator in the folder header in the GUI now shows the
remaining bytes to sync as well as the percentage.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3928
2017-01-26 09:39:48 +00:00
Jakob Borg
9833d13762 gui: Don't trim space on the password field (fixes #3935) 2017-01-26 08:13:41 +01:00
Jakob Borg
6ec7d711d8 authors: Add benshep 2017-01-25 19:20:52 +01:00
1562 changed files with 135212 additions and 85850 deletions

14
AUTHORS
View File

@@ -21,6 +21,7 @@ Audrius Butkevicius (AudriusButkevicius) <audrius.butkevicius@gmail.com>
Bart De Vries (mogwa1) <devriesb@gmail.com>
Ben Curthoys (bencurthoys) <ben@bencurthoys.com>
Ben Schulz (uok) <ueomkail@gmail.com> <uok@users.noreply.github.com>
Ben Shepherd (benshep) <bjashepherd@gmail.com>
Ben Sidhom (bsidhom) <bsidhom@gmail.com>
Benny Ng (tpng) <benny.tpng@gmail.com>
Brandon Philips (philips) <brandon@ifup.org>
@@ -36,6 +37,7 @@ Colin Kennedy (moshen) <moshen.colin@gmail.com>
Daniel Bergmann (brgmnn) <dan.arne.bergmann@gmail.com> <brgmnn@users.noreply.github.com>
Daniel Harte (norgeous) <daniel@harte.me> <daniel@danielharte.co.uk> <norgeous@users.noreply.github.com>
Daniel MartĂ­ (mvdan) <mvdan@mvdan.cc>
Darshil Chanpura (dtchanpura) <dtchanpura@gmail.com> <dcprime314@gmail.com>
David Rimmer (dinosore) <dinosore@dbrsoftware.co.uk>
Denis A. (dva) <denisva@gmail.com>
Dennis Wilson (snnd) <dw@risu.io>
@@ -56,18 +58,21 @@ Jake Peterson (acogdev) <jake@acogdev.com>
Jakob Borg (calmh) <jakob@nym.se> <jakob@kastelo.net>
James Patterson (jpjp) <jamespatterson@operamail.com> <jpjp@users.noreply.github.com>
Jaroslav Malec (dzarda) <dzardacz@gmail.com>
Jaya Chithra (jayachithra) <s.k.jayachithra@gmail.com>
Jens Diemer (jedie) <github.com@jensdiemer.de> <git@jensdiemer.de>
Jochen Voss (seehuhn) <voss@seehuhn.de>
Johan Vromans (sciurius) <jvromans@squirrel.nl>
Jose Manuel Delicado (jmdaweb) <jmdaweb@hotmail.com> <jmdaweb@users.noreply.github.com>
Karol RĂłĆŒycki (krozycki) <rozycki.karol@gmail.com>
Kelong Cong (kc1212) <kc04bc@gmx.com> <kc1212@users.noreply.github.com>
Ken'ichi Kamada (kamadak) <kamada@nanohz.org>
Kevin Allen (ironmig) <kma1660@gmail.com>
Kevin White, Jr. (kwhite17) <kevinwhite1710@gmail.com>
Kurt Fitzner (Kudalufi) <kurt@va1der.ca>
Kurt Fitzner (Kudalufi) <kurt@va1der.ca> <kurt.fitzner@gmail.com>
Lars K.W. Gohlke (lkwg82) <lkwg82@gmx.de>
Laurent Etiemble (letiemble) <laurent.etiemble@gmail.com> <laurent.etiemble@monobjc.net>
Leo Arias (elopio) <yo@elopio.net>
Liu Siyuan (liusy182) <liusy182@gmail.com> <liusy182@hotmail.com>
Lode Hoste (Zillode) <zillode@zillode.be>
Lord Landon Agahnim (LordLandon) <lordlandon@gmail.com>
Majed Abdulaziz (majedev) <majed.alhajry@gmail.com>
@@ -82,18 +87,23 @@ Michael Jephcote (Rewt0r) <rewt0r@gmx.com> <Rewt0r@users.noreply.github.com>
Michael Ploujnikov (plouj) <ploujj@gmail.com>
Michael Tilli (pyfisch) <pyfisch@gmail.com>
Nate Morrison (nrm21) <natemorrison@gmail.com>
Niels Peter Roest (Niller303) <nielsproest@hotmail.com> <seje.niels@hotmail.com>
Pascal Jungblut (pascalj) <github@pascalj.com> <mail@pascal-jungblut.com>
Peter Hoeg (peterhoeg) <peter@speartail.com>
Philippe Schommers (filoozoom) <philippe@schommers.be>
Phill Luby (pluby) <phill.luby@newredo.com>
Piotr Bejda (piobpl) <piotrb10@gmail.com>
Robert Carosi (nov1n) <robert@carosi.nl>
Roman Zaynetdinov (zaynetro) <romanznet@gmail.com>
Ross Smith II (rasa) <ross@smithii.com>
Ryan Sullivan (KayoticSully) <kayoticsully@gmail.com>
Sacheendra Talluri (sacheendra) <sacheendra.t@gmail.com>
Scott Klupfel (kluppy) <kluppy@going2blue.com>
Sergey Mishin (ralder) <ralder@yandex.ru>
Simon Frei (imsodin) <freisim93@gmail.com>
Stefan Kuntz (Stefan-Code) <stefan.github@gmail.com> <Stefan.github@gmail.com>
Stefan Tatschner (rumpelsepp) <stefan@sevenbyte.org> <rumpelsepp@sevenbyte.org>
Suhas Gundimeda (snugghash) <suhas.gundimeda@gmail.com> <snugghash@gmail.com>
Tim Abell (timabell) <tim@timwise.co.uk>
Tim Howes (timhowes) <timhowes@berkeley.edu>
Tobias Nygren (tnn2) <tnn@nygren.pp.se>
@@ -105,6 +115,6 @@ Veeti Paananen (veeti) <veeti.paananen@rojekti.fi>
Victor Buinsky (buinsky) <vix_booja@tut.by>
Vil Brekin (Vilbrekin) <vilbrekin@gmail.com>
William A. Kennington III (wkennington) <william@wkennington.com>
Wulf Weich (wweich) <wweich@users.noreply.github.com> <wweich@gmx.de>
Wulf Weich (wweich) <wweich@users.noreply.github.com> <wweich@gmx.de> <wulf@weich-kr.de>
Xavier O. (damajor) <damajor@gmail.com>
Yannic A. (eipiminus1) <eipiminusone+github@gmail.com> <eipiminus1@users.noreply.github.com>

View File

@@ -1,6 +1,6 @@
# The Syncthing Goals
Syncthing is a **continous file synchronization program**. It synchronizes
Syncthing is a **continuous file synchronization program**. It synchronizes
files between two or more computers. We strive to fulfill the goals below.
The goals are listed in order of importance, the most important one being
the first.
@@ -80,4 +80,4 @@ conflict with the stated goals above.
> providing entertainment value for the maintainers are also things that
> matter. It is understood that there are aspects of Syncthing that are
> suboptimal or even in opposition with the goals above. However, we
> continously strive to align Syncthing more and more with these goals.
> continuously strive to align Syncthing more and more with these goals.

View File

@@ -357,7 +357,7 @@ Exhibit A - Source Code Form License Notice
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 http://mozilla.org/MPL/2.0/.
file, You can obtain one at https://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE

17
NICKS
View File

@@ -15,6 +15,7 @@ AudriusButkevicius <audrius.butkevicius@gmail.com>
aviau <alexandre@alexandreviau.net>
aviau <aviau@debian.org>
bencurthoys <ben@bencurthoys.com>
benshep <bjashepherd@gmail.com>
bigbear2nd <bigbear2nd@gmail.com>
brbecker <brbecker@gmail.com>
brendanlong <self@brendanlong.com>
@@ -35,6 +36,8 @@ ceh <emil@hessman.se>
cqcallaw <enlightened.despot@gmail.com>
damajor <damajor@gmail.com>
dinosore <dinosore@dbrsoftware.co.uk>
dtchanpura <dtchanpura@gmail.com>
dtchanpura <dcprime314@gmail.com>
dva <denisva@gmail.com>
dzarda <dzardacz@gmail.com>
eipiminus1 <eipiminusone+github@gmail.com>
@@ -50,9 +53,12 @@ hadogenes <szafar@linux.pl>
imsodin <freisim93@gmail.com>
ironmig <kma1660@gmail.com>
jarlebring <jarlebring@gmail.com>
jayachithra <s.k.jayachithra@gmail.com>
jedie <github.com@jensdiemer.de>
jedie <git@jensdiemer.de>
jgke <jgke@jgke.fi>
jmdaweb <jmdaweb@hotmail.com>
jmdaweb <jmdaweb@users.noreply.github.com>
jpjp <jamespatterson@operamail.com>
jpjp <jpjp@users.noreply.github.com>
kamadak <kamada@nanohz.org>
@@ -66,9 +72,12 @@ kralo <max.schulze@online.de>
kralo <kralo@users.noreply.github.com>
krozycki <rozycki.karol@gmail.com>
Kudalufi <kurt@va1der.ca>
Kudalufi <kurt.fitzner@gmail.com>
kwhite17 <kevinwhite1710@gmail.com>
letiemble <laurent.etiemble@gmail.com>
letiemble <laurent.etiemble@monobjc.net>
liusy182 <liusy182@gmail.com>
liusy182 <liusy182@hotmail.com>
lkwg82 <lkwg82@gmx.de>
LordLandon <lordlandon@gmail.com>
majedev <majed.alhajry@gmail.com>
@@ -81,9 +90,12 @@ moshen <moshen.colin@gmail.com>
Moter8 <moter8@gmail.com>
mpx <mark@kyne.com.au>
mvdan <mvdan@mvdan.cc>
Niller303 <nielsproest@hotmail.com>
Niller303 <seje.niels@hotmail.com>
norgeous <daniel@harte.me>
norgeous <daniel@danielharte.co.uk>
norgeous <norgeous@users.noreply.github.com>
nov1n <robert@carosi.nl>
nrm21 <natemorrison@gmail.com>
Nutomic <me@nutomic.com>
pascalj <github@pascalj.com>
@@ -99,15 +111,19 @@ ProactiveServices <ProactiveServices@users.noreply.github.com>
pyfisch <pyfisch@gmail.com>
qbit <qbit@deftly.net>
ralder <ralder@yandex.ru>
rasa <ross@smithii.com>
Rewt0r <rewt0r@gmx.com>
Rewt0r <Rewt0r@users.noreply.github.com>
rumpelsepp <stefan@sevenbyte.org>
rumpelsepp <rumpelsepp@sevenbyte.org>
sacheendra <sacheendra.t@gmail.com>
scienmind <scintertech@cryptolab.net>
sciurius <jvromans@squirrel.nl>
seehuhn <voss@seehuhn.de>
Smiley73 <heiko@zuerker.org>
snnd <dw@risu.io>
snugghash <suhas.gundimeda@gmail.com>
snugghash <snugghash@gmail.com>
Stefan-Code <stefan.github@gmail.com>
Stefan-Code <Stefan.github@gmail.com>
timabell <tim@timwise.co.uk>
@@ -126,6 +142,7 @@ wkennington <william@wkennington.com>
WSGCSysadmin <e.meitner@willystreet.coop>
wweich <wweich@users.noreply.github.com>
wweich <wweich@gmx.de>
wweich <wulf@weich-kr.de>
xduugu <cedric@gmx.ca>
zaynetro <romanznet@gmail.com>
Zillode <zillode@zillode.be>

View File

@@ -1,13 +1,19 @@
# Syncthing
[![Syncthing][14]][15]
[![Latest Build (Official)](https://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing.svg?style=flat-square&label=unix%20build)](http://build.syncthing.net/job/syncthing/lastBuild/)
[![API Documentation](https://img.shields.io/badge/api-Godoc-blue.svg?style=flat-square)](http://godoc.org/github.com/syncthing/syncthing)
---
[![Latest Linux & Cross Build](https://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing.svg?style=flat-square&label=linux+%26+cross)](https://build.syncthing.net/job/syncthing/lastBuild/)
[![Latest Windows Build](https://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing-windows.svg?style=flat-square&label=windows)](https://build.syncthing.net/job/syncthing/lastBuild/)
[![Latest Mac Build](https://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing-mac.svg?style=flat-square&label=mac)](https://build.syncthing.net/job/syncthing/lastBuild/)
[![Latest Solaris Build](https://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing-solaris.svg?style=flat-square&label=solaris)](https://build.syncthing.net/job/syncthing/lastBuild/)
[![API Documentation](https://img.shields.io/badge/api-Godoc-blue.svg?style=flat-square)](https://godoc.org/github.com/syncthing/syncthing)
[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88)
[![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing)
## Goals
Syncthing is a **continous file synchronization program**. It synchronizes
Syncthing is a **continuous file synchronization program**. It synchronizes
files between two or more computers. We strive to fulfill the goals below.
The goals are listed in order of importance, the most important one being
the first. This is the summary version of the goal list - for more
@@ -94,7 +100,7 @@ All code is licensed under the [MPLv2 License][7].
[1]: https://docs.syncthing.net/specs/bep-v1.html
[2]: https://docs.syncthing.net/intro/getting-started.html
[3]: https://github.com/syncthing/syncthing/blob/master/etc
[4]: http://www.freenode.net/irc_servers.shtml
[4]: https://www.freenode.net/
[5]: https://docs.syncthing.net/dev/building.html
[6]: https://docs.syncthing.net/
[7]: https://github.com/syncthing/syncthing/blob/master/LICENSE
@@ -104,3 +110,5 @@ All code is licensed under the [MPLv2 License][7].
[11]: https://docs.syncthing.net/users/contrib.html#gui-wrappers
[12]: https://www.bountysource.com/teams/syncthing/issues
[13]: https://github.com/syncthing/syncthing/blob/master/GOALS.md
[14]: assets/logo-text-128.png
[15]: https://syncthing.net/

View File

Binary file not shown.

474
build.go
View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build ignore
@@ -12,7 +12,9 @@ import (
"archive/tar"
"archive/zip"
"bytes"
"compress/flate"
"compress/gzip"
"crypto/sha256"
"errors"
"flag"
"fmt"
@@ -32,18 +34,25 @@ import (
)
var (
versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
goarch string
goos string
noupgrade bool
version string
goVersion float64
race bool
debug = os.Getenv("BUILDDEBUG") != ""
versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
goarch string
goos string
noupgrade bool
version string
goVersion float64
race bool
debug = os.Getenv("BUILDDEBUG") != ""
noBuildGopath bool
extraTags string
installSuffix string
)
type target struct {
name string
debname string
debdeps []string
debpost string
description string
buildPkg string
binaryName string
archiveFiles []archiveFile
@@ -61,14 +70,18 @@ var targets = map[string]target{
"all": {
// Only valid for the "build" and "install" commands as it lacks all
// the archive creation stuff.
buildPkg: "./cmd/...",
buildPkg: "github.com/syncthing/syncthing/cmd/...",
tags: []string{"purego"},
},
"syncthing": {
// The default target for "build", "install", "tar", "zip", "deb", etc.
name: "syncthing",
buildPkg: "./cmd/syncthing",
binaryName: "syncthing", // .exe will be added automatically for Windows builds
name: "syncthing",
debname: "syncthing",
debdeps: []string{"libc6", "procps"},
debpost: "script/post-upgrade",
description: "Open Source Continuous File Synchronization",
buildPkg: "github.com/syncthing/syncthing/cmd/syncthing",
binaryName: "syncthing", // .exe will be added automatically for Windows builds
archiveFiles: []archiveFile{
{src: "{{binary}}", dst: "{{binary}}", perm: 0755},
{src: "README.md", dst: "README.txt", perm: 0644},
@@ -98,9 +111,12 @@ var targets = map[string]target{
},
},
"stdiscosrv": {
name: "stdiscosrv",
buildPkg: "./cmd/stdiscosrv",
binaryName: "stdiscosrv", // .exe will be added automatically for Windows builds
name: "stdiscosrv",
debname: "syncthing-discosrv",
debdeps: []string{"libc6"},
description: "Syncthing Discovery Server",
buildPkg: "github.com/syncthing/syncthing/cmd/stdiscosrv",
binaryName: "stdiscosrv", // .exe will be added automatically for Windows builds
archiveFiles: []archiveFile{
{src: "{{binary}}", dst: "{{binary}}", perm: 0755},
{src: "cmd/stdiscosrv/README.md", dst: "README.txt", perm: 0644},
@@ -109,17 +125,20 @@ var targets = map[string]target{
},
installationFiles: []archiveFile{
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
{src: "cmd/stdiscosrv/README.md", dst: "deb/usr/share/doc/stdiscosrv/README.txt", perm: 0644},
{src: "cmd/stdiscosrv/LICENSE", dst: "deb/usr/share/doc/stdiscosrv/LICENSE.txt", perm: 0644},
{src: "AUTHORS", dst: "deb/usr/share/doc/stdiscosrv/AUTHORS.txt", perm: 0644},
{src: "cmd/stdiscosrv/README.md", dst: "deb/usr/share/doc/syncthing-discosrv/README.txt", perm: 0644},
{src: "cmd/stdiscosrv/LICENSE", dst: "deb/usr/share/doc/syncthing-discosrv/LICENSE.txt", perm: 0644},
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-discosrv/AUTHORS.txt", perm: 0644},
{src: "man/stdiscosrv.1", dst: "deb/usr/share/man/man1/stdiscosrv.1", perm: 0644},
},
tags: []string{"purego"},
},
"strelaysrv": {
name: "strelaysrv",
buildPkg: "./cmd/strelaysrv",
binaryName: "strelaysrv", // .exe will be added automatically for Windows builds
name: "strelaysrv",
debname: "syncthing-relaysrv",
debdeps: []string{"libc6"},
description: "Syncthing Relay Server",
buildPkg: "github.com/syncthing/syncthing/cmd/strelaysrv",
binaryName: "strelaysrv", // .exe will be added automatically for Windows builds
archiveFiles: []archiveFile{
{src: "{{binary}}", dst: "{{binary}}", perm: 0755},
{src: "cmd/strelaysrv/README.md", dst: "README.txt", perm: 0644},
@@ -128,16 +147,19 @@ var targets = map[string]target{
},
installationFiles: []archiveFile{
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
{src: "cmd/strelaysrv/README.md", dst: "deb/usr/share/doc/strelaysrv/README.txt", perm: 0644},
{src: "cmd/strelaysrv/LICENSE", dst: "deb/usr/share/doc/strelaysrv/LICENSE.txt", perm: 0644},
{src: "AUTHORS", dst: "deb/usr/share/doc/strelaysrv/AUTHORS.txt", perm: 0644},
{src: "cmd/strelaysrv/README.md", dst: "deb/usr/share/doc/syncthing-relaysrv/README.txt", perm: 0644},
{src: "cmd/strelaysrv/LICENSE", dst: "deb/usr/share/doc/syncthing-relaysrv/LICENSE.txt", perm: 0644},
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaysrv/AUTHORS.txt", perm: 0644},
{src: "man/strelaysrv.1", dst: "deb/usr/share/man/man1/strelaysrv.1", perm: 0644},
},
},
"strelaypoolsrv": {
name: "strelaypoolsrv",
buildPkg: "./cmd/strelaypoolsrv",
binaryName: "strelaypoolsrv", // .exe will be added automatically for Windows builds
name: "strelaypoolsrv",
debname: "syncthing-relaypoolsrv",
debdeps: []string{"libc6"},
description: "Syncthing Relay Pool Server",
buildPkg: "github.com/syncthing/syncthing/cmd/strelaypoolsrv",
binaryName: "strelaypoolsrv", // .exe will be added automatically for Windows builds
archiveFiles: []archiveFile{
{src: "{{binary}}", dst: "{{binary}}", perm: 0755},
{src: "cmd/strelaypoolsrv/README.md", dst: "README.txt", perm: 0644},
@@ -146,47 +168,13 @@ var targets = map[string]target{
},
installationFiles: []archiveFile{
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
{src: "cmd/strelaypoolsrv/README.md", dst: "deb/usr/share/doc/relaysrv/README.txt", perm: 0644},
{src: "cmd/strelaypoolsrv/LICENSE", dst: "deb/usr/share/doc/relaysrv/LICENSE.txt", perm: 0644},
{src: "AUTHORS", dst: "deb/usr/share/doc/relaysrv/AUTHORS.txt", perm: 0644},
{src: "cmd/strelaypoolsrv/README.md", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/README.txt", perm: 0644},
{src: "cmd/strelaypoolsrv/LICENSE", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/LICENSE.txt", perm: 0644},
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/AUTHORS.txt", perm: 0644},
},
},
}
var (
// fast linters complete in a fraction of a second and might as well be
// run always as part of the build
fastLinters = []string{
"deadcode",
"golint",
"ineffassign",
"vet",
}
// slow linters take several seconds and are run only as part of the
// "metalint" command.
slowLinters = []string{
"gosimple",
"staticcheck",
"structcheck",
"unused",
"varcheck",
}
// Which parts of the tree to lint
lintDirs = []string{".", "./lib/...", "./cmd/..."}
// Messages to ignore
lintExcludes = []string{
".pb.go",
"should have comment",
"protocol.Vector composite literal uses unkeyed fields",
"cli.Requires composite literal uses unkeyed fields",
"Use DialContext instead", // Go 1.7
"os.SEEK_SET is deprecated", // Go 1.7
}
)
func init() {
// The "syncthing" target includes a few more files found in the "etc"
// and "extra" dirs.
@@ -203,12 +191,11 @@ func init() {
targets["syncthing"] = syncthingPkg
}
const minGoVersion = 1.5
func main() {
log.SetOutput(os.Stdout)
log.SetFlags(0)
parseFlags()
if debug {
t0 := time.Now()
defer func() {
@@ -216,21 +203,26 @@ func main() {
}()
}
if os.Getenv("GOPATH") == "" {
setGoPath()
if gopath() == "" {
gopath, err := temporaryBuildDir()
if err != nil {
log.Fatal(err)
}
if !noBuildGopath {
lazyRebuildAssets()
if err := buildGOPATH(gopath); err != nil {
log.Fatal(err)
}
}
os.Setenv("GOPATH", gopath)
log.Println("GOPATH is", gopath)
}
// We use Go 1.5+ vendoring.
os.Setenv("GO15VENDOREXPERIMENT", "1")
// Set path to $GOPATH/bin:$PATH so that we can for sure find tools we
// might have installed during "build.go setup".
os.Setenv("PATH", fmt.Sprintf("%s%cbin%c%s", os.Getenv("GOPATH"), os.PathSeparator, os.PathListSeparator, os.Getenv("PATH")))
parseFlags()
checkArchitecture()
goVersion, _ = checkRequiredGoVersion()
// Invoking build.go with no parameters at all builds everything (incrementally),
// which is what you want for maximum error checking during development.
@@ -255,7 +247,7 @@ func main() {
func checkArchitecture() {
switch goarch {
case "386", "amd64", "arm", "arm64", "ppc64", "ppc64le":
case "386", "amd64", "arm", "arm64", "ppc64", "ppc64le", "mips", "mipsle":
break
default:
log.Printf("Unknown goarch %q; proceed with caution!", goarch)
@@ -272,22 +264,23 @@ func runCommand(cmd string, target target) {
if noupgrade {
tags = []string{"noupgrade"}
}
tags = append(tags, strings.Fields(extraTags)...)
install(target, tags)
metalint(fastLinters, lintDirs)
metalintShort()
case "build":
var tags []string
if noupgrade {
tags = []string{"noupgrade"}
}
tags = append(tags, strings.Fields(extraTags)...)
build(target, tags)
metalint(fastLinters, lintDirs)
case "test":
test("./lib/...", "./cmd/...")
test("github.com/syncthing/syncthing/lib/...", "github.com/syncthing/syncthing/cmd/...")
case "bench":
bench("./lib/...", "./cmd/...")
bench("github.com/syncthing/syncthing/lib/...", "github.com/syncthing/syncthing/cmd/...")
case "assets":
rebuildAssets()
@@ -317,67 +310,41 @@ func runCommand(cmd string, target target) {
clean()
case "vet":
metalint(fastLinters, lintDirs)
metalintShort()
case "lint":
metalint(fastLinters, lintDirs)
metalintShort()
case "metalint":
metalint(fastLinters, lintDirs)
metalint(slowLinters, lintDirs)
metalint()
case "version":
fmt.Println(getVersion())
case "gopath":
gopath, err := temporaryBuildDir()
if err != nil {
log.Fatal(err)
}
fmt.Println(gopath)
default:
log.Fatalf("Unknown command %q", cmd)
}
}
// setGoPath sets GOPATH correctly with the assumption that we are
// in $GOPATH/src/github.com/syncthing/syncthing.
func setGoPath() {
cwd, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
gopath := filepath.Clean(filepath.Join(cwd, "../../../../"))
log.Println("GOPATH is", gopath)
os.Setenv("GOPATH", gopath)
}
func parseFlags() {
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH")
flag.StringVar(&goos, "goos", runtime.GOOS, "GOOS")
flag.BoolVar(&noupgrade, "no-upgrade", noupgrade, "Disable upgrade functionality")
flag.StringVar(&version, "version", getVersion(), "Set compiled in version string")
flag.BoolVar(&race, "race", race, "Use race detector")
flag.BoolVar(&noBuildGopath, "no-build-gopath", noBuildGopath, "Don't build GOPATH, assume it's OK")
flag.StringVar(&extraTags, "tags", extraTags, "Extra tags, space separated")
flag.StringVar(&installSuffix, "installsuffix", installSuffix, "Install suffix, optional")
flag.Parse()
}
func checkRequiredGoVersion() (float64, bool) {
re := regexp.MustCompile(`go(\d+\.\d+)`)
ver := runtime.Version()
if m := re.FindStringSubmatch(ver); len(m) == 2 {
vs := string(m[1])
// This is a standard go build. Verify that it's new enough.
f, err := strconv.ParseFloat(vs, 64)
if err != nil {
log.Printf("*** Couldn't parse Go version out of %q.\n*** This isn't known to work, proceed on your own risk.", vs)
return 0, false
}
if f < 1.5 {
log.Printf("*** Go version %.01f doesn't support the vendoring mechanism.\n*** Ensure correct dependencies in your $GOPATH.", f)
} else if f < minGoVersion {
log.Fatalf("*** Go version %.01f is less than required %.01f.\n*** This is known not to work, not proceeding.", f, minGoVersion)
}
return f, true
}
log.Printf("*** Unknown Go version %q.\n*** This isn't known to work, proceed on your own risk.", ver)
return 0, false
}
func setup() {
packages := []string{
"github.com/alecthomas/gometalinter",
@@ -401,7 +368,7 @@ func setup() {
runPrint("go", "get", "-u", pkg)
}
runPrint("go", "install", "-v", "./vendor/github.com/gogo/protobuf/protoc-gen-gogofast")
runPrint("go", "install", "-v", "github.com/syncthing/syncthing/vendor/github.com/gogo/protobuf/protoc-gen-gogofast")
}
func test(pkgs ...string) {
@@ -440,6 +407,9 @@ func install(target target, tags []string) {
if len(tags) > 0 {
args = append(args, "-tags", strings.Join(tags, " "))
}
if installSuffix != "" {
args = append(args, "-installsuffix", installSuffix)
}
if race {
args = append(args, "-race")
}
@@ -455,11 +425,14 @@ func build(target target, tags []string) {
tags = append(target.tags, tags...)
rmr(target.binaryName)
rmr(target.BinaryName())
args := []string{"build", "-i", "-v", "-ldflags", ldflags()}
if len(tags) > 0 {
args = append(args, "-tags", strings.Join(tags, " "))
}
if installSuffix != "" {
args = append(args, "-installsuffix", installSuffix)
}
if race {
args = append(args, "-race")
}
@@ -483,22 +456,20 @@ func buildTar(target target) {
build(target, tags)
if goos == "darwin" {
macosCodesign(target.binaryName)
macosCodesign(target.BinaryName())
}
for i := range target.archiveFiles {
target.archiveFiles[i].src = strings.Replace(target.archiveFiles[i].src, "{{binary}}", target.binaryName, 1)
target.archiveFiles[i].dst = strings.Replace(target.archiveFiles[i].dst, "{{binary}}", target.binaryName, 1)
target.archiveFiles[i].src = strings.Replace(target.archiveFiles[i].src, "{{binary}}", target.BinaryName(), 1)
target.archiveFiles[i].dst = strings.Replace(target.archiveFiles[i].dst, "{{binary}}", target.BinaryName(), 1)
target.archiveFiles[i].dst = name + "/" + target.archiveFiles[i].dst
}
tarGz(filename, target.archiveFiles)
log.Println(filename)
fmt.Println(filename)
}
func buildZip(target target) {
target.binaryName += ".exe"
name := archiveName(target)
filename := name + ".zip"
@@ -511,13 +482,13 @@ func buildZip(target target) {
build(target, tags)
for i := range target.archiveFiles {
target.archiveFiles[i].src = strings.Replace(target.archiveFiles[i].src, "{{binary}}", target.binaryName, 1)
target.archiveFiles[i].dst = strings.Replace(target.archiveFiles[i].dst, "{{binary}}", target.binaryName, 1)
target.archiveFiles[i].src = strings.Replace(target.archiveFiles[i].src, "{{binary}}", target.BinaryName(), 1)
target.archiveFiles[i].dst = strings.Replace(target.archiveFiles[i].dst, "{{binary}}", target.BinaryName(), 1)
target.archiveFiles[i].dst = name + "/" + target.archiveFiles[i].dst
}
zipFile(filename, target.archiveFiles)
log.Println(filename)
fmt.Println(filename)
}
func buildDeb(target target) {
@@ -537,8 +508,8 @@ func buildDeb(target target) {
build(target, []string{"noupgrade"})
for i := range target.installationFiles {
target.installationFiles[i].src = strings.Replace(target.installationFiles[i].src, "{{binary}}", target.binaryName, 1)
target.installationFiles[i].dst = strings.Replace(target.installationFiles[i].dst, "{{binary}}", target.binaryName, 1)
target.installationFiles[i].src = strings.Replace(target.installationFiles[i].src, "{{binary}}", target.BinaryName(), 1)
target.installationFiles[i].dst = strings.Replace(target.installationFiles[i].dst, "{{binary}}", target.BinaryName(), 1)
}
for _, af := range target.installationFiles {
@@ -551,16 +522,31 @@ func buildDeb(target target) {
debver := version
if strings.HasPrefix(debver, "v") {
debver = debver[1:]
// Debian interprets dashes as separator between main version and
// Debian package version, and thus thinks 0.14.26-rc.1 is better
// than just 0.14.26. This rectifies that.
debver = strings.Replace(debver, "-", "~", -1)
}
runPrint("fpm", "-t", "deb", "-s", "dir", "-C", "deb",
"-n", "syncthing", "-v", debver, "-a", debarch,
"--vendor", maintainer, "-m", maintainer,
"-d", "libc6",
"-d", "procps", // because postinst script
args := []string{
"-t", "deb",
"-s", "dir",
"-C", "deb",
"-n", target.debname,
"-v", debver,
"-a", debarch,
"-m", maintainer,
"--vendor", maintainer,
"--description", target.description,
"--url", "https://syncthing.net/",
"--description", "Open Source Continuous File Synchronization",
"--after-upgrade", "script/post-upgrade",
"--license", "MPL-2")
"--license", "MPL-2",
}
for _, dep := range target.debdeps {
args = append(args, "-d", dep)
}
if target.debpost != "" {
args = append(args, "--after-upgrade", target.debpost)
}
runPrint("fpm", args...)
}
func buildSnap(target target) {
@@ -585,7 +571,7 @@ func buildSnap(target target) {
snapver = snapver[1:]
}
snapgrade := "devel"
if matched, _ := regexp.MatchString(`^\d+\.\d+\.\d+$`, snapver); matched {
if matched, _ := regexp.MatchString(`^\d+\.\d+\.\d+(-rc.\d+)?$`, snapver); matched {
snapgrade = "stable"
}
err = tmpl.Execute(f, map[string]string{
@@ -601,21 +587,36 @@ func buildSnap(target target) {
runPrint("snapcraft")
}
// copyFile copies a file from src to dst, ensuring the containing directory
// exists. The permission bits are copied as well. If dst already exists and
// the contents are identical to src the modification time is not updated.
func copyFile(src, dst string, perm os.FileMode) error {
dstDir := filepath.Dir(dst)
os.MkdirAll(dstDir, 0755) // ignore error
srcFd, err := os.Open(src)
in, err := ioutil.ReadFile(src)
if err != nil {
return err
}
defer srcFd.Close()
dstFd, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, perm)
out, err := ioutil.ReadFile(dst)
if err != nil {
// The destination probably doesn't exist, we should create
// it.
goto copy
}
if bytes.Equal(in, out) {
// The permission bits may have changed without the contents
// changing so we always mirror them.
os.Chmod(dst, perm)
return nil
}
copy:
os.MkdirAll(filepath.Dir(dst), 0777)
if err := ioutil.WriteFile(dst, in, perm); err != nil {
return err
}
defer dstFd.Close()
_, err = io.Copy(dstFd, srcFd)
return err
return nil
}
func listFiles(dir string) []string {
@@ -670,7 +671,7 @@ func shouldRebuildAssets(target, srcdir string) bool {
}
func proto() {
runPrint("go", "generate", "./lib/...")
runPrint("go", "generate", "github.com/syncthing/syncthing/lib/...")
}
func translate() {
@@ -797,8 +798,9 @@ func getBranchSuffix() string {
}
branch = parts[len(parts)-1]
if branch == "master" {
// master builds are the default.
switch branch {
case "master", "release":
// these are not special
return ""
}
@@ -922,7 +924,10 @@ func tarGz(out string, files []archiveFile) {
log.Fatal(err)
}
gw := gzip.NewWriter(fd)
gw, err := gzip.NewWriterLevel(fd, gzip.BestCompression)
if err != nil {
log.Fatal(err)
}
tw := tar.NewWriter(gw)
for _, f := range files {
@@ -975,6 +980,21 @@ func zipFile(out string, files []archiveFile) {
zw := zip.NewWriter(fd)
var fw *flate.Writer
// Register the deflator.
zw.RegisterCompressor(zip.Deflate, func(out io.Writer) (io.WriteCloser, error) {
var err error
if fw == nil {
// Creating a flate compressor for every file is
// expensive, create one and reuse it.
fw, err = flate.NewWriter(out, flate.BestCompression)
} else {
fw.Reset(out)
}
return fw, err
})
for _, f := range files {
sf, err := os.Open(f.src)
if err != nil {
@@ -1050,59 +1070,129 @@ func macosCodesign(file string) {
}
}
func metalint(linters []string, dirs []string) {
ok := true
if isGometalinterInstalled() {
if !gometalinter(linters, dirs, lintExcludes...) {
ok = false
}
}
if !ok {
log.Fatal("Build succeeded, but there were lint warnings")
}
func metalint() {
lazyRebuildAssets()
runPrint("go", "test", "-run", "Metalint", "./meta")
}
func isGometalinterInstalled() bool {
if _, err := runError("gometalinter", "--disable-all"); err != nil {
log.Println("gometalinter is not installed")
return false
}
return true
func metalintShort() {
lazyRebuildAssets()
runPrint("go", "test", "-short", "-run", "Metalint", "./meta")
}
func gometalinter(linters []string, dirs []string, excludes ...string) bool {
params := []string{"--disable-all", "--concurrency=2", "--deadline=300s"}
func temporaryBuildDir() (string, error) {
// The base of our temp dir is "syncthing-xxxxxxxx" where the x:es
// are eight bytes from the sha256 of our working directory. We do
// this because we want a name in the global temp dir that doesn't
// conflict with someone else building syncthing on the same
// machine, yet is persistent between runs from the same source
// directory.
wd, err := os.Getwd()
if err != nil {
return "", err
}
hash := sha256.Sum256([]byte(wd))
base := fmt.Sprintf("syncthing-%x", hash[:4])
for _, linter := range linters {
params = append(params, "--enable="+linter)
// The temp dir is taken from $STTMPDIR if set, otherwise the system
// default (potentially infrluenced by $TMPDIR on unixes).
var tmpDir string
if t := os.Getenv("STTMPDIR"); t != "" {
tmpDir = t
} else {
tmpDir = os.TempDir()
}
for _, exclude := range excludes {
params = append(params, "--exclude="+exclude)
return filepath.Join(tmpDir, base), nil
}
func buildGOPATH(gopath string) error {
pkg := filepath.Join(gopath, "src/github.com/syncthing/syncthing")
dirs := []string{"cmd", "lib", "meta", "script", "test", "vendor"}
if debug {
t0 := time.Now()
log.Println("build temporary GOPATH in", gopath)
defer func() {
log.Println("... in", time.Since(t0))
}()
}
// Walk the sources and copy the files into the temporary GOPATH.
// Remember which files are supposed to be present so we can clean
// out everything else in the next step. The copyFile() step will
// only actually copy the file if it doesn't exist or the contents
// differ.
exists := map[string]struct{}{}
for _, dir := range dirs {
params = append(params, dir)
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
dst := filepath.Join(pkg, path)
exists[dst] = struct{}{}
if err := copyFile(path, dst, info.Mode()); err != nil {
return err
}
return nil
})
if err != nil {
return err
}
}
bs, _ := runError("gometalinter", params...)
// Walk the temporary GOPATH and remove any files that we wouldn't
// have copied there in the previous step.
nerr := 0
lines := make(map[string]struct{})
for _, line := range strings.Split(string(bs), "\n") {
if line == "" {
continue
filepath.Walk(pkg, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if _, ok := lines[line]; ok {
continue
if info.IsDir() {
return nil
}
log.Println(line)
if strings.Contains(line, "executable file not found") {
log.Println(` - Try "go run build.go setup" to install missing tools`)
if _, ok := exists[path]; !ok {
os.Remove(path)
}
lines[line] = struct{}{}
nerr++
}
return nil
})
return nerr == 0
return nil
}
func gopath() string {
if gopath := os.Getenv("GOPATH"); gopath != "" {
// The env var is set, use that.
return gopath
}
// Ask Go what it thinks.
bs, err := runError("go", "env", "GOPATH")
if err != nil {
return ""
}
// We got something. Check if we are in fact available in that location.
gopath := string(bs)
if _, err := os.Stat(filepath.Join(gopath, "src/github.com/syncthing/syncthing/build.go")); err == nil {
// That seems to be the gopath.
return gopath
}
// The gopath is not valid.
return ""
}
func (t target) BinaryName() string {
if goos == "windows" {
return t.binaryName + ".exe"
}
return t.binaryName
}

View File

@@ -61,9 +61,9 @@ case "${1:-default}" in
prerelease)
go run script/authors.go
build transifex
git add -A gui/default/assets/ lib/auto/
pushd man ; ./refresh.sh ; popd
git add -A man
git add -A gui man
git commit -m 'gui, man: Update docs & translations'
;;
noupgrade)
@@ -93,40 +93,6 @@ case "${1:-default}" in
done
;;
test-cov)
ulimit -t 600 &>/dev/null || true
ulimit -d 512000 &>/dev/null || true
ulimit -m 512000 &>/dev/null || true
echo "mode: set" > coverage.out
fail=0
# For every package in the repo
for dir in $(go list ./lib/... ./cmd/...) ; do
# run the tests
GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -coverprofile=profile.out $dir
if [ -f profile.out ] ; then
# and if there was test output, append it to coverage.out
grep -v "mode: " profile.out >> coverage.out
rm profile.out
fi
done
notCovered=$(egrep -c '\s0$' coverage.out)
total=$(wc -l coverage.out | awk '{print $1}')
coverPct=$(awk "BEGIN{print (1 - $notCovered / $total) * 100}")
echo "Total coverage is $coverPct%"
gocov convert coverage.out | gocov-xml > coverage.xml
# This is usually run from within Jenkins. If it is, we need to
# tweak the paths in coverage.xml so cobertura finds the
# source.
if [[ "${WORKSPACE:-default}" != "default" ]] ; then
sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
fi
;;
test-xunit)
ulimit -t 600 &>/dev/null || true
ulimit -d 512000 &>/dev/null || true

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// This doesn't build on Windows due to the Rusage stuff.

View File

@@ -1,10 +0,0 @@
syncthing-cli
=============
[![Latest Build](http://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing-cli.svg?style=flat-square)](http://build.syncthing.net/job/syncthing-cli/lastBuild/)
A CLI that talks to the Syncthing REST interface.
`go get github.com/syncthing/syncthing-cli`
Or download the [latest build](http://build.syncthing.net/job/syncthing-cli/lastSuccessfulBuild/artifact/).

View File

@@ -9,6 +9,7 @@ import (
"github.com/AudriusButkevicius/cli"
"github.com/syncthing/syncthing/lib/config"
"github.com/syncthing/syncthing/lib/fs"
)
func init() {
@@ -102,8 +103,10 @@ func foldersList(c *cli.Context) {
if !first {
fmt.Fprintln(writer)
}
fs := folder.Filesystem()
fmt.Fprintln(writer, "ID:\t", folder.ID, "\t")
fmt.Fprintln(writer, "Path:\t", folder.RawPath, "\t(directory)")
fmt.Fprintln(writer, "Path:\t", fs.URI(), "\t(directory)")
fmt.Fprintln(writer, "Path type:\t", fs.Type(), "\t(directory-type)")
fmt.Fprintln(writer, "Folder type:\t", folder.Type, "\t(type)")
fmt.Fprintln(writer, "Ignore permissions:\t", folder.IgnorePerms, "\t(permissions)")
fmt.Fprintln(writer, "Rescan interval in seconds:\t", folder.RescanIntervalS, "\t(rescan)")
@@ -124,8 +127,9 @@ func foldersAdd(c *cli.Context) {
abs, err := filepath.Abs(c.Args()[1])
die(err)
folder := config.FolderConfiguration{
ID: c.Args()[0],
RawPath: filepath.Clean(abs),
ID: c.Args()[0],
Path: filepath.Clean(abs),
FilesystemType: fs.FilesystemTypeBasic,
}
cfg.Folders = append(cfg.Folders, folder)
setConfig(c, cfg)
@@ -185,7 +189,9 @@ func foldersGet(c *cli.Context) {
}
switch arg {
case "directory":
fmt.Println(folder.RawPath)
fmt.Println(folder.Filesystem().URI())
case "directory-type":
fmt.Println(folder.Filesystem().Type())
case "type":
fmt.Println(folder.Type)
case "permissions":
@@ -197,7 +203,7 @@ func foldersGet(c *cli.Context) {
fmt.Println(folder.Versioning.Type)
}
default:
die("Invalid property: " + c.Args()[1] + "\nAvailable properties: directory, type, permissions, versioning, versioning-<key>")
die("Invalid property: " + c.Args()[1] + "\nAvailable properties: directory, directory-type, type, permissions, versioning, versioning-<key>")
}
return
}
@@ -220,7 +226,11 @@ func foldersSet(c *cli.Context) {
}
switch arg {
case "directory":
cfg.Folders[i].RawPath = val
cfg.Folders[i].Path = val
case "directory-type":
var fsType fs.FilesystemType
fsType.UnmarshalText([]byte(val))
cfg.Folders[i].FilesystemType = fsType
case "type":
var t config.FolderType
if err := t.UnmarshalText([]byte(val)); err != nil {

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -15,8 +15,6 @@ import (
"log"
"os"
"path/filepath"
"github.com/syncthing/syncthing/lib/symlinks"
)
func main() {
@@ -104,7 +102,7 @@ func startWalker(dir string, res chan<- fileInfo, abort <-chan struct{}) chan er
mode: os.ModeSymlink,
}
tgt, _, err := symlinks.Read(path)
tgt, err := os.Readlink(path)
if err != nil {
return err
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -1,14 +1,8 @@
stdiscosrv
==========
[![Latest Build](http://img.shields.io/jenkins/s/http/build.syncthing.net/stdiscosrv.svg?style=flat-square)](http://build.syncthing.net/job/stdiscosrv/lastBuild/)
This is the global discovery server for the `syncthing` project.
To get it, run `go get github.com/syncthing/stdiscosrv` or download the
[latest build](http://build.syncthing.net/job/stdiscosrv/lastSuccessfulBuild/artifact/)
from the build server.
Usage
-----

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,11 +2,12 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
import (
"context"
"flag"
"log"
"os"
@@ -70,7 +71,7 @@ func main() {
if *standardBlocks || blockSize < protocol.BlockSize {
blockSize = protocol.BlockSize
}
bs, err := scanner.Blocks(fd, blockSize, fi.Size(), nil, true)
bs, err := scanner.Blocks(context.TODO(), fd, blockSize, fi.Size(), nil, true)
if err != nil {
log.Fatal(err)
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -12,7 +12,7 @@ import (
"path/filepath"
"runtime"
"github.com/syncthing/syncthing/lib/osutil"
"github.com/syncthing/syncthing/lib/fs"
)
func nulString(bs []byte) string {
@@ -33,7 +33,7 @@ func defaultConfigDir() string {
return filepath.Join(os.Getenv("AppData"), "Syncthing")
case "darwin":
dir, err := osutil.ExpandTilde("~/Library/Application Support/Syncthing")
dir, err := fs.ExpandTilde("~/Library/Application Support/Syncthing")
if err != nil {
log.Fatal(err)
}
@@ -43,7 +43,7 @@ func defaultConfigDir() string {
if xdgCfg := os.Getenv("XDG_CONFIG_HOME"); xdgCfg != "" {
return filepath.Join(xdgCfg, "syncthing")
}
dir, err := osutil.ExpandTilde("~/.config/syncthing")
dir, err := fs.ExpandTilde("~/.config/syncthing")
if err != nil {
log.Fatal(err)
}

View File

@@ -1,16 +1,19 @@
# relaypoolsrv
[![Latest Build](http://img.shields.io/jenkins/s/http/build.syncthing.net/relaypoolsrv.svg?style=flat-square)](http://build.syncthing.net/job/relaypoolsrv/lastBuild/)
This is the relay pool server for the `syncthing` project, which allows
community hosted [relaysrv](https://github.com/syncthing/relaysrv)'s to join
the public pool.
This is the relay pool server for the `syncthing` project, which allows community hosted [relaysrv](https://github.com/syncthing/relaysrv)'s to join the public pool.
Servers that join the pool are then advertised to users of `syncthing` as
potential connection points for those who are unable to connect directly due
to NAT or firewall issues.
Servers that join the pool are then advertised to users of `syncthing` as potential connection points for those who are unable to connect directly due to NAT or firewall issues.
There is very little reason why you'd want to run this yourself, as `relaypoolsrv` is just used for announcement and lookup of public relay servers. If you are looking to setup a private or a public relay, please check the documentation for [relaysrv](https://github.com/syncthing/relaysrv), which also explains how to join the default public pool.
If you still want to run it, you can run `go get github.com/syncthing/relaypoolsrv` download it or download the
[latest build](http://build.syncthing.net/job/relaypoolsrv/lastSuccessfulBuild/artifact/)
from the build server.
There is very little reason why you'd want to run this yourself, as
`relaypoolsrv` is just used for announcement and lookup of public relay
servers. If you are looking to setup a private or a public relay, please
check the documentation for
[relaysrv](https://github.com/syncthing/relaysrv), which also explains how
to join the default public pool.
See `relaypoolsrv -help` for configuration options.

View File

@@ -2,15 +2,15 @@
<html lang="en" ng-app="syncthing" ng-controller="relayDataController">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="description" content=""/>
<meta name="author" content=""/>
<title>Relay stats</title>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css"/>
<style>
#map {
@@ -36,9 +36,9 @@
<body class="ng-cloak">
<div class="container">
<h1>Relay Pool Data</h2>
<h1>Relay Pool Data</h1>
<div ng-if="relays === undefined" class="text-center">
<img src="//cdnjs.cloudflare.com/ajax/libs/galleriffic/2.0.1/css/loader.gif"/>
<img src="//cdnjs.cloudflare.com/ajax/libs/galleriffic/2.0.1/css/loader.gif" alt=""/>
<p>Please wait while we gather data</p>
</div>
<div>
@@ -48,7 +48,7 @@
</p>
</div>
<div id="map"></div> <!-- Can't hide the map, otherwise it freaks out -->
<p>The circle size represents how much bytes the relay transfered relative to other relays</p>
<p>The circle size represents how much bytes the relay transferred relative to other relays</p>
</div>
<div>
<table class="table table-striped table-condensed table">
@@ -138,7 +138,7 @@
</tr>
</thead>
<tbody>
<tr ng-repeat="relay in relays | orderBy:sortType:sortReverse:sortCompare">
<tr ng-repeat="relay in relays | orderBy:sortType:sortReverse:sortCompare" ng-mouseover="relay.showMarker()" ng-mouseleave="relay.hideMarker()">
<td>{{ relay.address }}</td>
<td ng-if="relay.status === undefined" colspan="11" class="text-center">Looking up...</td>
<td ng-if-start="relay.status !== undefined">{{ relay.status.numActiveSessions }}</td>
@@ -184,10 +184,10 @@
</div>
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="//maps.googleapis.com/maps/api/js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js"></script>
</body>
<script>
@@ -307,13 +307,16 @@
content: $compile($scope.tooltipTemplate)(scope)[0],
});
relay.marker.addListener('mouseover', function() {
relay.showMarker = function() {
relay.marker.info.open($scope.map, relay.marker);
});
}
relay.marker.addListener('mouseout', function() {
relay.hideMarker = function() {
relay.marker.info.close();
});
}
relay.marker.addListener('mouseover', relay.showMarker);
relay.marker.addListener('mouseout', relay.hideMarker);
$scope.mapBounds.extend(relay.marker.position);
}
@@ -392,12 +395,12 @@
<span ng-if="relay.status.options['global-rate'] != undefined">
<span ng-if="relay.status.options['global-rate'] > 0">Global rate limit: {{ relay.status.options['global-rate'] | bytes }}/s</span>
<span ng-if="relay.status.options['global-rate'] == 0">Global rate limit: unlimited</span>
</br>
<br/>
</span>
<span ng-if="relay.status.options['per-session-rate'] != undefined">
<span ng-if="relay.status.options['per-session-rate'] > 0">Session rate limit: {{ relay.status.options['per-session-rate'] | bytes }}/s</span>
<span ng-if="relay.status.options['per-session-rate'] == 0">Session rate limit: unlimited</span>
</br>
<br/>
</span>
</div>
<div ng-if="!relay.status">

View File

@@ -1,18 +1,12 @@
strelaysrv
==========
[![Latest Build](http://img.shields.io/jenkins/s/http/build.syncthing.net/strelaysrv.svg?style=flat-square)](http://build.syncthing.net/job/strelaysrv/lastBuild/)
This is the relay server for the `syncthing` project.
To get it, run `go get github.com/syncthing/syncthing/cmd/strelaysrv` or download the
[latest build](http://build.syncthing.net/job/strelaysrv/lastSuccessfulBuild/artifact/)
from the build server.
:exclamation:Warnings:exclamation: - Read or regret
-----
By default, all relay servers will join to the default public relay pool, which means that the relay server will be availble for public use, and **will consume your bandwidth** helping others to connect.
By default, all relay servers will join to the default public relay pool, which means that the relay server will be available for public use, and **will consume your bandwidth** helping others to connect.
If you wish to disable this behaviour, please specify the `-pools=""` argument.

View File

@@ -59,6 +59,13 @@ func listener(proto, addr string, config *tls.Config) {
func protocolConnectionHandler(tcpConn net.Conn, config *tls.Config) {
conn := tls.Server(tcpConn, config)
if err := conn.SetDeadline(time.Now().Add(messageTimeout)); err != nil {
if debug {
log.Println("Weird error setting deadline:", err, "on", conn.RemoteAddr())
}
conn.Close()
return
}
err := conn.Handshake()
if err != nil {
if debug {
@@ -81,6 +88,7 @@ func protocolConnectionHandler(tcpConn net.Conn, config *tls.Config) {
conn.Close()
return
}
conn.SetDeadline(time.Time{})
id := syncthingprotocol.NewDeviceID(certs[0].Raw)
@@ -277,6 +285,7 @@ func sessionConnectionHandler(conn net.Conn) {
if debug {
log.Println("Weird error setting deadline:", err, "on", conn.RemoteAddr())
}
conn.Close()
return
}

View File

@@ -16,8 +16,16 @@ var rc *rateCalculator
func statusService(addr string) {
rc = newRateCalculator(360, 10*time.Second, &bytesProxied)
http.HandleFunc("/status", getStatus)
if err := http.ListenAndServe(addr, nil); err != nil {
handler := http.NewServeMux()
handler.HandleFunc("/status", getStatus)
srv := http.Server{
Addr: addr,
Handler: handler,
ReadTimeout: 15 * time.Second,
}
srv.SetKeepAlivesEnabled(false)
if err := srv.ListenAndServe(); err != nil {
log.Fatal(err)
}
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -20,13 +20,13 @@ func TestAuditService(t *testing.T) {
service := newAuditService(buf)
// Event sent before start, will not be logged
events.Default.Log(events.Ping, "the first event")
events.Default.Log(events.ConfigSaved, "the first event")
go service.Serve()
service.WaitForStart()
// Event that should end up in the audit log
events.Default.Log(events.Ping, "the second event")
events.Default.Log(events.ConfigSaved, "the second event")
// We need to give the events time to arrive, since the channels are buffered etc.
time.Sleep(10 * time.Millisecond)
@@ -35,7 +35,7 @@ func TestAuditService(t *testing.T) {
service.WaitForStop()
// This event should not be logged, since we have stopped.
events.Default.Log(events.Ping, "the third event")
events.Default.Log(events.ConfigSaved, "the third event")
result := string(buf.Bytes())
t.Log(result)

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -0,0 +1,13 @@
// Copyright (C) 2017 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/.
//+build noupgrade
package main
func init() {
BuildTags = append(BuildTags, "noupgrade")
}

View File

@@ -0,0 +1,13 @@
// Copyright (C) 2017 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/.
//+build race
package main
func init() {
BuildTags = append(BuildTags, "race")
}

59
cmd/syncthing/cpuusage.go Normal file
View File

@@ -0,0 +1,59 @@
// Copyright (C) 2017 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 main
import (
"math"
"time"
metrics "github.com/rcrowley/go-metrics"
)
const cpuTickRate = 5 * time.Second
type cpuService struct {
avg metrics.EWMA
stop chan struct{}
}
func newCPUService() *cpuService {
return &cpuService{
// 10 second average. Magic alpha value comes from looking at EWMA package
// definitions of EWMA1, EWMA5. The tick rate *must* be five seconds (hard
// coded in the EWMA package).
avg: metrics.NewEWMA(1 - math.Exp(-float64(cpuTickRate)/float64(time.Second)/10.0)),
stop: make(chan struct{}),
}
}
func (s *cpuService) Serve() {
// Initialize prevUsage to an actual value returned by cpuUsage
// instead of zero, because at least Windows returns a huge negative
// number here that then slowly increments...
prevUsage := cpuUsage()
ticker := time.NewTicker(cpuTickRate)
defer ticker.Stop()
for {
select {
case <-ticker.C:
curUsage := cpuUsage()
s.avg.Update(int64((curUsage - prevUsage) / time.Millisecond))
prevUsage = curUsage
s.avg.Tick()
case <-s.stop:
return
}
}
}
func (s *cpuService) Stop() {
close(s.stop)
}
func (s *cpuService) Rate() float64 {
return s.avg.Rate()
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
//+build solaris
@@ -59,40 +59,20 @@ type prusage_t struct {
}
func solarisPrusage(pid int, rusage *prusage_t) error {
fd, err := os.Open(fmt.Sprintf("/proc/%d/usage", pid))
var procFile = fmt.Sprintf("/proc/%d/usage", os.Getpid())
func cpuUsage() time.Duration {
fd, err := os.Open(procFile)
if err != nil {
return err
return 0
}
var rusage prusage_t
err = binary.Read(fd, binary.LittleEndian, rusage)
fd.Close()
return err
}
func init() {
go trackCPUUsage()
}
func trackCPUUsage() {
var prevUsage int64
var prevTime = time.Now().UnixNano()
var rusage prusage_t
var pid = os.Getpid()
for range time.NewTicker(time.Second).C {
err := solarisPrusage(pid, &rusage)
if err != nil {
l.Warnln("getting prusage:", err)
continue
}
curTime := time.Now().UnixNano()
timeDiff := curTime - prevTime
curUsage := rusage.Pr_utime.Nano() + rusage.Pr_stime.Nano()
usageDiff := curUsage - prevUsage
cpuUsageLock.Lock()
copy(cpuUsagePercent[1:], cpuUsagePercent[0:])
cpuUsagePercent[0] = 100 * float64(usageDiff) / float64(timeDiff)
cpuUsageLock.Unlock()
prevTime = curTime
prevUsage = curUsage
if err != nil {
return 0
}
return time.Duration(rusage.Pr_utime.Nano() + rusage.Pr_stime.Nano())
}

View File

@@ -0,0 +1,18 @@
// Copyright (C) 2014 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/.
//+build !windows,!solaris
package main
import "syscall"
import "time"
func cpuUsage() time.Duration {
var rusage syscall.Rusage
syscall.Getrusage(syscall.RUSAGE_SELF, &rusage)
return time.Duration(rusage.Utime.Nano() + rusage.Stime.Nano())
}

View File

@@ -0,0 +1,27 @@
// Copyright (C) 2014 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/.
//+build windows
package main
import "syscall"
import "time"
func cpuUsage() time.Duration {
handle, err := syscall.GetCurrentProcess()
if err != nil {
return 0
}
defer syscall.CloseHandle(handle)
var ctime, etime, ktime, utime syscall.Filetime
if err := syscall.GetProcessTimes(handle, &ctime, &etime, &ktime, &utime); err != nil {
return 0
}
return time.Duration(ktime.Nanoseconds() + utime.Nanoseconds())
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -28,9 +28,9 @@ import (
"github.com/syncthing/syncthing/lib/db"
"github.com/syncthing/syncthing/lib/discover"
"github.com/syncthing/syncthing/lib/events"
"github.com/syncthing/syncthing/lib/fs"
"github.com/syncthing/syncthing/lib/logger"
"github.com/syncthing/syncthing/lib/model"
"github.com/syncthing/syncthing/lib/osutil"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/rand"
"github.com/syncthing/syncthing/lib/stats"
@@ -45,6 +45,12 @@ var (
startTime = time.Now()
)
const (
defaultEventMask = events.AllEvents &^ events.LocalChangeDetected &^ events.RemoteChangeDetected
diskEventMask = events.LocalChangeDetected | events.RemoteChangeDetected
eventSubBufferSize = 1000
)
type apiService struct {
id protocol.DeviceID
cfg configIntf
@@ -52,8 +58,8 @@ type apiService struct {
httpsKeyFile string
statics *staticsServer
model modelIntf
eventSub events.BufferedSubscription
diskEventSub events.BufferedSubscription
eventSubs map[events.EventType]events.BufferedSubscription
eventSubsMut sync.Mutex
discoverer discover.CachingMux
connectionsService connectionsIntf
fss *folderSummaryService
@@ -62,6 +68,7 @@ type apiService struct {
configChanged chan struct{} // signals intentional listener close due to config change
started chan string // signals startup complete by sending the listener address, for testing only
startedOnce chan struct{} // the service has started successfully at least once
cpu rater
guiErrors logger.Recorder
systemLog logger.Recorder
@@ -104,6 +111,7 @@ type configIntf interface {
Folders() map[string]config.FolderConfiguration
Devices() map[protocol.DeviceID]config.DeviceConfiguration
SetDevice(config.DeviceConfiguration) error
SetDevices([]config.DeviceConfiguration) error
Save() error
ListenAddresses() []string
RequiresRestart() bool
@@ -113,16 +121,23 @@ type connectionsIntf interface {
Status() map[string]interface{}
}
func newAPIService(id protocol.DeviceID, cfg configIntf, httpsCertFile, httpsKeyFile, assetDir string, m modelIntf, eventSub events.BufferedSubscription, diskEventSub events.BufferedSubscription, discoverer discover.CachingMux, connectionsService connectionsIntf, errors, systemLog logger.Recorder) *apiService {
type rater interface {
Rate() float64
}
func newAPIService(id protocol.DeviceID, cfg configIntf, httpsCertFile, httpsKeyFile, assetDir string, m modelIntf, defaultSub, diskSub events.BufferedSubscription, discoverer discover.CachingMux, connectionsService connectionsIntf, errors, systemLog logger.Recorder, cpu rater) *apiService {
service := &apiService{
id: id,
cfg: cfg,
httpsCertFile: httpsCertFile,
httpsKeyFile: httpsKeyFile,
statics: newStaticsServer(cfg.GUI().Theme, assetDir),
model: m,
eventSub: eventSub,
diskEventSub: diskEventSub,
id: id,
cfg: cfg,
httpsCertFile: httpsCertFile,
httpsKeyFile: httpsKeyFile,
statics: newStaticsServer(cfg.GUI().Theme, assetDir),
model: m,
eventSubs: map[events.EventType]events.BufferedSubscription{
defaultEventMask: defaultSub,
diskEventMask: diskSub,
},
eventSubsMut: sync.NewMutex(),
discoverer: discoverer,
connectionsService: connectionsService,
systemConfigMut: sync.NewMutex(),
@@ -131,6 +146,7 @@ func newAPIService(id protocol.DeviceID, cfg configIntf, httpsCertFile, httpsKey
startedOnce: make(chan struct{}),
guiErrors: errors,
systemLog: systemLog,
cpu: cpu,
}
return service
@@ -233,8 +249,8 @@ func (s *apiService) Serve() {
getRestMux.HandleFunc("/rest/db/need", s.getDBNeed) // folder [perpage] [page]
getRestMux.HandleFunc("/rest/db/status", s.getDBStatus) // folder
getRestMux.HandleFunc("/rest/db/browse", s.getDBBrowse) // folder [prefix] [dirsonly] [levels]
getRestMux.HandleFunc("/rest/events", s.getIndexEvents) // since [limit]
getRestMux.HandleFunc("/rest/events/disk", s.getDiskEvents) // since [limit]
getRestMux.HandleFunc("/rest/events", s.getIndexEvents) // [since] [limit] [timeout] [events]
getRestMux.HandleFunc("/rest/events/disk", s.getDiskEvents) // [since] [limit] [timeout]
getRestMux.HandleFunc("/rest/stats/device", s.getDeviceStats) // -
getRestMux.HandleFunc("/rest/stats/folder", s.getFolderStats) // -
getRestMux.HandleFunc("/rest/svc/deviceid", s.getDeviceID) // id
@@ -269,8 +285,8 @@ func (s *apiService) Serve() {
postRestMux.HandleFunc("/rest/system/restart", s.postSystemRestart) // -
postRestMux.HandleFunc("/rest/system/shutdown", s.postSystemShutdown) // -
postRestMux.HandleFunc("/rest/system/upgrade", s.postSystemUpgrade) // -
postRestMux.HandleFunc("/rest/system/pause", s.makeDevicePauseHandler(true)) // device
postRestMux.HandleFunc("/rest/system/resume", s.makeDevicePauseHandler(false)) // device
postRestMux.HandleFunc("/rest/system/pause", s.makeDevicePauseHandler(true)) // [device]
postRestMux.HandleFunc("/rest/system/resume", s.makeDevicePauseHandler(false)) // [device]
postRestMux.HandleFunc("/rest/system/debug", s.postSystemDebug) // [enable] [disable]
// Debug endpoints, not for general use
@@ -343,7 +359,7 @@ func (s *apiService) Serve() {
s.started <- listener.Addr().String()
}
// Indicate successfull initial startup, to ourselves and to interested
// Indicate successful initial startup, to ourselves and to interested
// listeners (i.e. the thing that starts the browser).
select {
case <-s.startedOnce:
@@ -836,14 +852,11 @@ func (s *apiService) flushResponse(resp string, w http.ResponseWriter) {
f.Flush()
}
var cpuUsagePercent [10]float64 // The last ten seconds
var cpuUsageLock = sync.NewRWMutex()
func (s *apiService) getSystemStatus(w http.ResponseWriter, r *http.Request) {
var m runtime.MemStats
runtime.ReadMemStats(&m)
tilde, _ := osutil.ExpandTilde("~")
tilde, _ := fs.ExpandTilde("~")
res := make(map[string]interface{})
res["myID"] = myID.String()
res["goroutines"] = runtime.NumGoroutine()
@@ -865,14 +878,9 @@ func (s *apiService) getSystemStatus(w http.ResponseWriter, r *http.Request) {
}
res["connectionServiceStatus"] = s.connectionsService.Status()
cpuUsageLock.RLock()
var cpusum float64
for _, p := range cpuUsagePercent {
cpusum += p
}
cpuUsageLock.RUnlock()
res["cpuPercent"] = cpusum / float64(len(cpuUsagePercent)) / float64(runtime.NumCPU())
// cpuUsage.Rate() is in milliseconds per second, so dividing by ten
// gives us percent
res["cpuPercent"] = s.cpu.Rate() / 10 / float64(runtime.NumCPU())
res["pathSeparator"] = string(filepath.Separator)
res["uptime"] = int(time.Since(startTime).Seconds())
res["startTime"] = startTime
@@ -968,7 +976,9 @@ func (s *apiService) getRandomString(w http.ResponseWriter, r *http.Request) {
func (s *apiService) getDBIgnores(w http.ResponseWriter, r *http.Request) {
qs := r.URL.Query()
ignores, patterns, err := s.model.GetIgnores(qs.Get("folder"))
folder := qs.Get("folder")
ignores, patterns, err := s.model.GetIgnores(folder)
if err != nil {
http.Error(w, err.Error(), 500)
return
@@ -1008,20 +1018,29 @@ func (s *apiService) postDBIgnores(w http.ResponseWriter, r *http.Request) {
func (s *apiService) getIndexEvents(w http.ResponseWriter, r *http.Request) {
s.fss.gotEventRequest()
s.getEvents(w, r, s.eventSub)
mask := s.getEventMask(r.URL.Query().Get("events"))
sub := s.getEventSub(mask)
s.getEvents(w, r, sub)
}
func (s *apiService) getDiskEvents(w http.ResponseWriter, r *http.Request) {
s.getEvents(w, r, s.diskEventSub)
sub := s.getEventSub(diskEventMask)
s.getEvents(w, r, sub)
}
func (s *apiService) getEvents(w http.ResponseWriter, r *http.Request, eventSub events.BufferedSubscription) {
qs := r.URL.Query()
sinceStr := qs.Get("since")
limitStr := qs.Get("limit")
timeoutStr := qs.Get("timeout")
since, _ := strconv.Atoi(sinceStr)
limit, _ := strconv.Atoi(limitStr)
timeout := defaultEventTimeout
if timeoutSec, timeoutErr := strconv.Atoi(timeoutStr); timeoutErr == nil && timeoutSec >= 0 { // 0 is a valid timeout
timeout = time.Duration(timeoutSec) * time.Second
}
// Flush before blocking, to indicate that we've received the request and
// that it should not be retried. Must set Content-Type header before
// flushing.
@@ -1029,7 +1048,8 @@ func (s *apiService) getEvents(w http.ResponseWriter, r *http.Request, eventSub
f := w.(http.Flusher)
f.Flush()
evs := eventSub.Since(since, nil)
// If there are no events available return an empty slice, as this gets serialized as `[]`
evs := eventSub.Since(since, []events.Event{}, timeout)
if 0 < limit && limit < len(evs) {
evs = evs[len(evs)-limit:]
}
@@ -1037,12 +1057,38 @@ func (s *apiService) getEvents(w http.ResponseWriter, r *http.Request, eventSub
sendJSON(w, evs)
}
func (s *apiService) getEventMask(evs string) events.EventType {
eventMask := defaultEventMask
if evs != "" {
eventList := strings.Split(evs, ",")
eventMask = 0
for _, ev := range eventList {
eventMask |= events.UnmarshalEventType(strings.TrimSpace(ev))
}
}
return eventMask
}
func (s *apiService) getEventSub(mask events.EventType) events.BufferedSubscription {
s.eventSubsMut.Lock()
bufsub, ok := s.eventSubs[mask]
if !ok {
evsub := events.Default.Subscribe(mask)
bufsub = events.NewBufferedSubscription(evsub, eventSubBufferSize)
s.eventSubs[mask] = bufsub
}
s.eventSubsMut.Unlock()
return bufsub
}
func (s *apiService) getSystemUpgrade(w http.ResponseWriter, r *http.Request) {
if noUpgrade {
if noUpgradeFromEnv {
http.Error(w, upgrade.ErrUpgradeUnsupported.Error(), 500)
return
}
rel, err := upgrade.LatestRelease(s.cfg.Options().ReleasesURL, Version)
opts := s.cfg.Options()
rel, err := upgrade.LatestRelease(opts.ReleasesURL, Version, opts.UpgradeToPreReleases)
if err != nil {
http.Error(w, err.Error(), 500)
return
@@ -1083,7 +1129,8 @@ func (s *apiService) getLang(w http.ResponseWriter, r *http.Request) {
}
func (s *apiService) postSystemUpgrade(w http.ResponseWriter, r *http.Request) {
rel, err := upgrade.LatestRelease(s.cfg.Options().ReleasesURL, Version)
opts := s.cfg.Options()
rel, err := upgrade.LatestRelease(opts.ReleasesURL, Version, opts.UpgradeToPreReleases)
if err != nil {
l.Warnln("getting latest release:", err)
http.Error(w, err.Error(), 500)
@@ -1109,19 +1156,31 @@ func (s *apiService) makeDevicePauseHandler(paused bool) http.HandlerFunc {
var qs = r.URL.Query()
var deviceStr = qs.Get("device")
device, err := protocol.DeviceIDFromString(deviceStr)
if err != nil {
http.Error(w, err.Error(), 500)
return
var cfgs []config.DeviceConfiguration
if deviceStr == "" {
for _, cfg := range s.cfg.Devices() {
cfg.Paused = paused
cfgs = append(cfgs, cfg)
}
} else {
device, err := protocol.DeviceIDFromString(deviceStr)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
cfg, ok := s.cfg.Devices()[device]
if !ok {
http.Error(w, "not found", http.StatusNotFound)
return
}
cfg.Paused = paused
cfgs = append(cfgs, cfg)
}
cfg, ok := s.cfg.Devices()[device]
if !ok {
http.Error(w, "not found", http.StatusNotFound)
}
cfg.Paused = paused
if err := s.cfg.SetDevice(cfg); err != nil {
if err := s.cfg.SetDevices(cfgs); err != nil {
http.Error(w, err.Error(), 500)
}
}
@@ -1131,18 +1190,17 @@ func (s *apiService) postDBScan(w http.ResponseWriter, r *http.Request) {
qs := r.URL.Query()
folder := qs.Get("folder")
if folder != "" {
subs := qs["sub"]
err := s.model.ScanFolderSubdirs(folder, subs)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
nextStr := qs.Get("next")
next, err := strconv.Atoi(nextStr)
if err == nil {
s.model.DelayScan(folder, time.Duration(next)*time.Second)
}
subs := qs["sub"]
err = s.model.ScanFolderSubdirs(folder, subs)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
} else {
errors := s.model.ScanFolders()
if len(errors) > 0 {
@@ -1201,23 +1259,35 @@ func (s *apiService) getPeerCompletion(w http.ResponseWriter, r *http.Request) {
func (s *apiService) getSystemBrowse(w http.ResponseWriter, r *http.Request) {
qs := r.URL.Query()
current := qs.Get("current")
// Default value or in case of error unmarshalling ends up being basic fs.
var fsType fs.FilesystemType
fsType.UnmarshalText([]byte(qs.Get("filesystem")))
if current == "" {
if roots, err := osutil.GetFilesystemRoots(); err == nil {
filesystem := fs.NewFilesystem(fsType, "")
if roots, err := filesystem.Roots(); err == nil {
sendJSON(w, roots)
} else {
http.Error(w, err.Error(), 500)
}
return
}
search, _ := osutil.ExpandTilde(current)
pathSeparator := string(os.PathSeparator)
search, _ := fs.ExpandTilde(current)
pathSeparator := string(fs.PathSeparator)
if strings.HasSuffix(current, pathSeparator) && !strings.HasSuffix(search, pathSeparator) {
search = search + pathSeparator
}
subdirectories, _ := osutil.Glob(search + "*")
searchDir := filepath.Dir(search)
searchFile := filepath.Base(search)
fs := fs.NewFilesystem(fsType, searchDir)
subdirectories, _ := fs.Glob(searchFile + "*")
ret := make([]string, 0, len(subdirectories))
for _, subdirectory := range subdirectories {
info, err := os.Stat(subdirectory)
info, err := fs.Stat(subdirectory)
if err == nil && info.IsDir() {
ret = append(ret, subdirectory+pathSeparator)
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -23,6 +23,7 @@ import (
"github.com/d4l3k/messagediff"
"github.com/syncthing/syncthing/lib/config"
"github.com/syncthing/syncthing/lib/events"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/sync"
"github.com/thejerf/suture"
@@ -70,7 +71,7 @@ func TestStopAfterBrokenConfig(t *testing.T) {
}
w := config.Wrap("/dev/null", cfg)
srv := newAPIService(protocol.LocalDeviceID, w, "../../test/h1/https-cert.pem", "../../test/h1/https-key.pem", "", nil, nil, nil, nil, nil, nil, nil)
srv := newAPIService(protocol.LocalDeviceID, w, "../../test/h1/https-cert.pem", "../../test/h1/https-key.pem", "", nil, nil, nil, nil, nil, nil, nil, nil)
srv.started = make(chan string)
sup := suture.NewSimple("test")
@@ -474,11 +475,12 @@ func startHTTP(cfg *mockedConfig) (string, error) {
connections := new(mockedConnections)
errorLog := new(mockedLoggerRecorder)
systemLog := new(mockedLoggerRecorder)
cpu := new(mockedCPUService)
addrChan := make(chan string)
// Instantiate the API service
svc := newAPIService(protocol.LocalDeviceID, cfg, httpsCertFile, httpsKeyFile, assetDir, model,
eventSub, diskEventSub, discoverer, connections, errorLog, systemLog)
eventSub, diskEventSub, discoverer, connections, errorLog, systemLog, cpu)
svc.started = addrChan
// Actually start the API service
@@ -924,3 +926,34 @@ func TestOptionsRequest(t *testing.T) {
t.Fatal("OPTIONS on /rest/system/status should return a 'Access-Control-Allow-Headers: Content-Type, X-API-KEY' header")
}
}
func TestEventMasks(t *testing.T) {
cfg := new(mockedConfig)
defSub := new(mockedEventSub)
diskSub := new(mockedEventSub)
svc := newAPIService(protocol.LocalDeviceID, cfg, "", "", "", nil, defSub, diskSub, nil, nil, nil, nil, nil)
if mask := svc.getEventMask(""); mask != defaultEventMask {
t.Errorf("incorrect default mask %x != %x", int64(mask), int64(defaultEventMask))
}
expected := events.FolderSummary | events.LocalChangeDetected
if mask := svc.getEventMask("FolderSummary,LocalChangeDetected"); mask != expected {
t.Errorf("incorrect parsed mask %x != %x", int64(mask), int64(expected))
}
expected = 0
if mask := svc.getEventMask("WeirdEvent,something else that doesn't exist"); mask != expected {
t.Errorf("incorrect parsed mask %x != %x", int64(mask), int64(expected))
}
if res := svc.getEventSub(defaultEventMask); res != defSub {
t.Errorf("should have returned the given default event sub")
}
if res := svc.getEventSub(diskEventMask); res != diskSub {
t.Errorf("should have returned the given disk event sub")
}
if res := svc.getEventSub(events.LocalIndexUpdated); res == nil || res == defSub || res == diskSub {
t.Errorf("should have returned a valid, non-default event sub")
}
}

View File

@@ -1,37 +0,0 @@
// Copyright (C) 2014 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 http://mozilla.org/MPL/2.0/.
//+build !windows,!solaris
package main
import (
"syscall"
"time"
)
func init() {
go trackCPUUsage()
}
func trackCPUUsage() {
var prevUsage int64
var prevTime = time.Now().UnixNano()
var rusage syscall.Rusage
for range time.NewTicker(time.Second).C {
syscall.Getrusage(syscall.RUSAGE_SELF, &rusage)
curTime := time.Now().UnixNano()
timeDiff := curTime - prevTime
curUsage := rusage.Utime.Nano() + rusage.Stime.Nano()
usageDiff := curUsage - prevUsage
cpuUsageLock.Lock()
copy(cpuUsagePercent[1:], cpuUsagePercent[0:])
cpuUsagePercent[0] = 100 * float64(usageDiff) / float64(timeDiff)
cpuUsageLock.Unlock()
prevTime = curTime
prevUsage = curUsage
}
}

View File

@@ -1,58 +0,0 @@
// Copyright (C) 2014 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 http://mozilla.org/MPL/2.0/.
//+build windows
package main
import (
"syscall"
"time"
)
func init() {
go trackCPUUsage()
}
func trackCPUUsage() {
handle, err := syscall.GetCurrentProcess()
if err != nil {
l.Warnln("Cannot track CPU usage:", err)
return
}
var ctime, etime, ktime, utime syscall.Filetime
err = syscall.GetProcessTimes(handle, &ctime, &etime, &ktime, &utime)
if err != nil {
l.Warnln("Cannot track CPU usage:", err)
return
}
prevTime := ctime.Nanoseconds()
prevUsage := ktime.Nanoseconds() + utime.Nanoseconds() // Always overflows
for range time.NewTicker(time.Second).C {
err := syscall.GetProcessTimes(handle, &ctime, &etime, &ktime, &utime)
if err != nil {
continue
}
curTime := time.Now().UnixNano()
timeDiff := curTime - prevTime
// This is sometimes 0, no clue why.
if timeDiff == 0 {
continue
}
curUsage := ktime.Nanoseconds() + utime.Nanoseconds()
usageDiff := curUsage - prevUsage
cpuUsageLock.Lock()
copy(cpuUsagePercent[1:], cpuUsagePercent[0:])
cpuUsagePercent[0] = 100 * float64(usageDiff) / float64(timeDiff)
cpuUsageLock.Unlock()
prevTime = curTime
prevUsage = curUsage
}
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -13,7 +13,7 @@ import (
"strings"
"time"
"github.com/syncthing/syncthing/lib/osutil"
"github.com/syncthing/syncthing/lib/fs"
)
type locationEnum string
@@ -65,7 +65,7 @@ func expandLocations() error {
dir = strings.Replace(dir, "${"+varName+"}", value, -1)
}
var err error
dir, err = osutil.ExpandTilde(dir)
dir, err = fs.ExpandTilde(dir)
if err != nil {
return err
}
@@ -86,7 +86,7 @@ func defaultConfigDir() string {
return filepath.Join(os.Getenv("AppData"), "Syncthing")
case "darwin":
dir, err := osutil.ExpandTilde("~/Library/Application Support/Syncthing")
dir, err := fs.ExpandTilde("~/Library/Application Support/Syncthing")
if err != nil {
l.Fatalln(err)
}
@@ -96,7 +96,7 @@ func defaultConfigDir() string {
if xdgCfg := os.Getenv("XDG_CONFIG_HOME"); xdgCfg != "" {
return filepath.Join(xdgCfg, "syncthing")
}
dir, err := osutil.ExpandTilde("~/.config/syncthing")
dir, err := fs.ExpandTilde("~/.config/syncthing")
if err != nil {
l.Fatalln(err)
}
@@ -106,7 +106,7 @@ func defaultConfigDir() string {
// homeDir returns the user's home directory, or dies trying.
func homeDir() string {
home, err := osutil.ExpandTilde("~")
home, err := fs.ExpandTilde("~")
if err != nil {
l.Fatalln(err)
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -37,15 +37,16 @@ import (
"github.com/syncthing/syncthing/lib/dialer"
"github.com/syncthing/syncthing/lib/discover"
"github.com/syncthing/syncthing/lib/events"
"github.com/syncthing/syncthing/lib/fs"
"github.com/syncthing/syncthing/lib/logger"
"github.com/syncthing/syncthing/lib/model"
"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/symlinks"
"github.com/syncthing/syncthing/lib/tlsutil"
"github.com/syncthing/syncthing/lib/upgrade"
"github.com/syncthing/syncthing/lib/weakhash"
"github.com/thejerf/suture"
@@ -60,8 +61,10 @@ var (
BuildHost = "unknown"
BuildUser = "unknown"
IsRelease bool
IsCandidate bool
IsBeta bool
LongVersion string
BuildTags []string
allowedVersionExp = regexp.MustCompile(`^v\d+\.\d+\.\d+(-[a-z0-9]+)*(\.\d+)*(\+\d+-g[0-9a-f]+)?(-[^\s]+)?$`)
)
@@ -78,7 +81,7 @@ const (
tlsDefaultCommonName = "syncthing"
httpsRSABits = 2048
bepRSABits = 0 // 384 bit ECDSA used instead
pingEventInterval = time.Minute
defaultEventTimeout = time.Minute
maxSystemErrors = 5
initialSystemLog = 10
maxSystemLog = 250
@@ -98,15 +101,26 @@ func init() {
l.Fatalf("Invalid version string %q;\n\tdoes not match regexp %v", Version, allowedVersionExp)
}
}
}
// Check for a clean release build. A release is something like "v0.1.2",
// with an optional suffix of letters and dot separated numbers like
// "-beta3.47". If there's more stuff, like a plus sign and a commit hash
// and so on, then it's not a release. If there's a dash anywhere in
// there, it's some kind of beta or prerelease version.
func setBuildMetadata() {
// Check for a clean release build. A release is something like
// "v0.1.2", with an optional suffix of letters and dot separated
// numbers like "-beta3.47". If there's more stuff, like a plus sign and
// a commit hash and so on, then it's not a release. If it has a dash in
// it, it's some sort of beta, release candidate or special build. If it
// has "-rc." in it, like "v0.14.35-rc.42", then it's a candidate build.
//
// So, every build that is not a stable release build has IsBeta = true.
// This is used to enable some extra debugging (the deadlock detector).
//
// Release candidate builds are also "betas" from this point of view and
// will have that debugging enabled. In addition, some features are
// forced for release candidates - auto upgrade, and usage reporting.
exp := regexp.MustCompile(`^v\d+\.\d+\.\d+(-[a-z]+[\d\.]+)?$`)
IsRelease = exp.MatchString(Version)
IsCandidate = strings.Contains(Version, "-rc.")
IsBeta = strings.Contains(Version, "-")
stamp, _ := strconv.Atoi(BuildStamp)
@@ -114,6 +128,10 @@ func init() {
date := BuildDate.UTC().Format("2006-01-02 15:04:05 MST")
LongVersion = fmt.Sprintf(`syncthing %s "%s" (%s %s-%s) %s@%s %s`, Version, Codename, runtime.Version(), runtime.GOOS, runtime.GOARCH, BuildUser, BuildHost, date)
if len(BuildTags) > 0 {
LongVersion = fmt.Sprintf("%s [%s]", LongVersion, strings.Join(BuildTags, ", "))
}
}
var (
@@ -207,9 +225,9 @@ The following are valid values for the STTRACE variable:
// Environment options
var (
noUpgrade = os.Getenv("STNOUPGRADE") != ""
innerProcess = os.Getenv("STNORESTART") != "" || os.Getenv("STMONITORED") != ""
noDefaultFolder = os.Getenv("STNODEFAULTFOLDER") != ""
noUpgradeFromEnv = os.Getenv("STNOUPGRADE") != ""
innerProcess = os.Getenv("STNORESTART") != "" || os.Getenv("STMONITORED") != ""
noDefaultFolder = os.Getenv("STNODEFAULTFOLDER") != ""
)
type RuntimeOptions struct {
@@ -252,7 +270,7 @@ func defaultRuntimeOptions() RuntimeOptions {
}
if os.Getenv("STTRACE") != "" {
options.logFlags = log.Ltime | log.Ldate | log.Lmicroseconds | log.Lshortfile
options.logFlags = logger.DebugFlags
}
if runtime.GOOS != "windows" {
@@ -308,6 +326,8 @@ func parseCommandLineOptions() RuntimeOptions {
}
func main() {
setBuildMetadata()
options := parseCommandLineOptions()
l.SetFlags(options.logFlags)
@@ -334,6 +354,13 @@ func main() {
if options.confDir != "" {
// Not set as default above because the string can be really long.
if !filepath.IsAbs(options.confDir) {
var err error
options.confDir, err = filepath.Abs(options.confDir)
if err != nil {
l.Fatalln(err)
}
}
baseDirs["config"] = options.confDir
}
@@ -418,7 +445,7 @@ func openGUI() {
}
func generate(generateDir string) {
dir, err := osutil.ExpandTilde(generateDir)
dir, err := fs.ExpandTilde(generateDir)
if err != nil {
l.Fatalln("generate:", err)
}
@@ -481,8 +508,8 @@ func debugFacilities() string {
func checkUpgrade() upgrade.Release {
cfg, _ := loadConfig()
releasesURL := cfg.Options().ReleasesURL
release, err := upgrade.LatestRelease(releasesURL, Version)
opts := cfg.Options()
release, err := upgrade.LatestRelease(opts.ReleasesURL, Version, opts.UpgradeToPreReleases)
if err != nil {
l.Fatalln("Upgrade:", err)
}
@@ -583,8 +610,8 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
// Event subscription for the API; must start early to catch the early
// events. The LocalChangeDetected event might overwhelm the event
// receiver in some situations so we will not subscribe to it here.
apiSub := events.NewBufferedSubscription(events.Default.Subscribe(events.AllEvents&^events.LocalChangeDetected&^events.RemoteChangeDetected), 1000)
diskSub := events.NewBufferedSubscription(events.Default.Subscribe(events.LocalChangeDetected|events.RemoteChangeDetected|events.Ping), 1000)
defaultSub := events.NewBufferedSubscription(events.Default.Subscribe(defaultEventMask), eventSubBufferSize)
diskSub := events.NewBufferedSubscription(events.Default.Subscribe(diskEventMask), eventSubBufferSize)
if len(os.Getenv("GOMAXPROCS")) == 0 {
runtime.GOMAXPROCS(runtime.NumCPU())
@@ -595,7 +622,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
// report the error if there is one.
osutil.MaximizeOpenFileLimit()
// Ensure that that we have a certificate and key.
// Ensure that we have a certificate and key.
cert, err := tls.LoadX509KeyPair(locations[locCertFile], locations[locKeyFile])
if err != nil {
l.Infof("Generating ECDSA key and certificate for %s...", tlsDefaultCommonName)
@@ -613,8 +640,10 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
sha256.SelectAlgo()
sha256.Report()
perf := cpuBench(3, 150*time.Millisecond)
l.Infof("Actual hashing performance is %.02f MB/s", perf)
perfWithWeakHash := cpuBench(3, 150*time.Millisecond, true)
l.Infof("Hashing performance with weak hash is %.02f MB/s", perfWithWeakHash)
perfWithoutWeakHash := cpuBench(3, 150*time.Millisecond, false)
l.Infof("Hashing performance without weak hash is %.02f MB/s", perfWithoutWeakHash)
// Emit the Starting event, now that we know who we are.
@@ -666,8 +695,20 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
opts := cfg.Options()
if !opts.SymlinksEnabled {
symlinks.Supported = false
if opts.WeakHashSelectionMethod == config.WeakHashAuto {
if perfWithoutWeakHash*0.8 > perfWithWeakHash {
l.Infof("Weak hash disabled, as it has an unacceptable performance impact.")
weakhash.Enabled = false
} else {
l.Infof("Weak hash enabled, as it has an acceptable performance impact.")
weakhash.Enabled = true
}
} else if opts.WeakHashSelectionMethod == config.WeakHashNever {
l.Infof("Disabling weak hash")
weakhash.Enabled = false
} else if opts.WeakHashSelectionMethod == config.WeakHashAlways {
l.Infof("Enabling weak hash")
weakhash.Enabled = true
}
if (opts.MaxRecvKbps > 0 || opts.MaxSendKbps > 0) && !opts.LimitBandwidthInLan {
@@ -722,8 +763,12 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
// have been incorrectly ignore filtered.
ldb.DropDeltaIndexIDs()
}
if cfg.RawCopy().OriginalVersion < 19 {
// Converts old symlink types to new in the entire database.
ldb.ConvertSymlinkTypes()
}
m := model.NewModel(cfg, myID, myDeviceName(cfg), "syncthing", Version, ldb, protectedFiles)
m := model.NewModel(cfg, myID, "syncthing", Version, ldb, protectedFiles)
if t := os.Getenv("STDEADLOCKTIMEOUT"); len(t) > 0 {
it, err := strconv.Atoi(t)
@@ -743,6 +788,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
// Add and start folders
for _, folderCfg := range cfg.Folders() {
if folderCfg.Paused {
folderCfg.CreateRoot()
continue
}
m.AddFolder(folderCfg)
@@ -796,7 +842,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
// GUI
setupGUI(mainService, cfg, m, apiSub, diskSub, cachedDiscovery, connectionsService, errors, systemLog, runtimeOptions)
setupGUI(mainService, cfg, m, defaultSub, diskSub, cachedDiscovery, connectionsService, errors, systemLog, runtimeOptions)
if runtimeOptions.cpuProfile {
f, err := os.Create(fmt.Sprintf("cpu-%d.pprof", os.Getpid()))
@@ -812,20 +858,26 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
}
}
// Candidate builds always run with usage reporting.
if IsCandidate {
l.Infoln("Anonymous usage reporting is always enabled for candidate releases.")
opts.URAccepted = usageReportVersion
// Unique ID will be set and config saved below if necessary.
}
if opts.URAccepted > 0 && opts.URAccepted < usageReportVersion {
l.Infoln("Anonymous usage report has changed; revoking acceptance")
opts.URAccepted = 0
opts.URUniqueID = ""
cfg.SetOptions(opts)
}
if opts.URAccepted >= usageReportVersion {
if opts.URUniqueID == "" {
// Previously the ID was generated from the node ID. We now need
// to generate a new one.
opts.URUniqueID = rand.String(8)
cfg.SetOptions(opts)
cfg.Save()
}
if opts.URAccepted >= usageReportVersion && opts.URUniqueID == "" {
// Generate and save a new unique ID if it is missing.
opts.URUniqueID = rand.String(8)
cfg.SetOptions(opts)
cfg.Save()
}
// The usageReportingManager registers itself to listen to configuration
@@ -837,18 +889,38 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
go standbyMonitor()
}
// Candidate builds should auto upgrade. Make sure the option is set,
// unless we are in a build where it's disabled or the STNOUPGRADE
// environment variable is set.
if IsCandidate && !upgrade.DisabledByCompilation && !noUpgradeFromEnv {
l.Infoln("Automatic upgrade is always enabled for candidate releases.")
if opts.AutoUpgradeIntervalH == 0 || opts.AutoUpgradeIntervalH > 24 {
opts.AutoUpgradeIntervalH = 12
// Set the option into the config as well, as the auto upgrade
// loop expects to read a valid interval from there.
cfg.SetOptions(opts)
cfg.Save()
}
// We don't tweak the user's choice of upgrading to pre-releases or
// not, as otherwise they cannot step off the candidate channel.
}
if opts.AutoUpgradeIntervalH > 0 {
if noUpgrade {
if noUpgradeFromEnv {
l.Infof("No automatic upgrades; STNOUPGRADE environment variable defined.")
} else {
go autoUpgrade(cfg)
}
}
if isSuperUser() {
l.Warnln("Syncthing should not run as a privileged or system user. Please consider using a normal user account.")
}
events.Default.Log(events.StartupComplete, map[string]string{
"myID": myID.String(),
})
go generatePingEvents()
cleanConfigDirectory()
@@ -865,15 +937,6 @@ func syncthingMain(runtimeOptions RuntimeOptions) {
os.Exit(code)
}
func myDeviceName(cfg *config.Wrapper) string {
devices := cfg.Devices()
myName := devices[myID].Name
if myName == "" {
myName, _ = os.Hostname()
}
return myName
}
func setupSignalHandling() {
// Exit cleanly with "restarting" code on SIGHUP.
@@ -992,7 +1055,7 @@ func startAuditing(mainService *suture.Supervisor, auditFile string) {
l.Infoln("Audit log in", auditDest)
}
func setupGUI(mainService *suture.Supervisor, cfg *config.Wrapper, m *model.Model, apiSub events.BufferedSubscription, diskSub events.BufferedSubscription, discoverer discover.CachingMux, connectionsService *connections.Service, errors, systemLog logger.Recorder, runtimeOptions RuntimeOptions) {
func setupGUI(mainService *suture.Supervisor, cfg *config.Wrapper, m *model.Model, defaultSub, diskSub events.BufferedSubscription, discoverer discover.CachingMux, connectionsService *connections.Service, errors, systemLog logger.Recorder, runtimeOptions RuntimeOptions) {
guiCfg := cfg.GUI()
if !guiCfg.Enabled {
@@ -1003,13 +1066,16 @@ func setupGUI(mainService *suture.Supervisor, cfg *config.Wrapper, m *model.Mode
l.Warnln("Insecure admin access is enabled.")
}
api := newAPIService(myID, cfg, locations[locHTTPSCertFile], locations[locHTTPSKeyFile], runtimeOptions.assetDir, m, apiSub, diskSub, discoverer, connectionsService, errors, systemLog)
cpu := newCPUService()
mainService.Add(cpu)
api := newAPIService(myID, cfg, locations[locHTTPSCertFile], locations[locHTTPSKeyFile], runtimeOptions.assetDir, m, defaultSub, diskSub, discoverer, connectionsService, errors, systemLog, cpu)
cfg.Subscribe(api)
mainService.Add(api)
if cfg.Options().StartBrowser && !runtimeOptions.noBrowser && !runtimeOptions.stRestarting {
// Can potentially block if the utility we are invoking doesn't
// fork, and just execs, hence keep it in it's own routine.
// fork, and just execs, hence keep it in its own routine.
<-api.startedOnce
go openURL(guiCfg.URL())
}
@@ -1020,10 +1086,10 @@ func defaultConfig(myName string) config.Configuration {
if !noDefaultFolder {
l.Infoln("Default folder created and/or linked to new config")
defaultFolder = config.NewFolderConfiguration("default", locations[locDefFolder])
defaultFolder = config.NewFolderConfiguration("default", fs.FilesystemTypeBasic, locations[locDefFolder])
defaultFolder.Label = "Default Folder"
defaultFolder.RescanIntervalS = 60
defaultFolder.MinDiskFreePct = 1
defaultFolder.MinDiskFree = config.Size{Value: 1, Unit: "%"}
defaultFolder.Devices = []config.FolderDeviceConfiguration{{DeviceID: myID}}
defaultFolder.AutoNormalize = true
defaultFolder.MaxConflicts = -1
@@ -1062,13 +1128,6 @@ func defaultConfig(myName string) config.Configuration {
return newCfg
}
func generatePingEvents() {
for {
time.Sleep(pingEventInterval)
events.Default.Log(events.Ping, nil)
}
}
func resetDB() error {
return os.RemoveAll(locations[locDatabase])
}
@@ -1083,19 +1142,20 @@ func shutdown() {
stop <- exitSuccess
}
func ensureDir(dir string, mode os.FileMode) {
err := osutil.MkdirAll(dir, mode)
func ensureDir(dir string, mode fs.FileMode) {
fs := fs.NewFilesystem(fs.FilesystemTypeBasic, dir)
err := fs.MkdirAll(".", mode)
if err != nil {
l.Fatalln(err)
}
if fi, err := os.Stat(dir); err == nil {
if fi, err := fs.Stat("."); err == nil {
// Apprently the stat may fail even though the mkdirall passed. If it
// does, we'll just assume things are in order and let other things
// fail (like loading or creating the config...).
currentMode := fi.Mode() & 0777
if currentMode != mode {
err := os.Chmod(dir, mode)
err := fs.Chmod(".", mode)
// This can fail on crappy filesystems, nothing we can do about it.
if err != nil {
l.Warnln(err)
@@ -1159,7 +1219,15 @@ func autoUpgrade(cfg *config.Wrapper) {
case <-timer.C:
}
rel, err := upgrade.LatestRelease(cfg.Options().ReleasesURL, Version)
opts := cfg.Options()
checkInterval := time.Duration(opts.AutoUpgradeIntervalH) * time.Hour
if checkInterval < time.Hour {
// We shouldn't be here if AutoUpgradeIntervalH < 1, but for
// safety's sake.
checkInterval = time.Hour
}
rel, err := upgrade.LatestRelease(opts.ReleasesURL, Version, opts.UpgradeToPreReleases)
if err == upgrade.ErrUpgradeUnsupported {
events.Default.Unsubscribe(sub)
return
@@ -1168,13 +1236,13 @@ func autoUpgrade(cfg *config.Wrapper) {
// Don't complain too loudly here; we might simply not have
// internet connectivity, or the upgrade server might be down.
l.Infoln("Automatic upgrade:", err)
timer.Reset(time.Duration(cfg.Options().AutoUpgradeIntervalH) * time.Hour)
timer.Reset(checkInterval)
continue
}
if upgrade.CompareVersions(rel.Tag, Version) != upgrade.Newer {
// Skip equal, older or majorly newer (incompatible) versions
timer.Reset(time.Duration(cfg.Options().AutoUpgradeIntervalH) * time.Hour)
timer.Reset(checkInterval)
continue
}
@@ -1182,7 +1250,7 @@ func autoUpgrade(cfg *config.Wrapper) {
err = upgrade.To(rel)
if err != nil {
l.Warnln("Automatic upgrade:", err)
timer.Reset(time.Duration(cfg.Options().AutoUpgradeIntervalH) * time.Hour)
timer.Reset(checkInterval)
continue
}
events.Default.Unsubscribe(sub)
@@ -1210,22 +1278,22 @@ func cleanConfigDirectory() {
}
for pat, dur := range patterns {
pat = filepath.Join(baseDirs["config"], pat)
files, err := osutil.Glob(pat)
fs := fs.NewFilesystem(fs.FilesystemTypeBasic, baseDirs["config"])
files, err := fs.Glob(pat)
if err != nil {
l.Infoln("Cleaning:", err)
continue
}
for _, file := range files {
info, err := osutil.Lstat(file)
info, err := fs.Lstat(file)
if err != nil {
l.Infoln("Cleaning:", err)
continue
}
if time.Since(info.ModTime()) > dur {
if err = os.RemoveAll(file); err != nil {
if err = fs.RemoveAll(file); err != nil {
l.Infoln("Cleaning:", err)
} else {
l.Infoln("Cleaned away old file", filepath.Base(file))

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build solaris

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build freebsd openbsd dragonfly

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,13 +2,14 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
import (
"github.com/syncthing/syncthing/lib/config"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/util"
)
type mockedConfig struct {
@@ -24,7 +25,9 @@ func (c *mockedConfig) ListenAddresses() []string {
}
func (c *mockedConfig) RawCopy() config.Configuration {
return config.Configuration{}
cfg := config.Configuration{}
util.SetDefaults(&cfg.Options)
return cfg
}
func (c *mockedConfig) Options() config.OptionsConfiguration {
@@ -49,6 +52,10 @@ func (c *mockedConfig) SetDevice(config.DeviceConfiguration) error {
return nil
}
func (c *mockedConfig) SetDevices([]config.DeviceConfiguration) error {
return nil
}
func (c *mockedConfig) Save() error {
return nil
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -0,0 +1,13 @@
// Copyright (C) 2017 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 main
type mockedCPUService struct{}
func (*mockedCPUService) Rate() float64 {
return 42
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,14 +2,18 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
import "github.com/syncthing/syncthing/lib/events"
import (
"time"
"github.com/syncthing/syncthing/lib/events"
)
type mockedEventSub struct{}
func (s *mockedEventSub) Since(id int, into []events.Event) []events.Event {
func (s *mockedEventSub) Since(id int, into []events.Event, timeout time.Duration) []events.Event {
select {}
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -35,7 +35,6 @@ const (
)
func monitorMain(runtimeOptions RuntimeOptions) {
os.Setenv("STMONITORED", "yes")
l.SetPrefix("[monitor] ")
var dst io.Writer = os.Stdout
@@ -69,6 +68,8 @@ func monitorMain(runtimeOptions RuntimeOptions) {
sigHup := syscall.Signal(1)
signal.Notify(restartSign, sigHup)
childEnv := childEnv()
first := true
for {
if t := time.Since(restarts[0]); t < loopThreshold {
l.Warnf("%d restarts in %v; not retrying further", countRestarts, t)
@@ -79,6 +80,7 @@ func monitorMain(runtimeOptions RuntimeOptions) {
restarts[len(restarts)-1] = time.Now()
cmd := exec.Command(args[0], args[1:]...)
cmd.Env = childEnv
stderr, err := cmd.StderrPipe()
if err != nil {
@@ -96,10 +98,6 @@ func monitorMain(runtimeOptions RuntimeOptions) {
l.Fatalln(err)
}
// Let the next child process know that this is not the first time
// it's starting up.
os.Setenv("STRESTART", "yes")
stdoutMut.Lock()
stdoutFirstLines = make([]string, 0, 10)
stdoutLastLines = make([]string, 0, 50)
@@ -149,7 +147,6 @@ func monitorMain(runtimeOptions RuntimeOptions) {
// Restart the monitor process to release the .old
// binary as part of the upgrade process.
l.Infoln("Restarting monitor...")
os.Setenv("STNORESTART", "")
if err = restartMonitor(args); err != nil {
l.Warnln("Restart:", err)
}
@@ -161,6 +158,13 @@ func monitorMain(runtimeOptions RuntimeOptions) {
l.Infoln("Syncthing exited:", err)
time.Sleep(1 * time.Second)
if first {
// Let the next child process know that this is not the first time
// it's starting up.
childEnv = append(childEnv, "STRESTART=yes")
first = false
}
}
}
@@ -409,3 +413,19 @@ func (f *autoclosedFile) closerLoop() {
}
}
}
// Returns the desired child environment, properly filtered and added to.
func childEnv() []string {
var env []string
for _, str := range os.Environ() {
if strings.HasPrefix("STNORESTART=", str) {
continue
}
if strings.HasPrefix("STMONITORED=", str) {
continue
}
env = append(env, str)
}
env = append(env, "STMONITORED=yes")
return env
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build !windows

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build windows

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build !solaris,!windows

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -169,7 +169,7 @@ func (c *folderSummaryService) foldersToHandle() []string {
c.lastEventReqMut.Lock()
last := c.lastEventReq
c.lastEventReqMut.Unlock()
if time.Since(last) > pingEventInterval {
if time.Since(last) > defaultEventTimeout {
return nil
}

View File

@@ -0,0 +1,17 @@
// Copyright (C) 2017 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/.
// +build !windows
package main
import (
"os"
)
func isSuperUser() bool {
return os.Geteuid() == 0
}

View File

@@ -0,0 +1,41 @@
// Copyright (C) 2017 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 main
import "syscall"
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx
const securityLocalSystemRID = "S-1-5-18"
func isSuperUser() bool {
tok, err := syscall.OpenCurrentProcessToken()
if err != nil {
l.Debugln("OpenCurrentProcessToken:", err)
return false
}
defer tok.Close()
user, err := tok.GetTokenUser()
if err != nil {
l.Debugln("GetTokenUser:", err)
return false
}
if user.User.Sid == nil {
l.Debugln("sid is nil")
return false
}
sid, err := user.User.Sid.String()
if err != nil {
l.Debugln("Sid.String():", err)
return false
}
l.Debugf("SID: %q", sid)
return sid == securityLocalSystemRID
}

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
//+build go1.7

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main

View File

@@ -2,12 +2,13 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
import (
"bytes"
"context"
"crypto/rand"
"crypto/tls"
"encoding/json"
@@ -81,9 +82,10 @@ func (m *usageReportingManager) String() string {
// reportData returns the data to be sent in a usage report. It's used in
// various places, so not part of the usageReportingManager object.
func reportData(cfg configIntf, m modelIntf) map[string]interface{} {
opts := cfg.Options()
res := make(map[string]interface{})
res["urVersion"] = usageReportVersion
res["uniqueID"] = cfg.Options().URUniqueID
res["uniqueID"] = opts.URUniqueID
res["version"] = Version
res["longVersion"] = LongVersion
res["platform"] = runtime.GOOS + "-" + runtime.GOARCH
@@ -112,7 +114,8 @@ func reportData(cfg configIntf, m modelIntf) map[string]interface{} {
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
res["memoryUsageMiB"] = (mem.Sys - mem.HeapReleased) / 1024 / 1024
res["sha256Perf"] = cpuBench(5, 125*time.Millisecond)
res["sha256Perf"] = cpuBench(5, 125*time.Millisecond, false)
res["hashPerf"] = cpuBench(5, 125*time.Millisecond, true)
bytes, err := memorySize()
if err == nil {
@@ -188,7 +191,7 @@ func reportData(cfg configIntf, m modelIntf) map[string]interface{} {
res["deviceUses"] = deviceUses
defaultAnnounceServersDNS, defaultAnnounceServersIP, otherAnnounceServers := 0, 0, 0
for _, addr := range cfg.Options().GlobalAnnServers {
for _, addr := range opts.GlobalAnnServers {
if addr == "default" || addr == "default-v4" || addr == "default-v6" {
defaultAnnounceServersDNS++
} else {
@@ -196,8 +199,8 @@ func reportData(cfg configIntf, m modelIntf) map[string]interface{} {
}
}
res["announce"] = map[string]interface{}{
"globalEnabled": cfg.Options().GlobalAnnEnabled,
"localEnabled": cfg.Options().LocalAnnEnabled,
"globalEnabled": opts.GlobalAnnEnabled,
"localEnabled": opts.LocalAnnEnabled,
"defaultServersDNS": defaultAnnounceServersDNS,
"defaultServersIP": defaultAnnounceServersIP,
"otherServers": otherAnnounceServers,
@@ -218,10 +221,11 @@ func reportData(cfg configIntf, m modelIntf) map[string]interface{} {
"otherServers": otherRelayServers,
}
res["usesRateLimit"] = cfg.Options().MaxRecvKbps > 0 || cfg.Options().MaxSendKbps > 0
res["usesRateLimit"] = opts.MaxRecvKbps > 0 || opts.MaxSendKbps > 0
res["upgradeAllowedManual"] = !(upgrade.DisabledByCompilation || noUpgrade)
res["upgradeAllowedAuto"] = !(upgrade.DisabledByCompilation || noUpgrade) && cfg.Options().AutoUpgradeIntervalH > 0
res["upgradeAllowedManual"] = !(upgrade.DisabledByCompilation || noUpgradeFromEnv)
res["upgradeAllowedAuto"] = !(upgrade.DisabledByCompilation || noUpgradeFromEnv) && opts.AutoUpgradeIntervalH > 0
res["upgradeAllowedPre"] = !(upgrade.DisabledByCompilation || noUpgradeFromEnv) && opts.AutoUpgradeIntervalH > 0 && opts.UpgradeToPreReleases
return res
}
@@ -284,10 +288,14 @@ func (s *usageReportingService) Stop() {
}
// cpuBench returns CPU performance as a measure of single threaded SHA-256 MiB/s
func cpuBench(iterations int, duration time.Duration) float64 {
func cpuBench(iterations int, duration time.Duration, useWeakHash bool) float64 {
dataSize := 16 * protocol.BlockSize
bs := make([]byte, dataSize)
rand.Reader.Read(bs)
var perf float64
for i := 0; i < iterations; i++ {
if v := cpuBenchOnce(duration); v > perf {
if v := cpuBenchOnce(duration, useWeakHash, bs); v > perf {
perf = v
}
}
@@ -297,17 +305,13 @@ func cpuBench(iterations int, duration time.Duration) float64 {
var blocksResult []protocol.BlockInfo // so the result is not optimized away
func cpuBenchOnce(duration time.Duration) float64 {
dataSize := 16 * protocol.BlockSize
bs := make([]byte, dataSize)
rand.Reader.Read(bs)
func cpuBenchOnce(duration time.Duration, useWeakHash bool, bs []byte) float64 {
t0 := time.Now()
b := 0
for time.Since(t0) < duration {
r := bytes.NewReader(bs)
blocksResult, _ = scanner.Blocks(r, protocol.BlockSize, int64(dataSize), nil, true)
b += dataSize
blocksResult, _ = scanner.Blocks(context.TODO(), r, protocol.BlockSize, int64(len(bs)), nil, useWeakHash)
b += len(bs)
}
d := time.Since(t0)
return float64(int(float64(b)/d.Seconds()/(1<<20)*100)) / 100

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
package main
@@ -66,7 +66,7 @@ func (s *verboseService) WaitForStart() {
func (s *verboseService) formatEvent(ev events.Event) string {
switch ev.Type {
case events.Ping, events.DownloadProgress, events.LocalIndexUpdated:
case events.DownloadProgress, events.LocalIndexUpdated:
// Skip
return ""

View File

@@ -2,7 +2,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
// +build ignore

View File

@@ -5,4 +5,4 @@ This directory contains configuration files for running Syncthing under the
systemd user service. For further documentation take a look at the [systemd
section][1] on https://docs.syncthing.net.
[1]: https://docs.syncthing.net/users/autostart.html#systemd
[1]: https://docs.syncthing.net/users/autostart.html#using-systemd

View File

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

View File

@@ -5,7 +5,7 @@ the "Upstart" service manager on Linux. To have syncthing start when you login
place "user/syncthing.conf" in the "/home/[username]/.config/upstart/" folder.
To have syncthing start when the system boots place "system/syncthing.conf"
in the "/etc/init/" folder.
To manualy start syncthing via Upstart when using the system configuration use:
To manually start syncthing via Upstart when using the system configuration use:
```
sudo initctl start syncthing

View File

@@ -3,7 +3,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
*/
@@ -100,9 +100,20 @@ ul+h5 {
white-space: nowrap;
}
/* Removing text decoration on anchor link hover pull request: #4135 */
.table td.small-data span a:hover {
text-decoration: none;
}
table.table-condensed {
table-layout: fixed;
}
table.table-dynamic {
word-wrap: break-word;
word-break: break-all;
}
table.table-condensed td {
overflow: hidden;
text-overflow: ellipsis;
@@ -215,6 +226,13 @@ identicon {
height: 1em;
}
a.toggler {
color: inherit;
}
a.toggler:hover {
border-bottom: 1px dashed;
text-decoration: none;
}
/**
* Progress bars with centered text
@@ -253,6 +271,21 @@ ul.three-columns li, ul.two-columns li {
z-index: 980;
}
.globalChanges-path-col {
/* These are technically the same, but use both */
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
/* This is the dangerous one in WebKit, as it breaks things wherever */
word-break: break-all;
/* Instead use this non-standard one: */
word-break: break-word;
}
.globalChanges-time-col {
width: 100px;
}
/** Footer nav on small devices **/
@media (max-width: 1199px) {
/* Stay at the end of the page, with space reserved for the footer
@@ -333,4 +366,4 @@ ul.three-columns li, ul.two-columns li {
.navbar-fixed-bottom li {
width: 100%;
}
}
}

View File

@@ -3,7 +3,7 @@
//
// 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 http://mozilla.org/MPL/2.0/.
// You can obtain one at https://mozilla.org/MPL/2.0/.
*/

View File

@@ -10,6 +10,7 @@
"Add Device": "Đ”ĐŸĐ±Đ°ĐČĐž ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ",
"Add Folder": "Đ”ĐŸĐ±Đ°ĐČĐž папĐșа",
"Add Remote Device": "Đ”ĐŸĐ±Đ°ĐČĐž ĐœĐŸĐČĐŸ ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ",
"Add devices from the introducer to our device list, for mutually shared folders.": "Đ”ĐŸĐ±Đ°ĐČŃĐœĐ” ĐœĐ° ŃƒŃŃ‚Ń€ĐŸĐčстĐČа ĐŸŃ‚ спосъĐșа ĐœĐ° Đ·Đ°ĐżĐŸĐ·ĐœĐ°ĐČĐ°Ń‰ĐŸŃ‚ĐŸ ŃƒŃŃ‚Ń€ĐŸĐčтĐČĐŸ ĐČ ĐœĐ°ŃˆĐžŃŃ‚ спосъĐș с ŃƒŃŃ‚Ń€ĐŸĐčстĐČа, за ĐČĐ·Đ°ĐžĐŒĐœĐŸ ŃĐżĐŸĐŽĐ”Đ»Đ”ĐœĐž папĐșĐž.",
"Add new folder?": "Đ”ĐŸĐ±Đ°ĐČĐž ĐœĐŸĐČа папĐșа?",
"Address": "АЎрДс",
"Addresses": "АЎрДсО",
@@ -18,16 +19,20 @@
"Advanced settings": "Đ”ĐŸĐżŃŠĐ»ĐœĐžŃ‚Đ”Đ»ĐœĐž ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž",
"All Data": "ВсочĐșĐž ĐŽĐ°ĐœĐœĐž",
"Allow Anonymous Usage Reporting?": "Đ Đ°Đ·Ń€Đ”ŃˆĐž Đ°ĐœĐŸĐœĐžĐŒĐœĐŸ ĐŽĐŸĐșлаЎĐČĐ°ĐœĐ” за ŃƒĐżĐŸŃ‚Ń€Đ”Đ±Đ°Ń‚Đ° ĐœĐ° ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐ°Ń‚Đ°?",
"Allowed Networks": "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐž ĐŒŃ€Đ”Đ¶Đž",
"Alphabetic": "ĐĐ·Đ±ŃƒŃ‡Đ”Đœ рДЎ",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Друга ĐșĐŸĐŒĐ°ĐœĐŽĐ° сД Đ·Đ°ĐœĐžĐŒĐ°ĐČа с ĐČДрсООтД. йазО ĐșĐŸĐŒĐ°ĐœĐŽĐ° Ń‚Ń€ŃĐ±ĐČа Ўа ĐżŃ€Đ”ĐŒĐ°Ń…ĐœĐ” фаĐčла ĐŸŃ‚ ŃĐžĐœŃ…Ń€ĐŸĐœĐžĐ·ĐžŃ€Đ°ĐœĐ°Ń‚Đ° папĐșа.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Друга ĐșĐŸĐŒĐ°ĐœĐŽĐ° сД Đ·Đ°ĐœĐžĐŒĐ°ĐČа с ĐČДрсООтД. йазО ĐșĐŸĐŒĐ°ĐœĐŽĐ° Ń‚Ń€ŃĐ±ĐČа Ўа ĐżŃ€Đ”ĐŒĐ°Ń…ĐœĐž фаĐčла ĐŸŃ‚ ŃĐžĐœŃ…Ń€ĐŸĐœĐžĐ·ĐžŃ€Đ°ĐœĐ°Ń‚Đ° папĐșа.",
"Anonymous Usage Reporting": "ĐĐœĐŸĐœĐžĐŒĐ”Đœ ĐŽĐŸĐșлаЎ",
"Any devices configured on an introducer device will be added to this device as well.": "ĐŁŃŃ‚Ń€ĐŸĐčстĐČа ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐž Ўа прДЎстаĐČят Юруго ŃƒŃŃ‚Ń€ĐŸĐčстĐČа ŃŃŠŃ‰ĐŸ щД бъЎат ĐŽĐŸĐ±Đ°ĐČĐ”ĐœĐž ĐșŃŠĐŒ Ń‚ĐŸĐČа ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡ĐœĐŸŃ‚ĐŸ ĐŸĐ±ĐœĐŸĐČяĐČĐ°ĐœĐ” ĐČДчД прДЎлага ĐžĐ·Đ±ĐŸŃ€ ĐŒĐ”Đ¶ĐŽŃƒ ŃŃ‚Đ°Đ±ĐžĐ»ĐœĐž ĐČДрсОО Đž ĐșĐ°ĐœĐŽĐžĐŽĐ°Ń‚ ĐČДрсОО.",
"Automatic upgrades": "АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡ĐœĐŸ ĐŸĐ±ĐœĐŸĐČяĐČĐ°ĐœĐ”",
"Be careful!": "Đ’ĐœĐžĐŒĐ°ĐœĐžĐ”!",
"Bugs": "Đ‘ŃŠĐłĐŸĐČĐ”",
"CPU Utilization": "Đ˜Đ·ĐżĐŸĐ»Đ·ĐČĐ°Đœ ĐżŃ€ĐŸŃ†Đ”ŃĐŸŃ€",
"Changelog": "СпосъĐș с ĐżŃ€ĐŸĐŒĐ”ĐœĐž",
"Clean out after": "Đ˜Đ·Ń‡ĐžŃŃ‚Đž слДЎ",
"Click to see discovery failures": "ĐĐ°Ń‚ĐžŃĐœĐ”Ń‚Đ”, за Ўа ĐČОЎОтД ĐłŃ€Đ”ŃˆĐșĐž про ĐŸŃ‚ĐșроĐČĐ°ĐœĐ”Ń‚ĐŸ",
"Close": "ЗатĐČĐŸŃ€Đž",
"Command": "ĐšĐŸĐŒĐ°ĐœĐŽĐ°",
"Comment, when used at the start of a line": "ĐšĐŸĐŒĐ”ĐœŃ‚Đ°Ń€, ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°Đœ ĐČ ĐœĐ°Ń‡Đ°Đ»ĐŸŃ‚ĐŸ ĐœĐ° рДЎа",
@@ -39,6 +44,7 @@
"Copied from original": "ĐšĐŸĐżĐžŃ€Đ°Đœ ĐŸŃ‚ ĐŸŃ€ĐžĐłĐžĐœĐ°Đ»Đ°",
"Copyright © 2014-2016 the following Contributors:": "ВсочĐșĐž праĐČата Đ·Đ°ĐżĐ°Đ·Đ”ĐœĐž © 2014-2016 ĐĄŃŠŃ‚Ń€ŃƒĐŽĐœĐžŃ†Đž:",
"Copyright © 2014-2017 the following Contributors:": "ВсочĐșĐž праĐČата Đ·Đ°ĐżĐ°Đ·Đ”ĐœĐž © 2014-2017. ĐĄŃŠŃ‚Ń€ŃƒĐŽĐœĐžŃ†Đž:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "ХъзЎаĐČĐ°ĐœĐ” ĐœĐ° ŃˆĐ°Đ±Đ»ĐŸĐœĐž за ĐžĐłĐœĐŸŃ€ĐžŃ€Đ°ĐœĐ”, прДзапОсĐČĐ°ĐœĐ” ĐœĐ° същДстĐČуĐČащ фаĐčĐ» ĐČ {{path}}.",
"Danger!": "ĐžĐżĐ°ŃĐœĐŸŃŃ‚!",
"Deleted": "Đ˜Đ·Ń‚Ń€ĐžŃ‚ĐŸ",
"Device": "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ",
@@ -50,6 +56,7 @@
"Disconnected": "ĐĐ” Đ” сĐČŃŠŃ€Đ·Đ°ĐœĐŸ",
"Discovered": "ОтĐșрот",
"Discovery": "ОтĐșроĐČĐ°ĐœĐ”",
"Discovery Failures": "Đ“Ń€Đ”ŃˆĐșа ĐČ ĐŸŃ‚ĐșроĐČĐ°ĐœĐ”Ń‚ĐŸ",
"Documentation": "Đ”ĐŸĐșŃƒĐŒĐ”ĐœŃ‚Đ°Ń†ĐžŃ",
"Download Rate": "ĐĄĐșĐŸŃ€ĐŸŃŃ‚ ĐœĐ° сĐČĐ°Đ»ŃĐœĐ”",
"Downloaded": "Đ˜Đ·Ń‚Đ”ĐłĐ»Đ”Đœ",
@@ -58,17 +65,23 @@
"Edit Device": "ĐŸŃ€ĐŸĐŒŃĐœĐ° ĐœĐ° ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸŃ‚ĐŸ",
"Edit Folder": "ĐŸŃ€ĐŸĐŒŃĐœĐ° ĐœĐ° папĐșата",
"Editing": "ĐŸŃ€ĐŸĐŒĐ”ĐœŃĐœĐ”",
"Editing {%path%}.": "ĐŸŃ€ĐŸĐŒŃĐœĐ° ĐœĐ° {{path}}.",
"Enable NAT traversal": "Đ Đ°Đ·Ń€Đ”ŃˆĐž NAT traversal",
"Enable Relaying": "Đ Đ°Đ·Ń€Đ”ŃˆĐž ĐżŃ€Đ”ĐżŃ€Đ°Ń‰Đ°ĐœĐ”",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "ВъĐČДЎДтД ĐœĐ” ĐŸŃ‚Ń€ĐžŃ†Đ°Ń‚Đ”Đ»ĐœĐŸ Ń‡ĐžŃĐ»ĐŸ (пр. \"2.35\") Đž ОзбДрДтД Đ”ĐŽĐžĐœĐžŃ†Đ°.\nĐŸŃ€ĐŸŃ†Đ”ĐœŃ‚ĐžŃ‚Đ” са ĐșĐ°Ń‚ĐŸ част ĐŸŃ‚ Ń€Đ°Đ·ĐŒĐ”Ń€Đ° ĐœĐ° Ń†ŃĐ»ĐŸŃ‚ĐŸ ЎОсĐșĐŸĐČĐŸ ĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœŃŃ‚ĐČĐŸ.",
"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.": "Đ”ĐŸĐ±Đ°ĐČĐž ŃˆĐ°Đ±Đ»ĐŸĐœĐž за ĐžĐłĐœĐŸŃ€ĐžŃ€Đ°ĐœĐ”, ĐżĐŸ Đ”ĐŽĐžĐœ ĐœĐ° рДЎ.",
"Error": "Đ“Ń€Đ”ŃˆĐșа",
"External File Versioning": "Đ’ŃŠĐœŃˆĐœĐŸ упраĐČĐ»Đ”ĐœĐžĐ” ĐœĐ° ĐČДрсООтД",
"Failed Items": "ĐĐ”ŃƒŃĐżĐ”ŃˆĐœĐž",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "ĐĐ”ŃƒŃĐżĐ”ŃˆĐœĐ° ĐČръзĐșа ĐșŃŠĐŒ IPv6 сърĐČъро ĐŒĐŸĐ¶Đ” Ўа сД ĐŸŃ‡Đ°ĐșĐČа аĐșĐŸ ĐœŃĐŒĐ° IPv6 сĐČŃŠŃ€Đ·Đ°ĐœĐŸŃŃ‚.",
"File Pull Order": "РДЎ ĐœĐ° сĐČĐ°Đ»ŃĐœĐ”",
"File Versioning": "ВДрсОО ĐœĐ° фаĐčĐ»ĐŸĐČДтД",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Đ‘ĐžŃ‚ĐŸĐČДтД за праĐČа за ĐŽĐŸŃŃ‚ŃŠĐż щД бъЎат ĐžĐłĐœĐŸŃ€ĐžŃ€Đ°ĐœĐž, ĐșĐŸĐłĐ°Ń‚ĐŸ сД ĐżŃ€ĐŸĐČĐ”Ń€ŃĐČа за ĐżŃ€ĐŸĐŒĐ”ĐœĐž. ĐŸĐŸĐ»Đ·ĐČаĐčтД за фаĐčĐ»ĐŸĐČĐž ŃĐžŃŃ‚Đ”ĐŒĐž топ FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "ЀаĐčĐ»ĐŸĐČДтД бОĐČат ĐżŃ€Đ”ĐŒĐ”ŃŃ‚Đ”ĐœĐž ĐČ .stversions папĐșа, ĐșĐŸĐłĐ°Ń‚ĐŸ са Đ·Đ°ĐŒĐ”ĐœĐ”Đœ ОлО ОзтрОтО ĐŸŃ‚ Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "ЀаĐčĐ»ĐŸĐČДтД бОĐČат ĐżŃ€Đ”ĐŒĐ”ŃŃ‚Đ”ĐœĐž ĐČ .stversions папĐșа, ĐșĐŸĐłĐ°Ń‚ĐŸ са Đ·Đ°ĐŒĐ”ĐœĐ”Đœ ОлО ОзтрОтО ĐŸŃ‚ Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "ĐšĐŸĐłĐ°Ń‚ĐŸ syncthing Đ·Đ°ĐŒĐ”ĐœĐž ОлО ОзтрОД фаĐčĐ» Ń‚ĐŸĐč сД ĐżŃ€Đ”ĐŒĐ”ŃŃ‚ĐČа ĐČ .stversions Đž ĐżŃ€Đ”ĐžĐŒĐ”ĐœŃƒĐČа с ĐœĐ°Đ±Đ°ĐČĐ”ĐœĐž Юата Đž час.",
"Files are moved to date stamped versions in a .stversions folder 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.": "ЗащотаĐČа фаĐčĐ»ĐŸĐČДтД ĐŸŃ‚ ĐżŃ€ĐŸĐŒĐ”ĐœĐž ĐœĐ°ĐżŃ€Đ°ĐČĐ”ĐœĐž ĐœĐ° Юруго ŃƒŃŃ‚Ń€ĐŸĐčстĐČа, ĐœĐŸ ĐżŃ€ĐŸĐŒĐ”ĐœĐžŃ‚Đ” ĐœĐ°ĐżŃ€Đ°ĐČĐ”ĐœĐž ĐœĐ° Ń‚ĐŸĐČа ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ щД бъЎат ŃĐžĐœŃ…Ń€ĐŸĐœĐžĐ·ĐžŃ€Đ°ĐœĐž с ĐŸŃŃ‚Đ°ĐœĐ°Đ»ĐžŃ‚Đ” ŃƒŃŃ‚Ń€ĐŸĐčстĐČа.",
"Folder": "ПапĐșа",
@@ -80,7 +93,9 @@
"GUI": "ĐŸĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșĐž ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс",
"GUI Authentication Password": "ĐŸĐ°Ń€ĐŸĐ»Đ° за ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса",
"GUI Authentication User": "ĐŸĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșĐŸ ĐžĐŒĐ” за ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса",
"GUI Listen Address": "АЎрДс ĐœĐ° ŃĐ»ŃƒŃˆĐ°ĐœĐ” ĐœĐ° GUI-Ń‚ĐŸ",
"GUI Listen Addresses": "АЎрДс за сĐČързĐČĐ°ĐœĐ” с ĐżĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșоя ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс",
"GUI Theme": "ĐąĐ”ĐŒĐ° за ĐżĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșоя ĐžĐœŃ‚Đ”Ń„Đ”Đčс",
"Generate": "Đ“Đ”ĐœĐ”Ń€ĐžŃ€Đ°Đč",
"Global Changes": "Đ“Đ»ĐŸĐ±Đ°Đ»ĐœĐž ĐżŃ€ĐŸĐŒĐ”ĐœĐž",
"Global Discovery": "Đ“Đ»ĐŸĐ±Đ°Đ»ĐœĐŸ ĐŸŃ‚ĐșроĐČĐ°ĐœĐ”",
@@ -103,6 +118,7 @@
"Last seen": "ĐŸĐŸŃĐ»Đ”ĐŽĐœĐŸ ĐČĐžĐŽŃĐœĐŸ",
"Later": "ĐŸĐŸ-ĐșŃŠŃĐœĐŸ",
"Latest Change": "ĐŸĐŸŃĐ»Đ”ĐŽĐœĐ° ĐżŃ€ĐŸĐŒŃĐœĐ°",
"Learn more": "ĐĐ°ŃƒŃ‡Đ”Ń‚Đ” ĐżĐŸĐČДчД",
"Listeners": "ĐĄĐžĐœŃ…Ń€ĐŸĐœĐžĐ·ĐžŃ€Đ°Ń‰Đž ŃƒŃŃ‚Ń€ĐŸĐčстĐČа",
"Local Discovery": "Đ›ĐŸĐșĐ°Đ»ĐœĐŸ ĐŸŃ‚ĐșроĐČĐ°ĐœĐ”",
"Local State": "Đ›ĐŸĐșĐ°Đ»ĐœĐŸ ŃŃŠŃŃ‚ĐŸŃĐœĐžĐ”",
@@ -120,6 +136,7 @@
"Newest First": "ПърĐČĐŸ ĐœĐ°Đč-ĐœĐŸĐČОтД",
"No": "ĐĐ”",
"No File Versioning": "БДз ĐČДрсОО",
"No upgrades": "ĐŃĐŒĐ° ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžŃ",
"Normal": "ĐĐŸŃ€ĐŒĐ°Đ»Đ”Đœ",
"Notice": "ИзĐČДстОД",
"OK": "ОК",
@@ -133,12 +150,16 @@
"Override Changes": "ĐĐ°Đ»ĐŸĐ¶Đž Đ»ĐŸĐșĐ°Đ»ĐœĐžŃ‚Đ” ĐżŃ€ĐŸĐŒĐ”ĐœĐž",
"Path": "Път",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Път ĐŽĐŸ папĐșата ĐœĐ° Ń‚ĐŸĐČа ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ. АĐșĐŸ ĐœĐ” същДстĐČуĐČа щД бъЎД ŃŃŠĐ·ĐŽĐ°ĐŽĐ”ĐœĐ°. ĐĄĐžĐŒĐČĐŸĐ»ŃŠŃ‚ тОлЎа (~) ĐŒĐŸĐ¶Đ” Ўа бъЎД ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°Đœ ĐșĐ°Ń‚ĐŸ Đ·Đ°ĐŒĐ”ŃŃ‚ĐžŃ‚Đ”Đ» ĐœĐ°",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Пътят, ĐșŃŠĐŽĐ”Ń‚ĐŸ ĐČДрсООтД Ўа бъЎат сĐșĐ»Đ°ĐŽĐžŃ€Đ°ĐœĐž(ĐŸŃŃ‚Đ°ĐČДтД ĐżŃ€Đ°Đ·ĐœĐŸ за папĐșата .stversions).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Пътят, ĐșŃŠĐŽĐ”Ń‚ĐŸ ĐČДрсООтД Ўа бъЎат сĐșĐ»Đ°ĐŽĐžŃ€Đ°ĐœĐž(ĐŸŃŃ‚Đ°ĐČĐž ĐżŃ€Đ°Đ·ĐœĐŸ за папĐșата .stversions).",
"Pause": "ĐŸĐ°ŃƒĐ·Đ°",
"Pause All": "ĐŸĐ°ŃƒĐ·Đ° ĐœĐ° ĐČосчĐșĐŸ",
"Paused": "На пауза",
"Please consult the release notes before performing a major upgrade.": "ĐœĐŸĐ»Ń ĐżŃ€ĐŸŃ‡Đ”Ń‚Đž бДлДжĐșОтД ĐżĐŸ ĐŸĐ±ĐœĐŸĐČяĐČĐ°ĐœĐ”Ń‚ĐŸ прДЎО Ўа Đ·Đ°ĐżĐŸŃ‡ĐœĐ”Ńˆ.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "ĐœĐŸĐ»Ń заЎаĐčтД ĐżĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșĐŸ ĐžĐŒĐ” Đž ĐżĐ°Ń€ĐŸĐ»Đ° за ĐżĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșоя ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс ĐČ ŃĐ”Đșцоята ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž.",
"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": "ĐŸŃ€Đ”ĐŽŃŃ‚Đ°ĐČĐșа, ĐșĐŸŃŃ‚ĐŸ ĐžĐœĐŽĐžĐșора, чД Đ·Đ°ĐŽĐ°ĐŽĐ”ĐœĐžŃ ŃˆĐ°Đ±Đ»ĐŸĐœ Ń‚Ń€ŃĐ±ĐČа Ўа бъЎД ĐżŃ€ĐŸĐČĐ”Ń€Đ”Đœ бДз Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” за глаĐČĐœĐž/ĐŒĐ°Đ»ĐșĐž буĐșĐČĐž",
"Preview": "ĐŸŃ€Đ”ĐłĐ»Đ”ĐŽ",
"Preview Usage Report": "РазглДЎаĐč ĐŽĐŸĐșлаЎа за ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°ĐœĐ”",
"Quick guide to supported patterns": "Бърз ĐœĐ°Ń€ŃŠŃ‡ĐœĐžĐș ĐșŃŠĐŒ ĐżĐŸĐŽĐŽŃŠŃ€Đ¶Đ°ĐœĐžŃ‚Đ” ŃˆĐ°Đ±Đ»ĐŸĐœĐž",
@@ -146,6 +167,7 @@
"Random": "ĐŸŃ€ĐŸĐžĐ·ĐČĐŸĐ»Đ”Đœ",
"Reduced by ignore patterns": "ĐĐ°ĐŒĐ°Đ»Đ”ĐœĐŸ ĐżĐŸŃŃ€Đ”ĐŽŃŃ‚ĐČĐŸĐŒ ŃˆĐ°Đ±Đ»ĐŸĐœ за ĐžĐłĐœĐŸŃ€ĐžŃ€Đ°ĐœĐ”",
"Release Notes": "БДлДжĐșĐž ĐżĐŸ ĐŸĐ±ĐœĐŸĐČяĐČĐ°ĐœĐ”Ń‚ĐŸ",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "ĐšĐ°ĐœĐŽĐžĐŽĐ°Ń‚ ĐČДрсООтД съЎържат ĐœĐ°Đč-ĐœĐŸĐČата Ń„ŃƒĐœĐșŃ†ĐžĐŸĐœĐ°Đ»ĐœĐŸŃŃ‚ Đž ĐżĐŸĐżŃ€Đ°ĐČĐșĐž. йД са блОзĐșĐž ĐŽĐŸ Ń‚Ń€Đ°ĐŽĐžŃ†ĐžĐŸĐœĐœĐžŃ‚Đ” ĐŽĐČу-ŃĐ”ĐŽĐŒĐžŃ‡ĐœĐž Synchthing ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžŃ.",
"Remote Devices": "ЧужЎО ŃƒŃŃ‚Ń€ĐŸĐčстĐČа",
"Remove": "ĐŸŃ€Đ”ĐŒĐ°Ń…ĐœĐž",
"Required identifier for the folder. Must be the same on all cluster devices.": "Đ—Đ°ĐŽŃŠĐ»Đ¶ĐžŃ‚Đ”Đ»Đ”Đœ ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșĐ°Ń‚ĐŸŃ€ за тазО папĐșа. ĐąŃ€ŃĐ±ĐČа Ўа бъЎД Đ”ĐŽĐžĐœ Đž същ ĐœĐ° ĐČсочĐșĐž ŃƒŃŃ‚Ń€ĐŸĐčстĐČа.",
@@ -156,6 +178,7 @@
"Restart Needed": "ИзОсĐșĐČа сД Ń€Đ”ŃŃ‚Đ°Ń€Ń‚ĐžŃ€Đ°ĐœĐ”",
"Restarting": "Đ Đ”ŃŃ‚Đ°Ń€Ń‚ĐžŃ€Đ°ĐœĐ”",
"Resume": "ĐŸŃƒŃĐœĐž",
"Resume All": "ПусĐșĐ°ĐœĐ” ĐœĐ° ĐČсочĐșĐŸ",
"Reused": "ĐŸĐŸĐČŃ‚ĐŸŃ€ĐœĐŸ ĐžĐ·ĐżĐŸĐ»Đ·ĐČĐ°Đœ",
"Save": "ЗапазО",
"Scan Time Remaining": "ОстаĐČĐ°Ń‰ĐŸ ĐČŃ€Đ”ĐŒĐ” за сĐșĐ°ĐœĐžŃ€Đ°ĐœĐ”",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "МасĐșа ĐœĐ° Đ”ĐŽĐœĐŸ ĐœĐžĐČĐŸ (ĐżĐŸĐșроĐČа ŃĐ°ĐŒĐŸ ĐČ ĐżĐ°ĐżĐșа)",
"Smallest First": "ПърĐČĐŸ ĐœĐ°Đč-ĐŒĐ°Đ»ĐșОтД",
"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 only": "ĐĄĐ°ĐŒĐŸ ŃŃ‚Đ°Đ±ĐžĐ»ĐœĐž ĐČДрсОО",
"Staggered File Versioning": "ĐĐ°ŃĐ»Đ°ĐłĐČащо сД ĐČДрсОО",
"Start Browser": "СтартораĐč Đ±Ń€Đ°ŃƒĐ·ŃŠŃ€Đ°",
"Statistics": "СтатостоĐșа",
@@ -221,6 +247,7 @@
"This Device": "Đ’Đ°ŃˆĐ”Ń‚ĐŸ ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ",
"This can easily give hackers access to read and change any files on your computer.": "ĐąĐŸĐČа ЎаĐČа Đ»Đ”ŃĐ”Đœ ĐŽĐŸŃŃ‚ŃŠĐż ĐœĐ° хаĐșДрО Ўа разглДжЎат Đž ĐżŃ€ĐŸĐŒĐ”ĐœŃŃ‚ ĐČсяĐșаĐșĐČĐž фаĐčĐ»ĐŸĐČĐ” ĐœĐ° ĐșĐŸĐŒĐżŃŽŃ‚ŃŠŃ€Đ° Во.",
"This is a major version upgrade.": "ĐąĐŸĐČа Đ” ĐœĐŸĐČа ĐŸŃĐœĐŸĐČĐœĐ° ĐČĐ”Ń€ŃĐžŃ.",
"This setting controls the free space required on the home (i.e., index database) disk.": "йазО ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșа ĐșĐŸĐœŃ‚Ń€ĐŸĐ»ĐžŃ€Đ° ĐœŃƒĐ¶ĐœĐŸŃ‚ĐŸ сĐČĐŸĐ±ĐŸĐŽĐœĐŸŃ‚ĐŸ ĐŒŃŃŃ‚ĐŸ ĐœĐ° ĐŸŃĐœĐŸĐČĐœĐžŃ (пр. Ń‚ĐŸĐ·Đž с базата ĐŽĐ°ĐœĐœĐž) ЎОсĐș.",
"Time": "Đ’Ń€Đ”ĐŒĐ”",
"Trash Can File Versioning": "ĐĄĐ°ĐŒĐŸ ĐœĐ° фаĐčĐ»ĐŸĐČДтД ĐČ ĐșĐŸŃˆŃ‡Đ”Ń‚ĐŸ",
"Type": "йОп",
@@ -234,6 +261,7 @@
"Upgrading": "ĐžĐ±ĐœĐŸĐČяĐČĐ°ĐœĐ”",
"Upload Rate": "ĐĄĐșĐŸŃ€ĐŸŃŃ‚ ĐœĐ° ĐșачĐČĐ°ĐœĐ”",
"Uptime": "Đ Đ°Đ±ĐŸŃ‚Đž ĐŸŃ‚",
"Usage reporting is always enabled for candidate releases.": "Đ”ĐŸĐșлаЎът за ĐżĐŸĐ»Đ·ĐČĐ°ĐœĐ”Ń‚ĐŸ Đ” ĐČĐžĐœĐ°ĐłĐž ĐČĐșĐ»ŃŽŃ‡Đ”Đœ за ĐșĐ°ĐœĐŽĐžĐŽĐ°Ń‚ ĐœĐŸĐČĐž ĐČДрсОО.",
"Use HTTPS for GUI": "Đ˜Đ·ĐżĐŸĐ»Đ·ĐČаĐč HTTPS за ĐżĐŸŃ‚Ń€Đ”Đ±ĐžŃ‚Đ”Đ»ŃĐșоя ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс",
"Version": "Đ’Đ”Ń€ŃĐžŃ",
"Versions Path": "Път ĐŽĐŸ ĐČДрсООтД",
@@ -245,6 +273,9 @@
"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.": "ĐšĐŸĐłĐ°Ń‚ĐŸ ĐŽĐŸĐ±Đ°ĐČяш ĐœĐŸĐČ ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșĐ°Ń‚ĐŸŃ€ ĐœĐ° папĐșа ĐżĐŸĐŒĐœĐž, чД Ń‚ĐŸĐč сД ĐžĐ·ĐżĐŸĐ»Đ·ĐČа за сĐČързĐČĐ°ĐœĐ” ĐœĐ° папĐșОтД ĐœĐ° Ń€Đ°Đ·Đ»ĐžŃ‡ĐœĐž ŃƒŃŃ‚Ń€ĐŸĐčстĐČа. ГлаĐČĐœĐž/ĐŒĐ°Đ»ĐșĐž буĐșĐČĐž са ĐŸŃ‚ Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” Đž Ń‚Ń€ŃĐ±ĐČа Ўа са Đ”ĐŽĐœĐ°ĐșĐČĐž ĐœĐ° ĐČсочĐșĐž ŃƒŃŃ‚Ń€ĐŸĐčстĐČа.",
"Yes": "Да",
"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 must keep at least one version.": "ĐąŃ€ŃĐ±ĐČа Ўа пазОш ĐżĐŸĐœĐ” Đ”ĐŽĐœĐ° ĐČĐ”Ń€ŃĐžŃ.",
"days": "ĐŽĐœĐž",
"directories": "ЎОрДĐșŃ‚ĐŸŃ€ĐžĐž",

View File

@@ -1,256 +0,0 @@
{
"A device with that ID is already added.": "Ja s'ha afegit un dispositiu amb aquesta ID.",
"A negative number of days doesn't make sense.": "Un nombre negatiu de dies no té sentit.",
"A new major version may not be compatible with previous versions.": "Una nova versiĂł major pot ser incompatible amb versions anteriors.",
"API Key": "Clau API",
"About": "Sobre",
"Action": "Action",
"Actions": "Accions",
"Add": "Afegir",
"Add Device": "Afegir dispositiu",
"Add Folder": "Afegir carpeta",
"Add Remote Device": "Add Remote Device",
"Add new folder?": "Afegir nova carpeta?",
"Address": "Adreça",
"Addresses": "Adreces",
"Advanced": "Avançat",
"Advanced Configuration": "Configuració Avançada",
"Advanced settings": "Advanced settings",
"All Data": "Totes les dades",
"Allow Anonymous Usage Reporting?": "Permetre l'enviament anĂČnim d'informes d'Ășs?",
"Alphabetic": "AlfabĂštic",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Un comando extern s'encarrega del control de versions. Ha d'eliminar l'arxiu de la carpeta sincronitzada.",
"Anonymous Usage Reporting": "Informe anĂČnim d'Ășs",
"Any devices configured on an introducer device will be added to this device as well.": "Qualsevol dispositiu configurat en un dispositiu introductor també s'afegirà a aquest dispositiu.",
"Automatic upgrades": "Actualitzacions automĂ tiques",
"Be careful!": "Ves amb compte!",
"Bugs": "Bugs",
"CPU Utilization": "UtilitzaciĂł del CPU",
"Changelog": "Historial de canvis",
"Clean out after": "Netejar després",
"Close": "Tancar",
"Command": "Comando",
"Comment, when used at the start of a line": "Comentari quan és usat al principi d'una línia",
"Compression": "CompressiĂł",
"Configured": "Configured",
"Connection Error": "Error de connexiĂł",
"Connection Type": "Connection Type",
"Copied from elsewhere": "Copiat d'un altre lloc",
"Copied from original": "Copiat de l'original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Danger!": "Perill!",
"Deleted": "Esborrat",
"Device": "Device",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Device \"{{name}}\" ({{device}} at {{address}}) wants to connect. Add new device?",
"Device ID": "ID del dispositiu",
"Device Identification": "IdentificaciĂł del dispositiu",
"Device Name": "Nom del dispositiu",
"Devices": "Dispositius",
"Disconnected": "Desconnectat",
"Discovered": "Discovered",
"Discovery": "Descobriment",
"Documentation": "DocumentaciĂł",
"Download Rate": "Tasca de descarrega",
"Downloaded": "Descarregat",
"Downloading": "Descarregant",
"Edit": "Editar",
"Edit Device": "Edit Device",
"Edit Folder": "Edit Folder",
"Editing": "Modificant",
"Enable NAT traversal": "Enable NAT traversal",
"Enable Relaying": "Enable Relaying",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Introdueix adreces separades per comes (\"tcp://ip:port\", \"tcp://host:port\") o \"dinàmic\" per realitzar descobriments automàtics de l'adreça.",
"Enter ignore patterns, one per line.": "Introduex patrons a ignorar, un per lĂ­nia.",
"Error": "Error",
"External File Versioning": "Versionat de fitxers extern",
"Failed Items": "Elements fallats",
"File Pull Order": "Ordre d'agafar fitxers",
"File Versioning": "Versionat de Fitxers",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Els bits de permisos dels fitxers son ignorats quan es cerquen canvis. Utilitzar en sistemes de fitxers FAT.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Els fitxers són moguts a la carpeta .stversions quan són reemplaçats o esborrats per Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Els fitxers es mouen amb l'estampat de la data a la carpeta .stversions quan son substituĂŻts o esborrats per syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Els fitxers estan protegits de canvis fets per altres dispositius, perĂČ els canvis fets en aquest dispositiu seran enviats a la resta del cluster.",
"Folder": "Carpeta",
"Folder ID": "ID de carpeta",
"Folder Label": "Folder Label",
"Folder Path": "CamĂ­ de carpeta",
"Folder Type": "Folder Type",
"Folders": "Carpetes",
"GUI": "GUI",
"GUI Authentication Password": "Contrasenya d'autenticaciĂł GUI",
"GUI Authentication User": "Usuari d'autenticaciĂł GUI",
"GUI Listen Addresses": "Adreça d'escolta del GUI",
"Generate": "Generar",
"Global Changes": "Global Changes",
"Global Discovery": "Descobriment Global",
"Global Discovery Servers": "Global Discovery Servers",
"Global State": "Estat global",
"Help": "Ajuda",
"Home page": "PĂ gina d'inici",
"Ignore": "Ignorar",
"Ignore Patterns": "Patrons d'ignoraciĂł",
"Ignore Permissions": "Ignora Permisos",
"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.",
"Introduced By": "Introduced By",
"Introducer": "Introductor",
"Inversion of the given condition (i.e. do not exclude)": "InversiĂł del patrĂČ introduĂŻt",
"Keep Versions": "Mantenir Versions",
"Largest First": "Més gran primer",
"Last File Received": "Últim fitxer rebut",
"Last Scan": "Last Scan",
"Last seen": "Vist per Ășltima vegada",
"Later": "Després",
"Latest Change": "Latest Change",
"Listeners": "Listeners",
"Local Discovery": "Descobriment Local",
"Local State": "Estat local",
"Local State (Total)": "Estat local (Total)",
"Major Upgrade": "ActualitzaciĂł major",
"Master": "Master",
"Maximum Age": "Antiguitat MĂ xima",
"Metadata Only": "Només metadades",
"Minimum Free Disk Space": "Espai de disc lliure mĂ­nim",
"Move to top of queue": "Moure al primer de la cua",
"Multi level wildcard (matches multiple directory levels)": "CarĂ cter comodĂ­ de nivell mĂșltiple (aparella en carpetes de nivells mĂșltiples)",
"Never": "Mai",
"New Device": "Nou dispositiu",
"New Folder": "Nova carpeta",
"Newest First": "Més nou primer",
"No": "No",
"No File Versioning": "Sense Versionat de Fitxer",
"Normal": "Normal",
"Notice": "AvĂ­s",
"OK": "OK",
"Off": "Desactivar",
"Oldest First": "Més antic primer",
"Optional descriptive label for the folder. Can be different on each device.": "Optional descriptive label for the folder. Can be different on each device.",
"Options": "Opcions",
"Out of Sync": "Fora de sincronia",
"Out of Sync Items": "Arxius encara no sincronitzats",
"Outgoing Rate Limit (KiB/s)": "LĂ­mit de velocitat de sortida (KiB/s)",
"Override Changes": "Sobreescriure Canvis",
"Path": "Path",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Ruta de la carpeta a l'equip local. Si no existeix serĂ  creada. El carĂ cter (~) es pot fer servir com a drecera de",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ruta on les versions s'haurien de guardar (deixa-ho buit per fer servir el directori .stversions per defecte a la carpeta)",
"Pause": "Pausa",
"Paused": "Pausat",
"Please consult the release notes before performing a major upgrade.": "Si us plau consulta les notes de llançament abans de realitzar una actualització major.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Si us plau, estableix un usuari i contrasenya al GUI a través del quadre de diàleg de configuració.",
"Please wait": "Si-us-plau espera",
"Preview": "Vista prĂšvia",
"Preview Usage Report": "Vista Prùvia de l'Informe d'Ús",
"Quick guide to supported patterns": "Guia rĂ pida per als possibles patrons",
"RAM Utilization": "UtilitzaciĂł de la RAM",
"Random": "Aleatori",
"Reduced by ignore patterns": "Reduced by ignore patterns",
"Release Notes": "Notes de llançament",
"Remote Devices": "Remote Devices",
"Remove": "Esborrar",
"Required identifier for the folder. Must be the same on all cluster devices.": "Required identifier for the folder. Must be the same on all cluster devices.",
"Rescan": "Re-escanejar",
"Rescan All": "Re-escanejar tot",
"Rescan Interval": "Interval de re-escaneig",
"Restart": "Reiniciar",
"Restart Needed": "És Necessari Reiniciar",
"Restarting": "Reiniciant",
"Resume": "Reprendre",
"Reused": "Reutilitzat",
"Save": "Guardar",
"Scan Time Remaining": "Temps d'escanejat restant",
"Scanning": "Escanejant",
"Select the devices to share this folder with.": "Selecciona els dispositius en els quals compartir aquesta carpeta.",
"Select the folders to share with this device.": "Selecciona la carpeta per a compartir en aquest dispositiu.",
"Send & Receive": "Send & Receive",
"Send Only": "Send Only",
"Settings": "PreferĂšncies",
"Share": "Compartir",
"Share Folder": "Compartir carpeta",
"Share Folders With Device": "Compartir carpetes en dispositiu",
"Share With Devices": "Compartir en dispositius",
"Share this folder?": "Compartir aquesta carpeta?",
"Shared With": "Compartir Amb",
"Show ID": "Mostrar ID",
"Show QR": "Show QR",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Mostrat en comptes del ID del Node en l'estat del cluster. SerĂ  advertit als altres dispositius com un nom opcional per defecte.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Mostrat en comptes del ID del Node en l'estat del cluster. S'actualitzarĂ  al nom del dispositiu si es deixa buit.",
"Shutdown": "Apagar",
"Shutdown Complete": "Apagat complet",
"Simple File Versioning": "Versionat de Fitxers Senzill",
"Single level wildcard (matches within a directory only)": "CarĂ cter comodĂ­ de nivell singular (aparella sĂłls en una carpeta)",
"Smallest First": "Més petit primer",
"Source Code": "Codi Font",
"Staggered File Versioning": "Versionat de Fitxers Esglaonat",
"Start Browser": "Arrancar Navegador",
"Statistics": "EstadĂ­stiques",
"Stopped": "Aturat",
"Support": "Suport",
"Sync Protocol Listen Addresses": "Adreça d'escolta del Protocol Sync",
"Syncing": "Synthing",
"Syncthing has been shut down.": "S'ha aturat el synthing.",
"Syncthing includes the following software or portions thereof:": "Syncthing inclou el segĂŒent programari o parts dels mateixos:",
"Syncthing is restarting.": "Reiniciant syncthing.",
"Syncthing is upgrading.": "Actualitzant syncthing.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Synthing sembla parat, o hi ha algun problema amb la connexió a Internet. Reintentant...",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Sembla ser que Syncthing estĂ  tinguent problemes per processar la teva peticiĂł. Si us plau, refresca la pĂ gina o reinicia Syncthing si el problema persisteix.",
"The Syncthing admin interface is configured to allow remote access without a password.": "La interfície d'administració de Syncthing està configurada per permetre l'accés remot sense contrasenya.",
"The aggregated statistics are publicly available at the URL below.": "The aggregated statistics are publicly available at the URL below.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "La configuraciĂł s'ha guardar perĂČ no s'ha activat. S'ha de reiniciar el synthing per activar la nova configuraciĂł.",
"The device ID cannot be blank.": "El ID del dispositiu no pot estar en blanc.",
"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).": "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).",
"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.": "L'informe d'Ășs encriptat s'envia diĂ riament. Es fa servir per rastrejar plataformes habituals, mides de carpetes i versions de l'aplicaciĂł. Si es canvia el conjunt de dades reportades es demanarĂ  amb aquest diĂ leg de nou.",
"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.": "El ID del dispositiu introduĂŻt no sembla vĂ lid. Hauria de tenir 52 o 56 carĂ cters amb lletres i nĂșmeros, els espais i les barres son opcionals.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "El primer paràmetre de la línia de comandes és el camí a la carpeta i el segon paràmetre és el camí relatiu a la carpeta.",
"The folder ID cannot be blank.": "El ID del dispositiu no pot estar en blanc.",
"The folder ID must be unique.": "El ID de la carpeta ha de ser Ășnic.",
"The folder path cannot be blank.": "El camĂ­ a la carpeta no pot estar en blanc.",
"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.": "Es fan servir els segĂŒents intervals: per la primera hora es mantĂ© una versiĂł cada 30 segons, pel primer dia es mantĂ© una versiĂł cada hora, pel primer cada 30 dies es mantĂ© una versiĂł cada dia, fins el mĂ xim d'antiguitat es mantĂ© una versiĂł cada setmana.",
"The following items could not be synchronized.": "Els segĂŒents elements no es poden sincronitzar.",
"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 minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "El percentatge d'espai de disc lliure mĂ­nim ha de ser un nombre positiu entre 0 i 100 (inclosos).",
"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 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 rescan interval must be a non-negative number of seconds.": "El interval de re-escaneig ha der ser un nombre positiu de segons.",
"They are retried automatically and will be synced when the error is resolved.": "SĂłn reintentats automĂ ticament i seran sincronitzats quan l'error estigui resolt.",
"This Device": "This Device",
"This can easily give hackers access to read and change any files on your computer.": "AixĂČ pot donar facilment accĂ©s a hackers per llegir i canviar qualsevol fitxer del teu ordinador.",
"This is a major version upgrade.": "Aquesta és una actualització de versió major.",
"Time": "Time",
"Trash Can File Versioning": "Paperera de versionat de fitxers",
"Type": "Type",
"Unknown": "Desconegut",
"Unshared": "No compartit",
"Unused": "No usat",
"Up to Date": "Actualitzat",
"Updated": "Actualitzat",
"Upgrade": "ActualitzaciĂł",
"Upgrade To {%version%}": "Actualitzar a {{version}}",
"Upgrading": "Actualitzant",
"Upload Rate": "Tasca de Pujada",
"Uptime": "Temps funcionant",
"Use HTTPS for GUI": "Utilitzar HTTPS pel GUI",
"Version": "VersiĂł",
"Versions Path": "Carpeta de les Versions",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Les versions son automàticament eliminades si son més antigues que el màxim d'antiguitat o si excedeixen del nombre de fitxers permesos en un interval.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a subdirectory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"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.",
"Yes": "Si",
"You must keep at least one version.": "Has de mantenir com a mĂ­nim una versiĂł.",
"days": "dies",
"directories": "directories",
"files": "files",
"full documentation": "documentaciĂł sencera",
"items": "Elements",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} vol compartir la carpeta \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} wants to share folder \"{{folderlabel}}\" ({{folder}})."
}

View File

@@ -4,12 +4,13 @@
"A new major version may not be compatible with previous versions.": "Una nova versiĂłn amb canvis importants pot no ser compatible amb versions prĂšvies.",
"API Key": "Clau API",
"About": "Sobre",
"Action": "Action",
"Action": "AcciĂł",
"Actions": "Accions",
"Add": "Afegir",
"Add Device": "Afegir dispositiu",
"Add Folder": "Afegir carpeta",
"Add Remote Device": "Afegir Dispositiu Remot.",
"Add devices from the introducer to our device list, for mutually shared folders.": "Afegir dispositius des-de l'introductor a la nostra llista de dispositius, per a tindre carpetes compartides mĂștuament",
"Add new folder?": "Afegir nova carpeta?",
"Address": "DirecciĂł",
"Addresses": "Direccions",
@@ -18,16 +19,20 @@
"Advanced settings": "Ajustos avançats.",
"All Data": "Totes les dades",
"Allow Anonymous Usage Reporting?": "Permetre informes d'Ășs anĂČnim?",
"Allowed Networks": "Xarxes permeses",
"Alphabetic": "AlfabĂštic",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Un command extern maneja les versions. TĂ© que eliminar el fitxer de la carpeta compartida.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Un comando extern controla el versionat. És necessari eliminar el fitxer de la carpeta sincronitzada.",
"Anonymous Usage Reporting": "Informe d'Ășs anĂČnim",
"Any devices configured on an introducer device will be added to this device as well.": "Tots els dispositius configurats en un dispositiu presentador seràn afegits també a aquest dispositiu.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "L'actualitzaciĂł automĂ tica ara ofereix l'elecciĂł entre les versions estables i les versions candidates.",
"Automatic upgrades": "Actualitzacions automĂ tiques",
"Be careful!": "Tin precauciĂł!",
"Bugs": "Errors (Bugs)",
"CPU Utilization": "UtilitzaciĂł de la CPU",
"Changelog": "Registre de canvis",
"Clean out after": "Netejar després de",
"Click to see discovery failures": "Clica per a vore els fallos en el descobriment",
"Close": "Tancar",
"Command": "Comando",
"Comment, when used at the start of a line": "Comentar, quant s'utilitza al principi d'una lĂ­nia",
@@ -38,10 +43,11 @@
"Copied from elsewhere": "Copiat de qualsevol lloc",
"Copied from original": "Copiat de l'original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 els segĂŒents Col·laboradors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 els segĂŒents Col·laboradors:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Creant patrons a ignorar, sobreescriguent un fitxer que ja existeix a {{path}}.",
"Danger!": "Perill!",
"Deleted": "Esborrat",
"Device": "Device",
"Device": "Dispositiu",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Dispositiu \"{{name}}\" ({{device}} a l'adreça {{address}}) vol connectar. Afegir nou dispositiu?",
"Device ID": "ID del dispositiu",
"Device Identification": "IdentificaciĂł del dispositiu",
@@ -50,6 +56,7 @@
"Disconnected": "Desconnectat",
"Discovered": "Descobert",
"Discovery": "Descobriment",
"Discovery Failures": "Fallades al Descobriment",
"Documentation": "DocumentaciĂł",
"Download Rate": "Velocitat de descĂ rrega",
"Downloaded": "Descarregat",
@@ -58,17 +65,23 @@
"Edit Device": "Editar Dispositiu",
"Edit Folder": "Editar Carpeta",
"Editing": "Editant",
"Editing {%path%}.": "Editant {{path}}.",
"Enable NAT traversal": "Permetre NAT transversal",
"Enable Relaying": "Permetre Transmissions",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Introdueix un nombre no negatiu (per exemple, \"2.35\") i selecciona una unitat. Els percentatges sĂłn com a part del tamany total del disc.",
"Enter a non-privileged port number (1024 - 65535).": "Introdueix un nombre de port sense privilegis (1024-65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Introdueix adreces separades per coma (\"tcp://ip:port\", \"tcp://host:port\") o \"dynamic\" per a realitzar el descobriment automàtic de l'adreça.",
"Enter ignore patterns, one per line.": "IntroduĂŻr patrons a ignorar, un per lĂ­nia.",
"Error": "Error",
"External File Versioning": "Versionat extern de fitxers",
"Failed Items": "Objectes fallits",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "És possible que es produïsca una fallada al connectar als servidors IPv6 si no hi ha connectivitat IPv6.",
"File Pull Order": "Ordre de fitxers del pull",
"File Versioning": "Versionat de fitxer",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Els bits de permĂ­s del fitxer sĂłn ignorats quant es busquen els canvis. Utilitzar en sistemes de fitxers FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Els fitxers seràn moguts al directori .stversions quant siguen reemplaçats o esborrats per Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Els arxius es menejen a la carpeta .stversions quant sĂłn substituĂŻts o esborrats per Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Els arxius seran moguts a un directori .stversions a versions amb control de la data quan siguen reemplaçats o esborrats per Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Els fitxers són canviats a versions amb indicació de data en una carpeta \".stversions\" quant són reemplaçats o esborrats per Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Els fitxers sĂłn protegits dels canvis fets en altres dispositius, perĂČ els canvis fets en aquest dispositiu serĂ n enviats a la resta del grup (cluster).",
"Folder": "Carpeta",
@@ -80,9 +93,11 @@
"GUI": "IGU (InterfĂ­cie GrĂ fica d'Usuari)",
"GUI Authentication Password": "Password d'autenticaciĂł de l'InterfĂ­cie GrĂ fica d'Usuari (GUI)",
"GUI Authentication User": "AutenticaciĂł de l'usuari de l'InterfĂ­cie GrĂ fica d'Usuari (GUI)",
"GUI Listen Address": "Adreça d'Escolta de l'Interfície Gràfica d'Usuari (GUI).",
"GUI Listen Addresses": "DirecciĂł d'escolta de l'InterfĂ­cie GrĂ fica d'Usuari (GUI)",
"GUI Theme": "Tema de l'InterfĂ­cie GrĂ fica d'Usuari (GUI)",
"Generate": "Generar",
"Global Changes": "Global Changes",
"Global Changes": "Canvis Globals",
"Global Discovery": "Descobriment global",
"Global Discovery Servers": "Servidors de Descobriment Global",
"Global State": "Estat global",
@@ -93,7 +108,7 @@
"Ignore Permissions": "Permisos a ignorar",
"Incoming Rate Limit (KiB/s)": "LĂ­mit de descĂ rrega (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "La configuraciĂłn incorrecta pot danyar el contingut de la teua carpeta i deixar Syncthing inoperatiu.",
"Introduced By": "Introduced By",
"Introduced By": "IntroduĂŻt Per",
"Introducer": "Presentador",
"Inversion of the given condition (i.e. do not exclude)": "InversiĂł de la condiciĂł donada (per exemple no excloure)",
"Keep Versions": "Mantindre versions",
@@ -103,6 +118,7 @@
"Last seen": "Vist per Ășltima vegada",
"Later": "Més tard",
"Latest Change": "Últim Canvi",
"Learn more": "Saber més",
"Listeners": "Escoltants",
"Local Discovery": "Descobriment local",
"Local State": "Estat local",
@@ -120,6 +136,7 @@
"Newest First": "El més nou primer",
"No": "No",
"No File Versioning": "Sense versionat de fitxer",
"No upgrades": "Sense actualitzacions",
"Normal": "Normal",
"Notice": "AvĂ­s",
"OK": "OK",
@@ -131,14 +148,18 @@
"Out of Sync Items": "Dispositius sense sincronitzar",
"Outgoing Rate Limit (KiB/s)": "LĂ­mit de pujada (KiB/s)",
"Override Changes": "Sobreescriure els canvis",
"Path": "Path",
"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 a la carpeta local en l'ordinador. Es crearĂ  si no existeix. El carĂ cter tilde (~) es pot utilitzar com a drecera",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "La ruta on deuen guardar-se les versions (deixar buit per al directori per defecte .stversions en la carpeta compartida).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ruta on les versions deurien estar emmagatzemades (deixar buit per a la carpeta .stversions en la carpeta).",
"Pause": "Pausa",
"Pause All": "Pausa Tot",
"Paused": "Pausat",
"Please consult the release notes before performing a major upgrade.": "Per favor, consultar les notes de la versiĂł abans de fer una actualitzaciĂł important.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Per favor, estableix un usuari i password per a l'InterfĂ­cie GrĂ fica d'Usuari en el menĂș d'Adjustos.",
"Please wait": "Per favor, espere",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Vista prĂšvia",
"Preview Usage Report": "Informe d'Ășs de vista prĂšvia",
"Quick guide to supported patterns": "GuĂ­a rĂ pida de patrons suportats",
@@ -146,6 +167,7 @@
"Random": "Aleatori",
"Reduced by ignore patterns": "ReduĂŻt ignorant patrons",
"Release Notes": "Notes de la versiĂł",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Les versions candidates (Release Candidates) contenen les darreres caracterĂ­stiques i arreglos. SĂłn paregudes a les versions tradicionals bi-semanals de Syncthing. ",
"Remote Devices": "Dispositius Remots",
"Remove": "Eliminar",
"Required identifier for the folder. Must be the same on all cluster devices.": "Identificador necessari per la carpeta. Deu ser el mateix en tots els dispositius del cluster.",
@@ -156,6 +178,7 @@
"Restart Needed": "Reinici necesari",
"Restarting": "Reiniciant",
"Resume": "Continuar",
"Resume All": "Continuar Tot",
"Reused": "Reutilitzat",
"Save": "Gravar",
"Scan Time Remaining": "Temps d'escaneig restant",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "ComodĂ­ de nivell Ășnic (coincideix sols dins d'un directori)",
"Smallest First": "El més xicotet primer",
"Source Code": "Codi font",
"Stable releases and release candidates": "Versions estables i versions candidates",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Les versions estables es retrasen sobre dos setmanes. Durant aquest temps es fiquen a prova com versions candidates.",
"Stable releases only": "Solament versions estables",
"Staggered File Versioning": "Versionat de fitxers escalonat",
"Start Browser": "Iniciar navegador",
"Statistics": "EstadĂ­stiques",
@@ -221,9 +247,10 @@
"This Device": "Aquest Dispositiu",
"This can easily give hackers access to read and change any files on your computer.": "AçĂČ pot donar accĂ©s fĂ cilment als hackers per a llegir i canviar qualsevol fitxer al teu ordinador.",
"This is a major version upgrade.": "Aquesta és una actualització important de la versió.",
"Time": "Time",
"This setting controls the free space required on the home (i.e., index database) disk.": "Aquest ajust controla l'espai lliure requerit en el disc inicial (per exemple, la base de dades de l'index).",
"Time": "Temps",
"Trash Can File Versioning": "Versionat d'arxius de la paperera",
"Type": "Type",
"Type": "Tipus",
"Unknown": "Desconegut",
"Unshared": "No compartit",
"Unused": "No utilitzat",
@@ -234,17 +261,21 @@
"Upgrading": "Actualitzant",
"Upload Rate": "Velocitat d'actualitzaciĂł",
"Uptime": "Temps de funcionament",
"Use HTTPS for GUI": "Utilitzar HTTP per a l'InterfĂ­cie GrĂ fica d'Usuari (GUI)",
"Usage reporting is always enabled for candidate releases.": "Els informes d'Ășs sempre estan activats per a les versions candidates.",
"Use HTTPS for GUI": "Utilitzar HTTPS per a l'InterfĂ­cie GrĂ fica d'Usuari (GUI)",
"Version": "VersiĂł",
"Versions Path": "Ruta de les versions",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Les versions s'esborren automàticament si són més antigues que l'edat màxima o excedixen el nombre de fitxer permesos en un interval.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Perill! Aquesta ruta és un subdirectori d'una carpeta que ja existeix nomenada \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Perill! Esta ruta és un directori pare d'una carpeta ja existent \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Perill! Esta ruta és un directori pare d'una carpeta existent \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Perill! Esta ruta és un subdirectori d'una carpeta que ja existeix nomenada \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Perill! Esta ruta és un subdirectori de una carpeta existent \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Quant s'afig un nou dispositiu, hi ha que tindre en compte que aquest dispositiu deu ser afegit també en l'altre costat.",
"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.": "Quant s'afig una nova carpeta, hi ha que tindre en compte que l'ID de la carpeta s'utilitza per a juntar les carpetes entre dispositius. SĂłn sensibles a les majĂșscules i deuen coincidir exactament entre tots els dispositius.",
"Yes": "SĂ­",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "Pots canviar la teua elecciĂł en qualsevol moment en el dialog Ajustos",
"You can read more about the two release channels at the link below.": "Pots llegir més sobre els dos canals de versions en l'enllaç de baix.",
"You must keep at least one version.": "Es deu mantindre al menys una versiĂł.",
"days": "dies",
"directories": "directoris",

View File

@@ -4,12 +4,13 @@
"A new major version may not be compatible with previous versions.": "NovĂĄ dĆŻleĆŸitĂĄ verze nemusĂ­ bĂœt kompatibilnĂ­ s pƙedchozĂ­mi verzemi.",
"API Key": "API klíč",
"About": "O aplikaci",
"Action": "Action",
"Action": "Akce",
"Actions": "Akce",
"Add": "Pƙidat",
"Add Device": "Pƙidat pƙístroj",
"Add Folder": "Pƙidat adresáƙ",
"Add Remote Device": "Pƙidat vzdĂĄlenĂ© zaƙízenĂ­",
"Add devices from the introducer to our device list, for mutually shared folders.": "Pƙidat zaƙízenĂ­ ze zavaděče do naĆĄeho seznamu zaƙízenĂ­, pro vzĂĄjemně sdĂ­lenĂ© adresáƙe.",
"Add new folder?": "Pƙidat novĂœ adresáƙ?",
"Address": "Adresa",
"Addresses": "Adresy",
@@ -18,16 +19,20 @@
"Advanced settings": "Pokročilá nastavení",
"All Data": "VĆĄechna data",
"Allow Anonymous Usage Reporting?": "Povolit anonymnĂ­ hlĂĄĆĄenĂ­ o pouĆŸĂ­vĂĄnĂ­?",
"Allowed Networks": "PovolenĂ© sĂ­tě",
"Alphabetic": "Abecedně",
"An external command handles the versioning. It has to remove the file from the shared folder.": "O verzovĂĄnĂ­ se starĂĄ externĂ­ pƙíkaz. To on musĂ­ smazat soubor ze sdĂ­lenĂ©ho adresáƙe.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "VerzovĂĄnĂ­ obstarĂĄvĂĄ externĂ­ pƙíkaz. MusĂ­ odstranit soubor ze sdĂ­lenĂ©ho adresáƙe.",
"Anonymous Usage Reporting": "AnonymnĂ­ hlĂĄĆĄenĂ­ o pouĆŸĂ­vĂĄnĂ­",
"Any devices configured on an introducer device will be added to this device as well.": "JakĂ©koliv pƙístroje nakonfigurovanĂ© na zavaděči budou pƙidĂĄny takĂ© na tento pƙístroj.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "AutomatickĂĄ aktualizace nynĂ­ nabĂ­zĂ­ volbu mezi stabilnĂ­mi vydĂĄnĂ­mi a kandidĂĄty na vydĂĄnĂ­.",
"Automatic upgrades": "Automatické aktualizace",
"Be careful!": "Pozor!",
"Bugs": "Chyby",
"CPU Utilization": "VyuĆŸitĂ­ CPU",
"Changelog": "Changelog",
"Clean out after": "Vyčistit po",
"Click to see discovery failures": "Kliknutím zobrazíte selhání pƙi oznamování",
"Close": "Zavƙít",
"Command": "Pƙíkaz",
"Comment, when used at the start of a line": "Komentáƙ, pokud pouĆŸito na začátku ƙádku",
@@ -38,10 +43,11 @@
"Copied from elsewhere": "ZkopĂ­rovĂĄno odjinud",
"Copied from original": "ZkopĂ­rovĂĄno z originĂĄlu",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 nĂĄsledujĂ­cĂ­ pƙispěvatelĂ©:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 nĂĄsledujĂ­cĂ­ pƙispěvatelĂ©:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "VytváƙenĂ­ ignorovanĂœch vzorĆŻ, pƙepisovĂĄnĂ­ existujĂ­cĂ­ho souboru v {{path}}.",
"Danger!": "Pozor!",
"Deleted": "SmazĂĄno",
"Device": "Device",
"Device": "Zaƙízení",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "ZaƙízenĂ­ \"{{name}}\" ({{device}} na {{address}}) se chce pƙipojit. Pƙidat novĂ© zaƙízenĂ­?",
"Device ID": "ID pƙístroje",
"Device Identification": "Identifikace pƙístroje",
@@ -50,6 +56,7 @@
"Disconnected": "Odpojen",
"Discovered": "Nalezeno",
"Discovery": "OznamovĂĄnĂ­",
"Discovery Failures": "Selhání pƙi oznamování",
"Documentation": "Dokumentace",
"Download Rate": "Rychlost stahovĂĄnĂ­",
"Downloaded": "StaĆŸeno",
@@ -58,18 +65,24 @@
"Edit Device": "Upravit zaƙízení",
"Edit Folder": "Upravit adresáƙ",
"Editing": "Upravuje se",
"Editing {%path%}.": "Editace {{path}}.",
"Enable NAT traversal": "Povolit NAT pƙenos",
"Enable Relaying": "Povolit pƙenaơeče",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Zadajte kladnĂ© číslo (napƙ. \"2.35\") a zvolte jednotku. Percenta znamenajĂ­ část celkovĂ© velikosti disku.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Zadejte adresy oddělenĂ© čárkou (\"tcp://ip:port\", \"tcp://host:port\") nebo \"dynamic\" pro automatickĂ© zjiĆĄĆ„ovĂĄnĂ­ adres.",
"Enter ignore patterns, one per line.": "VloĆŸit ignorovanĂ© vzory, jeden na ƙádek.",
"Error": "Chyba",
"External File Versioning": "ExternĂ­ verzovĂĄnĂ­ souborĆŻ",
"Failed Items": "Selhalo",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Je v poƙádku, kdyĆŸ pƙipojenĂ­ k IPv6 serverĆŻm selĆŸe, pokud nenĂ­ k dispozici IPv6 konektivita.",
"File Pull Order": "Poƙadí stahování souborƯ",
"File Versioning": "VerzovĂĄnĂ­ souborĆŻ",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Bity označujĂ­cĂ­ prĂĄva souborĆŻ jsou pƙi hledĂĄnĂ­ změn ignorovĂĄny. PouĆŸĂ­t pro souborovĂ© systĂ©my FAT.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Po nahrazení nebo smazání aplikací Syncthing jsou soubory pƙesunuty do adresáƙe .stversions.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Po nahrazenĂ­ nebo smazĂĄnĂ­ aplikacĂ­ Syncthing jsou soubory pƙesunuty do verzĂ­ označenĂœch daty v adresáƙi .stversions.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Po nahrazení nebo smazání aplikací Syncthing jsou soubory pƙesunuty do adresáƙe .stversions.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Po nahrazenĂ­ nebo smazĂĄnĂ­ aplikacĂ­ Syncthing jsou soubory pƙesunuty do sloĆŸky .stversions.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Po nahrazenĂ­ nebo smazĂĄnĂ­ aplikacĂ­ Syncthing jsou soubory pƙesunuty do verzĂ­ označenĂœch daty v adresáƙi .stversions.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Po nahrazenĂ­ nebo smazĂĄnĂ­ aplikacĂ­ Syncthing jsou soubory pƙesunuty do verzĂ­ označenĂœch daty ve sloĆŸce .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.": "Soubory jsou chrĂĄněny pƙed změnami na ostatnĂ­ch pƙístrojĂ­ch, ale změny provedenĂ© z tohoto pƙístroje budou rozeslĂĄny na zbytek clusteru.",
"Folder": "Adresáƙ",
"Folder ID": "ID adresáƙe",
@@ -80,9 +93,11 @@
"GUI": "GUI",
"GUI Authentication Password": "Pƙihlaơovací heslo pro GUI",
"GUI Authentication User": "PƙihlaĆĄovacĂ­ jmĂ©no pro GUI",
"GUI Listen Address": "Adresa naslouchĂĄnĂ­ GUI",
"GUI Listen Addresses": "Adresa naslouchĂĄnĂ­ GUI",
"GUI Theme": "Grafické téma",
"Generate": "Generovat",
"Global Changes": "Global Changes",
"Global Changes": "Globální změny",
"Global Discovery": "GlobĂĄlnĂ­ oznamovĂĄnĂ­",
"Global Discovery Servers": "Servery globĂĄlnĂ­ho oznamovĂĄnĂ­",
"Global State": "GlobĂĄlnĂ­ status",
@@ -93,7 +108,7 @@
"Ignore Permissions": "Ignorovat oprávnění",
"Incoming Rate Limit (KiB/s)": "Omezení pƙíchozí rychlosti (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "NesprĂĄvnĂ© nastavenĂ­ mĆŻĆŸe poĆĄkodit obsah VaĆĄich adresáƙƯ a učinit Syncthing nefunkčnĂ­.",
"Introduced By": "Introduced By",
"Introduced By": "Zavedl",
"Introducer": "Zavaděč",
"Inversion of the given condition (i.e. do not exclude)": "ProhozenĂ­ zadanĂ© podmĂ­nky (napƙ. nevynechat)",
"Keep Versions": "Ponechat verze",
@@ -103,6 +118,7 @@
"Last seen": "Naposledy spatƙen",
"Later": "Později",
"Latest Change": "Poslední změna",
"Learn more": "Zjistěte více",
"Listeners": "NaslouchajĂ­cĂ­",
"Local Discovery": "MĂ­stnĂ­ oznamovĂĄnĂ­",
"Local State": "MĂ­stnĂ­ status",
@@ -113,13 +129,14 @@
"Metadata Only": "Pouze metadata",
"Minimum Free Disk Space": "Minimålní velikost volného místa na disku",
"Move to top of queue": "Pƙesunout na začátek fronty",
"Multi level wildcard (matches multiple directory levels)": "VĂ­ceĂșrovƈovĂœ zĂĄstupnĂœ znak (shoda skrz vĂ­ce ĂșrovnĂ­ adresáƙƯ)",
"Multi level wildcard (matches multiple directory levels)": "VĂ­ceĂșrovƈovĂœ zĂĄstupnĂœ znak (shoda skrz vĂ­ce ĂșrovnĂ­ sloĆŸek)",
"Never": "Nikdy",
"New Device": "NovĂœ pƙístroj",
"New Folder": "NovĂœ adresáƙ",
"Newest First": "Od nejnovějơího",
"No": "Ne",
"No File Versioning": "Bez verzovĂĄnĂ­ souborĆŻ",
"No upgrades": "ĆœĂĄdnĂ© aktualizace",
"Normal": "NormĂĄlnĂ­",
"Notice": "OznĂĄmenĂ­",
"OK": "OK",
@@ -131,14 +148,18 @@
"Out of Sync Items": "NesesynchronizovanĂ© poloĆŸky",
"Outgoing Rate Limit (KiB/s)": "OmezenĂ­ odchozĂ­ rychlosti (KiB/s)",
"Override Changes": "Pƙepsat změny",
"Path": "Path",
"Path": "Cesta",
"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": "Cesta k adresáƙi na lokĂĄlnĂ­m počítači. Pokud neexistuje, bude vytvoƙen. Znak vlnovky (~) mĆŻĆŸe bĂœt pouĆŸit jako zkratka pro",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Cesta pro uklĂĄdĂĄnĂ­ verzĂ­ (nechat prĂĄzdnĂ© pro vĂœchozĂ­ podadresáƙ .stversions v adresáƙích).",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Cesta pro uklĂĄdĂĄnĂ­ verzĂ­ (ponechte prĂĄzdnĂ© pro vĂœchozĂ­ adresáƙ .stversions ve sdĂ­lenĂ©m adresáƙi).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Cesta pro uklĂĄdĂĄnĂ­ verzĂ­ (nechat prĂĄzdnĂ© pro vĂœchozĂ­ sloĆŸku .stversions v adresáƙi).",
"Pause": "Pozastavit",
"Pause All": "Pozastavit vĆĄe",
"Paused": "Pozastaveno",
"Please consult the release notes before performing a major upgrade.": "Pƙed spuĆĄtěnĂ­m dĆŻleĆŸitĂ© aktualizace si nejdƙíve pƙečtěte poznĂĄmky k vydĂĄnĂ­ novĂ© verze.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Zadejte prosĂ­m pƙihlaĆĄovacĂ­ jmĂ©no a heslo pro GUI v dialogu nastavenĂ­.",
"Please wait": "ChvĂ­li strpenĂ­",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "NĂĄhled",
"Preview Usage Report": "NĂĄhled zĂĄznamu o vyuĆŸĂ­tĂ­",
"Quick guide to supported patterns": "RychlĂĄ nĂĄpověda k podporovanĂœm vzorĆŻm",
@@ -146,6 +167,7 @@
"Random": "Náhodně",
"Reduced by ignore patterns": "Redukovåno o ignorované vzory",
"Release Notes": "PoznĂĄmky k vydĂĄnĂ­",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "KandidĂĄti na vydĂĄnĂ­ obsahujĂ­ nejnovějĆĄĂ­ změny a opravy. PodobajĂ­ se tradičnĂ­m dvoutĂœdennĂ­m vydĂĄnĂ­m Syncthing.",
"Remote Devices": "Vzdálená zaƙízení",
"Remove": "Odstranit",
"Required identifier for the folder. Must be the same on all cluster devices.": "PoĆŸadovanĂœ identifikĂĄtor adresáƙe. MusĂ­ bĂœt stejnĂœ na vĆĄech zaƙízenĂ­ch.",
@@ -156,6 +178,7 @@
"Restart Needed": "Je nutnĂœ restart",
"Restarting": "Restartuji",
"Resume": "Pokračovat",
"Resume All": "Pokračovat (vơe)",
"Reused": "Opakovaně pouĆŸitĂ©",
"Save": "UloĆŸit",
"Scan Time Remaining": "ZbĂœvajĂ­cĂ­ čas skenovĂĄnĂ­",
@@ -178,9 +201,12 @@
"Shutdown": "Vypnout",
"Shutdown Complete": "Vypnutí dokončeno",
"Simple File Versioning": "Jednoduché verzovåní souborƯ",
"Single level wildcard (matches within a directory only)": "JednoĂșrovƈovĂœ zĂĄstupnĂœ znak (shody pouze uvnitƙ adresáƙe)",
"Single level wildcard (matches within a directory only)": "JednoĂșrovƈovĂœ zĂĄstupnĂœ znak (shody pouze uvnitƙ sloĆŸky)",
"Smallest First": "Od nejmenĆĄĂ­ho",
"Source Code": "ZdrojovĂœ kĂłd",
"Stable releases and release candidates": "StabilnĂ­ vydĂĄnĂ­ a kandidĂĄti na vydĂĄnĂ­",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "StabilnĂ­ vydĂĄnĂ­ jsou opoĆŸděna zhruba o dva tĂœdny. Po tuto dobu se testujĂ­ jako kandidĂĄti na vydĂĄnĂ­.",
"Stable releases only": "Pouze stabilnĂ­ vydĂĄnĂ­",
"Staggered File Versioning": "Postupné verzovåní souborƯ",
"Start Browser": "Otevƙít prohlĂ­ĆŸeč",
"Statistics": "Statistiky",
@@ -221,9 +247,10 @@
"This Device": "Toto zaƙízení",
"This can easily give hackers access to read and change any files on your computer.": "To mĆŻĆŸe ĂștočnĂ­kĆŻm jednoduĆĄe povolit čtenĂ­ a Ășpravy souborĆŻ na vaĆĄem pƙístroji. ",
"This is a major version upgrade.": "Toto je dĆŻleĆŸitĂĄ aktualizace.",
"Time": "Time",
"This setting controls the free space required on the home (i.e., index database) disk.": "This setting controls the free space required on the home (i.e., index database) disk.",
"Time": "Čas",
"Trash Can File Versioning": "VerzovĂĄnĂ­ souborĆŻ v koĆĄi",
"Type": "Type",
"Type": "Typ",
"Unknown": "NeznĂĄmĂœ",
"Unshared": "NesdĂ­lenĂœ",
"Unused": "NepouĆŸitĂœ",
@@ -234,17 +261,21 @@
"Upgrading": "Aktualizuji",
"Upload Rate": "Rychlost odesĂ­lĂĄnĂ­",
"Uptime": "CelkovĂœ čas běhu",
"Usage reporting is always enabled for candidate releases.": "HlĂĄĆĄenĂ­ o pouĆŸĂ­vĂĄnĂ­ je pro kandidĂĄty na vydĂĄnĂ­ vĆŸdy zapnuto.",
"Use HTTPS for GUI": "PouĆŸĂ­t HTTPS pro grafickĂ© rozhranĂ­",
"Version": "Verze",
"Versions Path": "Cesta k verzĂ­m",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Verze jsou automaticky smazĂĄny, pokud jsou starĆĄĂ­ neĆŸ maximĂĄlnĂ­ časovĂœ limit nebo pƙekročí počet souborĆŻ povolenĂœch pro interval.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Varování: tato cesta je podadresáƙem existujícího adresáƙe \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "VarovĂĄnĂ­, tato cesta je nadƙazenou sloĆŸkou existujĂ­cĂ­ho adresáƙe \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "VarovĂĄnĂ­, tato cesta je nadƙazenou sloĆŸkou existujĂ­cĂ­ho adresáƙe \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "VarovĂĄnĂ­: tato cesta je podsloĆŸkou existujĂ­cĂ­ho adresáƙe \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "VarovĂĄnĂ­, tato cesta je podsloĆŸkou existujĂ­cĂ­ho adresáƙe \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Pƙi pƙidĂĄvĂĄnĂ­ novĂ©ho pƙístroje mějte na paměti, ĆŸe je ho tƙeba takĂ© zadat na druhĂ© straně.",
"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.": "Pƙi pƙidĂĄvĂĄnĂ­ novĂ©ho adresáƙe mějte na paměti, ĆŸe jeho ID je pouĆŸito ke svĂĄzĂĄnĂ­ adresáƙƯ napƙíč pƙístoji. RozliĆĄujĂ­ se malĂĄ a velkĂĄ pĂ­smena a musĂ­ pƙesně souhlasit mezi vĆĄemi pƙístroji.",
"Yes": "Ano",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "VaĆĄi volbu mĆŻĆŸete kdykoliv změnit v dialogu nastavenĂ­.",
"You can read more about the two release channels at the link below.": "O kandidĂĄtech na vydĂĄnĂ­ si mĆŻĆŸete pƙečíst vĂ­ce v odkazu nĂ­ĆŸe.",
"You must keep at least one version.": "Je tƙeba ponechat alespoƈ jednu verzi.",
"days": "dnĂ­",
"directories": "sloĆŸek",

View File

@@ -1,90 +1,105 @@
{
"A device with that ID is already added.": "A device with that ID is already added.",
"A device with that ID is already added.": "En enhed, med dette id, er allerede tilfĂžjet.",
"A negative number of days doesn't make sense.": "Et negativt antal dage giver ikke mening.",
"A new major version may not be compatible with previous versions.": "En ny versionsudgivelse er mÄske ikke kompatibel med tidligere versioner.",
"API Key": "API-nĂžgle",
"About": "Om",
"Action": "Action",
"Action": "Handling",
"Actions": "Handlinger.",
"Add": "TilfĂžj",
"Add Device": "TilfĂžj enhed",
"Add Folder": "TilfĂžj mappe",
"Add Remote Device": "Add Remote Device",
"Add Remote Device": "TilfĂžj fjernenhed",
"Add devices from the introducer to our device list, for mutually shared folders.": "Add devices from the introducer to our device list, for mutually shared folders.",
"Add new folder?": "TilfĂžj ny mappe",
"Address": "Adresse",
"Addresses": "Adresser",
"Advanced": "Avanceret",
"Advanced Configuration": "Avanceret konfiguration",
"Advanced settings": "Advanced settings",
"Advanced settings": "Avancerede indstillinger",
"All Data": "Alt data",
"Allow Anonymous Usage Reporting?": "Tillad anonym brugerstatistik?",
"Allowed Networks": "Tilladte netvĂŠrk",
"Alphabetic": "Alfabetisk",
"An external command handles the versioning. It has to remove the file from the shared folder.": "En ekstern kommando styrer versioneringen. Den skal fjerne filen fra den delte mappe.",
"An external command handles the versioning. It has to remove the file from the synced folder.": " ",
"Anonymous Usage Reporting": "Anonym brugerstatistik",
"Any devices configured on an introducer device will be added to this device as well.": "Alle enheder som er konfigueret som en introducerende enhed, vil ogsÄ blive tilfÞjet til denne enhed.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Den automatiske opdatering tilbyder nu valget mellem stabile - og udgivelses kandidater.",
"Automatic upgrades": "Automatisk opdatering",
"Be careful!": "VĂŠr forsigtig!",
"Bugs": "Fejl",
"CPU Utilization": "CPU-forbrug",
"Changelog": "Udgivelsesnoter",
"Clean out after": "Rens efter",
"Click to see discovery failures": "Klik for at se opdagelses fejl ",
"Close": "Luk",
"Command": "Kommando",
"Comment, when used at the start of a line": "Kommentering som bruges i starten af en linje",
"Compression": "Anvend komprimering",
"Configured": "Configured",
"Configured": "Konfigureret",
"Connection Error": "Tilslutnings fejl",
"Connection Type": "Connection Type",
"Connection Type": "Tilslutningstype",
"Copied from elsewhere": "Kopieret fra et andet sted",
"Copied from original": "Kopieret fra originalen",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 de fÞlgende bidragsydere:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 de fÞlgende bidragsydere:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Creating ignore patterns, overwriting an existing file at {{path}}.",
"Danger!": "Fare!",
"Deleted": "Slettet",
"Device": "Device",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Device \"{{name}}\" ({{device}} at {{address}}) wants to connect. Add new device?",
"Device": "Enhed",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Enheden\"{{name}}\" ({{device}} pÄ {{address}}) vil gerne forbinde. TilfÞj denne enhed ? ",
"Device ID": "Enheds-ID",
"Device Identification": "Enhedsidentifikation",
"Device Name": "Enhedsnavn",
"Devices": "Enheder",
"Disconnected": "Ikke tilsluttet",
"Discovered": "Discovered",
"Discovered": "Opdaget",
"Discovery": "Opslag",
"Discovery Failures": "Opdagelses Fejl ",
"Documentation": "Dokumentation",
"Download Rate": "Downloadhastighed",
"Downloaded": "Downloadet",
"Downloading": "Downloader",
"Edit": "Rediger",
"Edit Device": "Edit Device",
"Edit Folder": "Edit Folder",
"Edit Device": "Rediger enhed",
"Edit Folder": "Rediger mappe",
"Editing": "Redigerer",
"Enable NAT traversal": "Enable NAT traversal",
"Enable Relaying": "Enable Relaying",
"Editing {%path%}.": "Redigerer {{path}}.",
"Enable NAT traversal": "Aktiver NAT",
"Enable Relaying": "Aktiver Relaying",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Angiv kommaseparerede adresser (\"tcp://ip:port\", \"tcp://host:port\") eller \"dynamic\" for at benytte automatisk opdagelse af adressen.",
"Enter ignore patterns, one per line.": "VÊlg ignorer maske, én per linje.",
"Error": "Fejl",
"External File Versioning": "Ekstern fil-versionskontrol",
"Failed Items": "Mislykkede filer",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Fejl i forbindelse med opkobling til IPv6 servere skal forventes hvis der ikke er IPv6 forbindelse. ",
"File Pull Order": "Filhentnings rĂŠkkefĂžlge",
"File Versioning": "Filversionering",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Filtilladelses bits ignoreres nÄr der sÞges efter Êndringer. Bruges pÄ FAT filsystemer. ",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Filer bliver flyttet til .stversions mappen, nÄr de bliver erstattet eller slettet af Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Filer flyttes til .stversions mappen nÄr de erstattes eller slettes af Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Filer er flyttet til datostemplet versioner i en .stversions mappe nÄr de bliver erstattet eller slettet af Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Filer flyttes til data-stemplede versioner i en .stversions mappe nÄr de erstattes eller slettes af Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Filer er beskyttet fra Êndringer foretaget pÄ andre enheder, men Êndringerne pÄ denne enhed vil blive sendt til alle andre tilknyttede enheder.",
"Folder": "Mappe",
"Folder ID": "Mappe-ID",
"Folder Label": "Folder Label",
"Folder Label": "Mappelabel",
"Folder Path": "Mappesti",
"Folder Type": "Folder Type",
"Folder Type": "Mappetype",
"Folders": "Mapper",
"GUI": "GUI",
"GUI Authentication Password": "GUI-kodeord",
"GUI Authentication User": "GUI-brugernavn",
"GUI Listen Address": "GUI Listen Address",
"GUI Listen Addresses": "GUI-lytteadresse",
"GUI Theme": "GUI tema",
"Generate": "Opret",
"Global Changes": "Global Changes",
"Global Changes": "Globale ĂŠndringer",
"Global Discovery": "Globalt opslag",
"Global Discovery Servers": "Global Discovery Servers",
"Global Discovery Servers": "Globale opslags servere",
"Global State": "Global tilstand",
"Help": "HjĂŠlp",
"Home page": "Hjem",
@@ -93,22 +108,23 @@
"Ignore Permissions": "Ignorér filrettigheder",
"Incoming Rate Limit (KiB/s)": "IndgÄende hastighedsbegrÊnsning (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Ukorrekt opsĂŠtning kan skade dine data og gĂžre Syncthing ude af stand til at fungere.",
"Introduced By": "Introduced By",
"Introduced By": "Introduceret af",
"Introducer": "Introducerende enhed",
"Inversion of the given condition (i.e. do not exclude)": "Det omvendte (dvs. undlad ikke)",
"Keep Versions": "Behold versioner",
"Largest First": "StĂžrste fĂžrst",
"Last File Received": "Sidste modtaget fil",
"Last Scan": "Last Scan",
"Last Scan": "Sidste skanning.",
"Last seen": "Sidst set",
"Later": "Senere",
"Latest Change": "Latest Change",
"Listeners": "Listeners",
"Latest Change": "Sidste ĂŠndring",
"Learn more": "LĂŠr mere",
"Listeners": "Lyttere",
"Local Discovery": "Lokal opslag",
"Local State": "Lokal tilstand",
"Local State (Total)": "Lokal tilstand (total)",
"Major Upgrade": "Ny version",
"Master": "Master",
"Master": "Mester ",
"Maximum Age": "Maks alder",
"Metadata Only": "Kun metadata",
"Minimum Free Disk Space": "Mindst ledig diskplads",
@@ -120,35 +136,41 @@
"Newest First": "Nyeste fĂžrst",
"No": "Nej",
"No File Versioning": "Ingen filversion",
"No upgrades": "Ingen opgraderinger",
"Normal": "Normal",
"Notice": "OBS",
"OK": "OK",
"Off": "SlÄ fra",
"Oldest First": "Ældste fþrst",
"Optional descriptive label for the folder. Can be different on each device.": "Optional descriptive label for the folder. Can be different on each device.",
"Optional descriptive label for the folder. Can be different on each device.": "En frivillig beskrivelse af mappen. Kan vÊre forskellig pÄ hver enkelt enhed.",
"Options": "Indstillinger",
"Out of Sync": "Ikke synkroniseret",
"Out of Sync Items": "Endnu ikke synkroniserede filer",
"Outgoing Rate Limit (KiB/s)": "UdgÄende hastighedsbegrÊnsning (KiB/s)",
"Override Changes": "Overskriv ĂŠndringer",
"Path": "Path",
"Path": "Sti",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Sti til den lokale mappe. Vil blive oprettet hvis den ikke findes. Tilde tegnet (~) kan bruges som en forkortelse for",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Sti hvor versioner skal gemmes ( lad dette felt vĂŠre tom for at bruge .stversions mappen i den delte mappe)",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Sti hvor versioner skal gemmes (efterlad tom for default .stversions mappe)",
"Pause": "Pause",
"Pause All": "SÊt alt pÄ pause",
"Paused": "Pauset",
"Please consult the release notes before performing a major upgrade.": "Tjek venligst udgivelsesnoterne fĂžr opgradering til en ny version.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "SĂŠt vensligt en GUI bruger og kodeord i opsĂŠtningsdialogen.",
"Please wait": "Vent venligst",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "ForhÄndsvisning",
"Preview Usage Report": "ForhÄndsvisning af forbrugsrapport",
"Quick guide to supported patterns": "Hurtig guide til supporteret mĂžnstre",
"RAM Utilization": "RAM-forbrug",
"Random": "TilfĂŠldig",
"Reduced by ignore patterns": "Reduced by ignore patterns",
"Reduced by ignore patterns": "Reduceret af ignorerings mĂžnsteret. ",
"Release Notes": "Udgivelsesnoter",
"Remote Devices": "Remote Devices",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Udgivelseskandidater indeholder alle de nyeste funktioner og rettelser. De er ens med de traditionelle 2 ugers Syncthing udgivelser.",
"Remote Devices": "Fjernenheder ",
"Remove": "Fjern",
"Required identifier for the folder. Must be the same on all cluster devices.": "Required identifier for the folder. Must be the same on all cluster devices.",
"Required identifier for the folder. Must be the same on all cluster devices.": "NÞdvendig identifikation af mappen. Dette skal vÊre det samme pÄ alle enheder.",
"Rescan": "Skan igen",
"Rescan All": "Skan alt igen",
"Rescan Interval": "Genskannings interval",
@@ -156,14 +178,15 @@
"Restart Needed": "Programmet krĂŠver genstart",
"Restarting": "Genstarter",
"Resume": "Genoptag",
"Resume All": "Genoptag alt",
"Reused": "Genbrugt",
"Save": "Gem",
"Scan Time Remaining": "Tid tilbage af skanningen",
"Scanning": "Opdaterer",
"Select the devices to share this folder with.": "VĂŠlg hvilke enheder du vil dele denne mappe med",
"Select the folders to share with this device.": "VĂŠlg hvilke mapper du vil dele med denne enhed.",
"Send & Receive": "Send & Receive",
"Send Only": "Send Only",
"Send & Receive": "Send & Modtag",
"Send Only": "Send Kun",
"Settings": "Indstillinger",
"Share": "Del",
"Share Folder": "Delt mappe",
@@ -172,7 +195,7 @@
"Share this folder?": "Del denne mappe",
"Shared With": "Delt med",
"Show ID": "Vis ID",
"Show QR": "Show QR",
"Show QR": "Vis QR",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Vist istedet for Enheds ID i klynge status. Vil blive vist pÄ andre enheder som valgfrit standard navn.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Vist istedet for Enheds ID i klynge status. Vil blive opdateret til det navn som enheden viser, hvis det ikke er udfyldt.",
"Shutdown": "Luk ned",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Enkeltnivau wildcard (matcher kun inden for en mapp)",
"Smallest First": "Mindste fĂžrst",
"Source Code": "Kildekode",
"Stable releases and release candidates": "Stabile udgivelser og udgivelseskandidater ",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Stabile udgivelser er forsinket med omkring 2 uger. I denne periode gennemgÄr de tests som udgivelseskandidater. ",
"Stable releases only": "Kun stabile udgivelser",
"Staggered File Versioning": "Forskudte filversioner",
"Start Browser": "Start browser",
"Statistics": "Statistikker",
@@ -195,10 +221,10 @@
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Syncthing ser ud til at vére stoppet eller oplever problemer med din internetforbindels. Prþver igen...",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Det ser ud til at Syncthiing har problemer med at udfĂžre opgaven. PrĂžv at genopfriske siden eller genstarte Synching hvis problemet vedbliver.",
"The Syncthing admin interface is configured to allow remote access without a password.": "Syncthing administationsdelen er konfigureret til at blive fjernstyret uden kodeord.",
"The aggregated statistics are publicly available at the URL below.": "The aggregated statistics are publicly available at the URL below.",
"The aggregated statistics are publicly available at the URL below.": "Den indsamlede statistik er offentlig tilgÊngelig pÄ den nedenstÄende URL.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Konfigurationen er gemt, men ikke aktiveret. Syncthing skal genstarte for at aktivere den nye konfiguration.",
"The device ID cannot be blank.": "Enhedens ID mÄ ikke vÊre tom.",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "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).",
"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).": "Det enheds ID som skal indtastes her kan findes under menuen \"Handlinger > Vis ID\" pÄ den anden enhed. Mellemrum og streger er frivillige. (De bliver ignoreret) ",
"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.": "Den krypterede forbrugsrapport sendes dagligt. Den benyttes til at spore anvendte platforme, mappestÞrrelser og versioner. Hvis det typen af opsamlet data Êndres pÄ et senere tidspunkt, vil du blive spurgt om tilladelse igen.",
"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.": "Det indtastede node ID ser ikke gyldigt ud. Det skal vÊre en 52 eller 56 tegn streng, bestÄende af tal og bogstaver, eventuelt med mellemrum og bindestreger.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "Den fĂžrste kommandolinjeparameter er mappestien og den anden parameter er den relative sti til mappen.",
@@ -218,10 +244,11 @@
"The rate limit must be a non-negative number (0: no limit)": "RatebegrÊnsningen mÄ ikke vÊre negative tal (0: ingen begrÊnsning)",
"The rescan interval must be a non-negative number of seconds.": "Genskanningsintervallet skal vĂŠre et ikke-negativt antal sekunder",
"They are retried automatically and will be synced when the error is resolved.": "De prÞves igen automatisk og vil blive synkroniseret nÄr fejlen er lÞst.",
"This Device": "This Device",
"This Device": "Denne Enhed",
"This can easily give hackers access to read and change any files on your computer.": "Dette gÞr det nemt for hackere at fÄ adgang til at lÊse og Êndre filer pÄ din computer.",
"This is a major version upgrade.": "Dette er en ny version",
"Time": "Time",
"This setting controls the free space required on the home (i.e., index database) disk.": "This setting controls the free space required on the home (i.e., index database) disk.",
"Time": "Tid",
"Trash Can File Versioning": "Skraldespand fil versioner",
"Type": "Type",
"Unknown": "Ukendt",
@@ -234,23 +261,27 @@
"Upgrading": "Opgradere",
"Upload Rate": "Uploadhastighed",
"Uptime": "Oppetid",
"Usage reporting is always enabled for candidate releases.": "Forbrugsraportering er altid slÄet til for udgivelseskandidater.",
"Use HTTPS for GUI": "Anvend HTTPS til GUI adgang",
"Version": "Version",
"Versions Path": "Versions-sti",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Versioner slettes automatisk, hvis de er ĂŠldre end den satte maksimum alder eller overstiger det tilladte antal filer i et interval.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a subdirectory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Advarsel, denne sti er en rodmappe til den eksisterende mappe \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Advarsel, denne sti er en rodmappe til den eksisterende mappe \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Advarsel, denne sti er en undermappe af en eksisterende mappe \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Advarsel, denne sti er en undermappe af en eksisterende mappe \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "NÄr der tilfÞjes en ny enhed, vÊr da opmÊrksom pÄ, at denne enhed ogsÄ skal tilfÞjes pÄ den anden side.",
"When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "NÄr der tilfÞjes en ny enhed, vÊr da opmÊrksom pÄ at samme ID bruges til at forbinde mapperne pÄ de forskellige enheder. Der er forskel pÄ store og smÄ bogstaver, og ID skal vÊre fuldstÊndig identisk pÄ alle enheder.",
"Yes": "Ja",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "Du kan altid ĂŠndre dit valg under indstillinger.",
"You can read more about the two release channels at the link below.": "Du kan lÊse mere om de to udgivelseskanaler pÄ links herunder.",
"You must keep at least one version.": "Du skal beholde mindst én version.",
"days": "dage",
"directories": "directories",
"files": "files",
"directories": "mapper",
"files": "filer",
"full documentation": "Fuld dokumentation",
"items": "poster",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} Ăžnsker at dele mappen \"{{folder}}\". ",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} wants to share folder \"{{folderlabel}}\" ({{folder}})."
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} vil gerne dele mappen \"{{folderlabel}}\" ({{folder}})."
}

View File

@@ -10,6 +10,7 @@
"Add Device": "GerĂ€t hinzufĂŒgen",
"Add Folder": "Ordner hinzufĂŒgen",
"Add Remote Device": "GerĂ€t hinzufĂŒgen",
"Add devices from the introducer to our device list, for mutually shared folders.": "FĂŒgt GerĂ€te vom VerteilergerĂ€t zu der eigenen GerĂ€teliste hinzu, um gegenseitig geteilte Ordner zu ermöglichen.",
"Add new folder?": "Neuen Ordner hinzufĂŒgen?",
"Address": "Adresse",
"Addresses": "Adressen",
@@ -18,16 +19,20 @@
"Advanced settings": "Erweiterte Einstellungen",
"All Data": "Alle Daten",
"Allow Anonymous Usage Reporting?": "Übertragung von anonymen Nutzungsberichten erlauben?",
"Allowed Networks": "Erlaubte Netzwerke",
"Alphabetic": "Alphabetisch",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Ein externer Befehl fĂŒhrt die Versionierung durch. Er muss die Datei aus dem geteilten Ordner entfernen.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Ein externer Programmaufruf handhabt die Versionierung. Es muss die Datei aus dem zu synchronisierendem Ordner entfernen.",
"Anonymous Usage Reporting": "Anonymer Nutzungsbericht",
"Any devices configured on an introducer device will be added to this device as well.": "Alle GerÀte, die beim Verteiler eingetragen sind, werden auch bei diesem GerÀt eingetragen",
"Any devices configured on an introducer device will be added to this device as well.": "Alle GerĂ€te, die beim VerteilergerĂ€t eingetragen sind, werden auch bei diesem GerĂ€t hinzugefĂŒgt.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Die automatische Aktualisierung bietet jetzt die Wahl zwischen stabilen Veröffentlichungen und Veröffentlichungskandidaten.",
"Automatic upgrades": "Automatische Updates aktivieren",
"Be careful!": "Vorsicht!",
"Bugs": "Fehler",
"CPU Utilization": "Prozessorauslastung",
"Changelog": "Änderungsprotokoll",
"Clean out after": "Löschen nach",
"Click to see discovery failures": "Klick um GerÀtesuchfehler anzuzeigen",
"Close": "Schließen",
"Command": "Befehl",
"Comment, when used at the start of a line": "Kommentar, wenn am Anfang der Zeile benutzt.",
@@ -39,6 +44,7 @@
"Copied from original": "Vom Original kopiert",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 der folgenden UnterstĂŒtzer:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 der folgenden UnterstĂŒtzer:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Erstelle Ignoriermuster, welche die existierende Datei {{path}} ĂŒberschreiben.",
"Danger!": "Achtung!",
"Deleted": "Gelöscht",
"Device": "GerÀt",
@@ -50,6 +56,7 @@
"Disconnected": "Getrennt",
"Discovered": "Ermittelt",
"Discovery": "GerÀtesuche",
"Discovery Failures": "GerÀtesuchfehler",
"Documentation": "Dokumentation",
"Download Rate": "Download",
"Downloaded": "Heruntergeladen",
@@ -58,18 +65,24 @@
"Edit Device": "GerÀt bearbeiten",
"Edit Folder": "Ordner bearbeiten",
"Editing": "Bearbeitet",
"Editing {%path%}.": "Bearbeite {{path}}.",
"Enable NAT traversal": "NAT-Durchdringung aktivieren",
"Enable Relaying": "Weiterleitung aktivieren",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Geben Sie eine positive Zahl ein (z.B. \"2.35\") und wĂ€hlen Sie eine Einheit. ProzentsĂ€tze sind Teil der gesamten FestplattengrĂ¶ĂŸe.",
"Enter a non-privileged port number (1024 - 65535).": "Geben Sie eine nichtprivilegierte Portnummer ein (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Kommagetrennte Adressen (\"tcp://ip:port\", \"tcp://host:port\") oder \"dynamic\" eingeben, um die Adresse automatisch zu ermitteln.",
"Enter ignore patterns, one per line.": "Geben Sie Ignoriermuster ein, eines pro Zeile.",
"Error": "Fehler",
"External File Versioning": "Externe Dateiversionierung",
"Failed Items": "Fehlgeschlagene Objekte",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Ein Verbindungsfehler zu IPv6-Servern ist zu erwarten, wenn es keine IPv6-KonnektivitÀt gibt.",
"File Pull Order": "DateiĂŒbertragungsreihenfolge",
"File Versioning": "Dateiversionierung",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Dateizugriffsrechte beim Suchen nach VerÀnderungen ignorieren. Bei FAT-Dateisystemen zu verwenden.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Wenn Syncthing Dateien ersetzt oder löscht, werden sie in den Ordner .stversions verschoben.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Dateien werden, bevor Syncthing sie löscht oder ersetzt, datiert in den Ordner .stversions verschoben.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Dateien werden in den .stversions Ordner verschoben, wenn sie von Syncthing ersetzt oder gelöscht werden.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Dateien werden in den .stversions Ordner verschoben, wenn sie von Syncthing ersetzt oder gelöscht werden.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Dateien werden mit Datumsstempel versioniert und in den .stversions Ordner verschoben, wenn sie von Syncthing ersetzt oder gelöscht werden.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Dateien werden mit Datumsstempel versioniert und in den .stversions Ordner verschoben, wenn sie von Syncthing ersetzt oder gelöscht werden.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Dateien sind auf diesem GerĂ€t schreibgeschĂŒtzt. Auf diesem GerĂ€t durchgefĂŒhrte VerĂ€nderungen werden aber auf den Rest des Verbunds ĂŒbertragen.",
"Folder": "Ordner",
"Folder ID": "Ordnerkennung",
@@ -80,7 +93,9 @@
"GUI": "GUI",
"GUI Authentication Password": "Passwort fĂŒr Zugang zur BenutzeroberflĂ€che",
"GUI Authentication User": "Nutzername fĂŒr Zugang zur BenutzeroberflĂ€che",
"GUI Listen Addresses": "Adresse(n) fĂŒr die BenutzeroberflĂ€che",
"GUI Listen Address": "Addresse der BenutzeroberflÀche",
"GUI Listen Addresses": "Adressen der BenutzeroberflÀche",
"GUI Theme": "GUI Design",
"Generate": "Generieren",
"Global Changes": "Globale Änderungen",
"Global Discovery": "Globale GerÀtesuche",
@@ -103,11 +118,12 @@
"Last seen": "Zuletzt online",
"Later": "SpÀter",
"Latest Change": "Letzte Änderung",
"Learn more": "Mehr erfahren",
"Listeners": "Zuhörer",
"Local Discovery": "Lokale GerÀtesuche",
"Local State": "Lokaler Status",
"Local State (Total)": "Lokaler Status (Gesamt)",
"Major Upgrade": "Hauptversionsupgrade",
"Major Upgrade": "Hauptversionsupdate",
"Master": "Master",
"Maximum Age": "Höchstalter",
"Metadata Only": "Nur Metadaten",
@@ -120,6 +136,7 @@
"Newest First": "Neueste zuerst",
"No": "Nein",
"No File Versioning": "Keine Dateiversionierung",
"No upgrades": "Keine Updates",
"Normal": "Normal",
"Notice": "Hinweis",
"OK": "OK",
@@ -133,12 +150,16 @@
"Override Changes": "Änderungen ĂŒberschreiben",
"Path": "Pfad",
"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": "Pfad zum Ordner auf dem lokalen GerĂ€t. Ordner wird erzeugt, wenn er nicht existiert. Das Tilden-Zeichen (~) kann als AbkĂŒrzung benutzt werden fĂŒr",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Pfad in dem alte Dateiversionen gespeichert werden sollen (ohne Angabe wird der Ordner .stversions im Ordner verwendet).",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Pfad in dem Versionen gespeichert werden sollen (leer lassen, wenn der Standard .stversions Ordner fĂŒr den geteilten Ordner verwendet werden soll).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Pfad in dem Versionen gespeichert werden sollen (leer lassen, wenn der Standard .stversions Ordner fĂŒr den geteilten Ordner verwendet werden soll).",
"Pause": "Pause",
"Pause All": "Alles pausieren",
"Paused": "Pausiert",
"Please consult the release notes before performing a major upgrade.": "Bitte lesen Sie die Veröffentlichungsnotizen bevor Sie eine neue Hauptversion installieren.",
"Please consult the release notes before performing a major upgrade.": "Bitte lesen Sie die Veröffentlichungsnotizen bevor Sie ein neues Hauptversionsupdate installieren.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Bitte setze einen Benutzer und ein Passwort fĂŒr das GUI in den Einstellungen.",
"Please wait": "Bitte warten",
"Prefix indicating that the file can be deleted if preventing directory removal": "PrÀfix, das anzeigt, dass die Datei gelöscht werden kann, wenn sie die Entfernung des Ordners verhindert",
"Prefix indicating that the pattern should be matched without case sensitivity": "PrĂ€fix, das anzeigt, dass das Muster ohne Beachtung der Groß-/Kleinschreibung ĂŒbereinstimmen soll",
"Preview": "Vorschau",
"Preview Usage Report": "Vorschau des Nutzungsberichts",
"Quick guide to supported patterns": "Schnellanleitung zu den unterstĂŒtzten Mustern",
@@ -146,6 +167,7 @@
"Random": "Zufall",
"Reduced by ignore patterns": "Durch Ignoriermuster reduziert",
"Release Notes": "Veröffentlichungsnotizen",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Veröffentlichungskandidaten enthalten die neuesten Funktionen und Verbesserungen. Sie gleichen den ĂŒblichen zweiwöchentlichen Syncthing-Veröffentlichungen.",
"Remote Devices": "Fern-GerÀte",
"Remove": "Entfernen",
"Required identifier for the folder. Must be the same on all cluster devices.": "Erforderlicher Bezeichner fĂŒr den Ordner. Muss auf allen Verbund-GerĂ€ten gleich sein.",
@@ -155,7 +177,8 @@
"Restart": "Neustart",
"Restart Needed": "Neustart benötigt",
"Restarting": "Wird neu gestartet",
"Resume": "Fortfahren",
"Resume": "Fortsetzen",
"Resume All": "Alles fortsetzen",
"Reused": "Erneut benutzt",
"Save": "Speichern",
"Scan Time Remaining": "Zeit fĂŒr Scan verbleibend",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Einzelnes Maskenzeichen (wird fĂŒr einen einzelnen Ordner verwendet)",
"Smallest First": "Kleinstes zuerst",
"Source Code": "Quellcode",
"Stable releases and release candidates": "Stabile Veröffentlichungen und Veröffentlichungskandidaten",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Stabile Veröffentlichungen werden ca. 2 Wochen verzögert. WÀhrend dieser Zeit durchlaufen sie eine Testphase als Veröffentlichungskandidaten.",
"Stable releases only": "Nur stabile Veröffentlichungen",
"Staggered File Versioning": "Stufenweise Dateiversionierung",
"Start Browser": "Browser starten",
"Statistics": "Statistiken",
@@ -220,7 +246,8 @@
"They are retried automatically and will be synced when the error is resolved.": "Sie werden automatisch heruntergeladen und werden synchronisiert, wenn der Fehler behoben wurde.",
"This Device": "Dieses GerÀt",
"This can easily give hackers access to read and change any files on your computer.": "Dies kann dazu fĂŒhren, dass Unberechtigte relativ einfach auf Ihre Dateien zugreifen und diese Ă€ndern können.",
"This is a major version upgrade.": "Dies ist eine neue Hauptversion.",
"This is a major version upgrade.": "Dies ist ein neues Hauptversionsupdate.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Diese Einstellung regelt den freien Speicherplatz, der fĂŒr den Systemordner (d.h. Indexdatenbank) erforderlich ist.",
"Time": "Zeit",
"Trash Can File Versioning": "Papierkorb Dateiversionierung",
"Type": "Typ",
@@ -229,11 +256,12 @@
"Unused": "Ungenutzt",
"Up to Date": "Aktuell",
"Updated": "Aktualisiert",
"Upgrade": "Upgrade",
"Upgrade": "Update",
"Upgrade To {%version%}": "Update auf {{version}}",
"Upgrading": "Wird aktualisiert",
"Upload Rate": "Upload",
"Uptime": "Betriebszeit",
"Usage reporting is always enabled for candidate releases.": "Nutzungsbericht ist fĂŒr Veröffentlichungskandidaten immer aktiviert.",
"Use HTTPS for GUI": "HTTPS fĂŒr BenutzeroberflĂ€che benutzen",
"Version": "Version",
"Versions Path": "Versionierungspfad",
@@ -245,6 +273,9 @@
"When adding a new device, keep in mind that this device must be added on the other side too.": "Beachte beim HinzufĂŒgen eines neuen GerĂ€tes, dass dieses GerĂ€t auch auf den anderen GerĂ€ten hinzugefĂŒgt werden muss.",
"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.": "Beachte bitte beim HinzufĂŒgen eines neuen Ordners, dass die Ordnerkennung dazu verwendet wird, Ordner zwischen GerĂ€ten zu verbinden. Die Kennung muss also auf allen GerĂ€ten gleich sein, die Groß- und Kleinschreibung muss dabei beachtet werden.",
"Yes": "Ja",
"You can also select one of these nearby devices:": "Sie können auch ein in der NÀhe befindliches GerÀte auswÀhlen:",
"You can change your choice at any time in the Settings dialog.": "Sie können Ihre Wahl jederzeit in den Einstellungen Àndern.",
"You can read more about the two release channels at the link below.": "Über den folgenden Link können Sie mehr ĂŒber die zwei VeröffentlichungskanĂ€le erfahren.",
"You must keep at least one version.": "Du musst mindestens eine Version behalten.",
"days": "Tage",
"directories": "Ordner",

View File

@@ -10,6 +10,7 @@
"Add Device": "Î ÏÎżÏƒÎžÎźÎșη συσÎșÎ”Ï…ÎźÏ‚",
"Add Folder": "Î ÏÎżÏƒÎžÎźÎșη φαÎșÎ­Î»ÎżÏ…",
"Add Remote Device": "Î ÏÎżÏƒÎžÎźÎșη Î‘Ï€ÎżÎŒÎ±ÎșρυσΌέΜης ÎŁÏ…ÏƒÎșÎ”Ï…ÎźÏ‚",
"Add devices from the introducer to our device list, for mutually shared folders.": "Î ÏÎżÏƒÎžÎźÎșη συσÎșΔυώΜ από Ï„Îż ΒασÎčÎșό ÎșόΌÎČÎż στη Î»ÎŻÏƒÏ„Î± συσÎșΔυώΜ Όας, ÎłÎčα ÏŒÏƒÎżÏ…Ï‚ ÎșÎżÎčÎœÎżÏÏ‚ φαÎșÎ­Î»ÎżÏ…Ï‚ Ï…Ï€ÎŹÏÏ‡ÎżÏ…Îœ ΌΔταΟύ Ï„ÎżÏ…Ï‚.",
"Add new folder?": "Î ÏÎżÏƒÎžÎźÎșη ÎœÎ­ÎżÏ… φαÎșÎ­Î»ÎżÏ…;",
"Address": "ΔÎčΔύΞυΜση",
"Addresses": "ΔÎčΔυΞύΜσΔÎčς",
@@ -18,16 +19,20 @@
"Advanced settings": "Î ÏÎżÏ‡Ï‰ÏÎ·ÎŒÎ­ÎœÎ”Ï‚ ÏÏ…ÎžÎŒÎŻÏƒÎ”Îčς",
"All Data": "Όλα τα ÎŽÎ”ÎŽÎżÎŒÎ­ÎœÎ±",
"Allow Anonymous Usage Reporting?": "Να ΔπÎčτρέπΔταÎč η Î±Ï€ÎżÏƒÏ„ÎżÎ»Îź αΜώΜυΌωΜ ÏƒÏ„ÎżÎčÏ‡Î”ÎŻÏ‰Îœ Ï‡ÏÎźÏƒÎ·Ï‚;",
"Allowed Networks": "ΕπÎčτρΔπόΌΔΜα ÎŽÎŻÎșτυα",
"Alphabetic": "ΑλφαÎČητÎčÎșÎŹ",
"An external command handles the versioning. It has to remove the file from the shared folder.": "ΜÎčα ΔΟωτΔρÎčÎșÎź Î”ÎœÏ„ÎżÎ»Îź χΔÎčÏÎŻÎ¶Î”Ï„Î±Îč τηΜ Ï„ÎźÏÎ·ÏƒÎ· ΔÎșΎόσΔωΜ ÎșαÎč αΜαλαΌÎČÎŹÎœÎ”Îč Μα αφαÎčρέσΔÎč Ï„Îż Î±ÏÏ‡Î”ÎŻÎż από Ï„ÎżÎœ ÏƒÏ…ÎłÏ‡ÏÎżÎœÎčÏƒÎŒÎ­ÎœÎż Ï†ÎŹÎșΔλο.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "ΜÎčα ΔΟωτΔρÎčÎșÎź Î”ÎœÏ„ÎżÎ»Îź χΔÎčÏÎŻÎ¶Î”Ï„Î±Îč τηΜ ÎŽÎčÎ±Ï‡Î”ÎŻÏÎčση ΔÎșΎόσΔωΜ. ΧρΔÎčÎŹÎ¶Î”Ï„Î±Îč Μα αφαÎčρέσΔÎč Ï„Îż Î±ÏÏ‡Î”ÎŻÎż από Ï„Îż Ï†ÎŹÎșΔλο ÏƒÏ…ÎłÏ‡ÏÎżÎœÎčσΌέΜωΜ.",
"Anonymous Usage Reporting": "ΑΜώΜυΌα ÏƒÏ„ÎżÎčÏ‡Î”ÎŻÎ± Ï‡ÏÎźÏƒÎ·Ï‚",
"Any devices configured on an introducer device will be added to this device as well.": "ΑΜ ÎŽÎ·Î»Ï‰ÎžÎ”ÎŻ σαΜ «ÎČασÎčÎșός ÎșόΌÎČÎżÏ‚Â», τότΔ όλΔς ÎżÎč συσÎșΔυές Ï€ÎżÏ… Î”ÎŻÎœÎ±Îč ΎηλωΌέΜΔς ΔÎșΔί Ξα Ï…Ï€ÎŹÏÏ‡ÎżÏ…Îœ ÎșαÎč ÏƒÏ„ÎżÎœ Ï„ÎżÏ€ÎčÎșό ÎșόΌÎČÎż.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "ΓÎčα τÎčς αυτόΌατΔς αΜαÎČÎ±ÎžÎŒÎŻÏƒÎ”Îčς ÎŒÏ€ÎżÏÎ”ÎŻÏ„Î” Ï€Î»Î­ÎżÎœ Μα ΔπÎčλέΟΔτΔ ΌΔταΟύ σταΞΔρώΜ ΔÎșΎόσΔωΜ ÎșαÎč Ï…Ï€ÎżÏˆÎźÏ†ÎčωΜ ΔÎșΎόσΔωΜ.",
"Automatic upgrades": "ΑυτόΌατη αΜαÎČÎŹÎžÎŒÎčση",
"Be careful!": "ΜΔ Ï€ÏÎżÏƒÎżÏ‡Îź!",
"Bugs": "Bugs",
"CPU Utilization": "ΕπÎčÎČÎŹÏÏ…ÎœÏƒÎ· Ï„ÎżÏ… Î”Ï€Î”ÎŸÎ”ÏÎłÎ±ÏƒÏ„Îź",
"Changelog": "Î Î»Î·ÏÎżÏ†ÎżÏÎŻÎ”Ï‚ ΔÎșΎόσΔωΜ",
"Clean out after": "ΕÎșÎșÎ±ÎžÎŹÏÎčση ÎŒÎ”Ï„ÎŹ από",
"Click to see discovery failures": "Î Î±Ï„ÎźÏƒÏ„Î” ÎłÎčα Μα ÎŽÎ”ÎŻÏ„Î” τÎčς Î±Ï€ÎżÏ„Ï…Ï‡ÎŻÎ”Ï‚ αΜΔύρΔσης συσÎșΔυώΜ",
"Close": "Î€Î­Î»ÎżÏ‚",
"Command": "Î•ÎœÏ„ÎżÎ»Îź",
"Comment, when used at the start of a line": "ÎŁÏ‡ÏŒÎ»ÎčÎż, όταΜ χρησÎčÎŒÎżÏ€ÎżÎčÎ”ÎŻÏ„Î±Îč στηΜ Î±ÏÏ‡Îź ÎŒÎčας ÎłÏÎ±ÎŒÎŒÎźÏ‚",
@@ -39,6 +44,7 @@
"Copied from original": "ΈχΔÎč αΜτÎčÎłÏÎ±Ï†Î”ÎŻ από Ï„Îż Ï€ÏÏ‰Ï„ÏŒÏ„Ï…Ï€Îż",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 ÎłÎčα Ï„ÎżÏ…Ï‚ παραÎșÎŹÏ„Ï‰ συΜΔÎčÏƒÏ†Î­ÏÎżÎœÏ„Î”Ï‚:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 ÎłÎčα Ï„ÎżÏ…Ï‚ παραÎșÎŹÏ„Ï‰ συΜΔÎčÏƒÏ†Î­ÏÎżÎœÏ„Î”Ï‚:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "ΔηΌÎčÎżÏ…ÏÎłÎŻÎ± Ï€ÏÎżÏ„ÏÏ€Ï‰Îœ Î±ÎłÎœÏŒÎ·ÏƒÎ·Ï‚, αΜτÎčÎșÎ±Ï„ÎŹÏƒÏ„Î±ÏƒÎ· Ï„ÎżÏ… Ï…Ï€ÎŹÏÏ‡ÎżÎœÏ„ÎżÏ‚ Î±ÏÏ‡Î”ÎŻÎżÏ… ÏƒÏ„Îż {{path}}.",
"Danger!": "Î ÏÎżÏƒÎżÏ‡Îź!",
"Deleted": "ΔÎčÎ±ÎłÏÎ±ÎŒÎŒÎ­ÎœÎ±",
"Device": "ÎŁÏ…ÏƒÎșÎ”Ï…Îź",
@@ -50,6 +56,7 @@
"Disconnected": "Î‘Ï€ÎżÏƒÏ…ÎœÎŽÎ”ÎŽÎ”ÎŒÎ­ÎœÎżÏ‚",
"Discovered": "Î’ÎŹÏƒÎ”Îč αΜΔύρΔσης",
"Discovery": "ΑΜΔύρΔση συσÎșΔυώΜ",
"Discovery Failures": "Î‘Ï€ÎżÏ„Ï…Ï‡ÎŻÎ”Ï‚ αΜΔύρΔσης συσÎșΔυώΜ",
"Documentation": "΀ΔÎșÎŒÎ·ÏÎŻÏ‰ÏƒÎ·",
"Download Rate": "΀αχύτητα Î»ÎźÏˆÎ·Ï‚",
"Downloaded": "ΈχΔÎč Î»Î·Ï†ÎžÎ”ÎŻ",
@@ -58,17 +65,23 @@
"Edit Device": "Î•Ï€Î”ÎŸÎ”ÏÎłÎ±ÏƒÎŻÎ± συσÎșÎ”Ï…ÎźÏ‚",
"Edit Folder": "Î•Ï€Î”ÎŸÎ”ÏÎłÎ±ÏƒÎŻÎ± φαÎșÎ­Î»ÎżÏ…",
"Editing": "Î•Ï€Î”ÎŸÎ”ÏÎłÎ±ÏƒÎŻÎ± σΔ ΔΟέλÎčΟη",
"Editing {%path%}.": "Î•Ï€Î”ÎŸÎ”ÏÎłÎ±ÏƒÎŻÎ± Ï„ÎżÏ… {{path}}.",
"Enable NAT traversal": "Î•ÎœÎ”ÏÎłÎżÏ€ÎżÎŻÎ·ÏƒÎ· ÎŽÎčÎŹÏƒÏ‡Îčσης NAT",
"Enable Relaying": "Î•ÎœÎ”ÏÎłÎżÏ€ÎżÎŻÎ·ÏƒÎ· Î±ÎœÎ±ÎŒÎ”Ï„ÎŹÎŽÎżÏƒÎ·Ï‚",
"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.": "ΔώσΔ τα πρότυπα Ï€ÎżÏ… Ξα Î±ÎłÎœÎżÎ·ÎžÎżÏÎœ, έΜα σΔ ÎșΏΞΔ ÎłÏÎ±ÎŒÎŒÎź.",
"Error": "ÎŁÏ†ÎŹÎ»ÎŒÎ±",
"External File Versioning": "ΕΟωτΔρÎčÎșÎź Ï„ÎźÏÎ·ÏƒÎ· ΔÎșΎόσΔωΜ",
"Failed Items": "Î‘ÏÏ‡Î”ÎŻÎ± Ï€ÎżÏ… απέτυχαΜ",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Î•ÎŻÎœÎ±Îč φυσÎčολογÎčÎșÎź η Î±Ï€ÎżÏ„Ï…Ï‡ÎŻÎ± σύΜΎΔσης σΔ ΔΟυπηρΔτητές IPv6 όταΜ ΎΔΜ Ï…Ï€ÎŹÏÏ‡Î”Îč συΜΎΔσÎčΌότητα IPv6.",
"File Pull Order": "ΣΔÎčÏÎŹ ΌΔ τηΜ ÎżÏ€ÎżÎŻÎ± Ξα ÎșατΔÎČÎ±ÎŻÎœÎżÏ…Îœ τα Î±ÏÏ‡Î”ÎŻÎ±",
"File Versioning": "Î€ÎźÏÎ·ÏƒÎ· ΔÎșΎόσΔωΜ",
"File Versioning": "Î€ÎźÏÎ·ÏƒÎ· ΔÎșΎόσΔωΜ Î±ÏÏ‡Î”ÎŻÏ‰Îœ",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "΀α ÎŽÎčÎșαÎčώΌατα τωΜ Î±ÏÏ‡Î”ÎŻÏ‰Îœ Ξα Î±ÎłÎœÎżÎżÏÎœÏ„Î±Îč όταΜ ÎșÎżÎčÏ„ÎŹÎ¶Ï‰ ÎłÎčα Î±Î»Î»Î±ÎłÎ­Ï‚. Î‘Ï†ÎżÏÎŹ ÏƒÏ…ÏƒÏ„ÎźÎŒÎ±Ï„Î± Î±ÏÏ‡Î”ÎŻÏ‰Îœ FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "΀α Î±ÏÏ‡Î”ÎŻÎ± Ï€ÎżÏ… σÎČÎźÎœÎżÎœÏ„Î±Îč Îź αΜτÎčÎșÎ±ÎžÎŻÏƒÏ„Î±ÎœÏ„Î±Îč από Ï„Îż Syncthing ΌΔταÎșÎčÎœÎżÏÎœÏ„Î±Îč ÏƒÏ„ÎżÎœ ÎșÎ±Ï„ÎŹÎ»ÎżÎłÎż .stversions.",
"Files are moved to .stversions folder 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 moved to date stamped versions in a .stversions folder 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.": "΀α Î±ÏÏ‡Î”ÎŻÎ± Ï€ÏÎżÏƒÏ„Î±Ï„Î”ÏÎżÎœÏ„Î±Îč από Î±Î»Î»Î±ÎłÎ­Ï‚ Ï€ÎżÏ… ÎłÎŻÎœÎżÎœÏ„Î±Îč σΔ ÎŹÎ»Î»Î”Ï‚ συσÎșΔυές, αλλΏ ÏŒÏ€ÎżÎčΔς Î±Î»Î»Î±ÎłÎ­Ï‚ ÎłÎŻÎœÎżÏ…Îœ σΔ Î±Ï…Ï„Îź τη συσÎșÎ”Ï…Îź Ξα Î±Ï€ÎżÏƒÏ„Î±Î»ÎżÏÎœ σΔ όλη τη ÏƒÏ…ÏƒÏ„ÎŹÎŽÎ± συσÎșΔυώΜ.",
"Folder": "ΊΏÎșÎ”Î»ÎżÏ‚",
@@ -80,7 +93,9 @@
"GUI": "ΓραφÎčÎșό πΔρÎčÎČÎŹÎ»Î»ÎżÎœ",
"GUI Authentication Password": "ΚωΎÎčÎșός ÎłÎčα τηΜ πρόσÎČαση στη ÎŽÎčÎ”Ï€Î±Ï†Îź",
"GUI Authentication User": "Î§ÏÎ·ÏƒÏ„ÏŽÎœÏ…ÎŒÎż ÎłÎčα τηΜ πρόσÎČαση στη ÎŽÎčÎ”Ï€Î±Ï†Îź",
"GUI Listen Address": "ΔÎčΔύΞυΜση αÎșρόασης ÎłÏÎ±Ï†ÎčÎșÎżÏ πΔρÎčÎČÎŹÎ»Î»ÎżÎœÏ„ÎżÏ‚ (GUI)",
"GUI Listen Addresses": "ΔÎčΔυΞύΜσΔÎčς από τÎčς ÎżÏ€ÎżÎŻÎ”Ï‚ Ξα Î”ÎŻÎœÎ±Îč Ï€ÏÎżÏƒÎČÎŹÏƒÎčΌη η ÎŽÎčÎ”Ï€Î±Ï†Îź",
"GUI Theme": "ΘέΌα GUI",
"Generate": "ΔηΌÎčÎżÏ…ÏÎłÎŻÎ±",
"Global Changes": "ÎŁÏ…ÎœÎżÎ»ÎčÎșές Î±Î»Î»Î±ÎłÎ­Ï‚",
"Global Discovery": "ΚαΞολÎčÎșÎź αΜΔύρΔση",
@@ -103,6 +118,7 @@
"Last seen": "Î€Î”Î»Î”Ï…Ï„Î±ÎŻÎ± Ï†ÎżÏÎŹ ÏƒÏ…ÎœÎŽÎ”ÎŽÎ”ÎŒÎ­ÎœÎżÏ‚",
"Later": "Î‘ÏÎłÏŒÏ„Î”ÏÎ±",
"Latest Change": "Î€Î”Î»Î”Ï…Ï„Î±ÎŻÎ± αλλαγΟ",
"Learn more": "ÎœÎŹÎžÎ”Ï„Î” πΔρÎčσσότΔρα",
"Listeners": "ΑÎșÏÎżÎ±Ï„Î­Ï‚",
"Local Discovery": "Î€ÎżÏ€ÎčÎșÎź αΜΔύρΔση",
"Local State": "Î€ÎżÏ€ÎčÎșÎź ÎșÎ±Ï„ÎŹÏƒÏ„Î±ÏƒÎ·",
@@ -120,6 +136,7 @@
"Newest First": "΀ο ÎœÎ”ÏŒÏ„Î”ÏÎż πρώτα",
"No": "ΌχÎč",
"No File Versioning": "Να ΌηΜ Ï„Î·ÏÎżÏÎœÏ„Î±Îč ΔÎșΎόσΔÎčς",
"No upgrades": "Î‘Ï€Î”ÎœÎ”ÏÎłÎżÏ€ÎżÎčηΌέΜΔς",
"Normal": "ÎšÎ±ÎœÎżÎœÎčÎșός",
"Notice": "ÎŁÎ·ÎŒÎ”ÎŻÏ‰ÏƒÎ·",
"OK": "OK",
@@ -133,12 +150,16 @@
"Override Changes": "Να αΜτÎčÎșÎ±Ï„Î±ÏƒÏ„Î±ÎžÎżÏÎœ ÎżÎč Î±Î»Î»Î±ÎłÎ­Ï‚",
"Path": "ÎœÎżÎœÎżÏ€ÎŹÏ„Îč",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "ÎœÎżÎœÎżÏ€ÎŹÏ„Îč Ï„ÎżÏ… φαÎșÎ­Î»ÎżÏ… σΔ αυτόΜ Ï„ÎżÎœ Ï…Ï€ÎżÎ»ÎżÎłÎčÏƒÏ„Îź. ΑΜ ΎΔΜ Ï…Ï€ÎŹÏÏ‡Î”Îč Ξα ΎηΌÎčÎżÏ…ÏÎłÎ·ÎžÎ”ÎŻ. Η πΔρÎčσπωΌέΜη (~) ÎŒÏ€ÎżÏÎ”ÎŻ Μα ΌπΔÎč σαΜ συΜτόΌΔυση ÎłÎčα Ï„Îż",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Ο ÎșÎ±Ï„ÎŹÎ»ÎżÎłÎżÏ‚ ÏƒÏ„ÎżÎœ ÎżÏ€ÎżÎŻÎż Ξα Î±Ï€ÎżÎžÎ·ÎșÎ”ÏÎżÎœÏ„Î±Îč ÎżÎč ΔÎșΎόσΔÎčς τωΜ Î±ÏÏ‡Î”ÎŻÏ‰Îœ (αΜ ΎΔΜ ÎżÏÎčÏƒÏ„Î”ÎŻ, Ξα Î±Ï€ÎżÎžÎ·ÎșÎ”ÏÎżÎœÏ„Î±Îč ÏƒÏ„ÎżÎœ Ï…Ï€ÎżÎșÎ±Ï„ÎŹÎ»ÎżÎłÎż .stversions)",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ο Ï†ÎŹÎșÎ”Î»ÎżÏ‚ ÏƒÏ„ÎżÎœ ÎżÏ€ÎżÎŻÎż Ξα Î±Ï€ÎżÎžÎ·ÎșÎ”ÏÎżÎœÏ„Î±Îč ÎżÎč ΔÎșΎόσΔÎčς τωΜ Î±ÏÏ‡Î”ÎŻÏ‰Îœ (αΜ ΎΔΜ ÎżÏÎčÏƒÏ„Î”ÎŻ Ξα Î±Ï€ÎżÎžÎ·ÎșÎ”ÏÎżÎœÏ„Î±Îč ÏƒÏ„ÎżÎœ Ï…Ï€ÎżÏ†ÎŹÎșΔλο .stversions)",
"Pause": "Παύση",
"Pause All": "Παύση όλωΜ",
"Paused": "ΣΔ παύση",
"Please consult the release notes before performing a major upgrade.": "ΠαραÎșÎ±Î»ÎżÏÎŒÎ”, πρÎčΜ από τηΜ ΔÎșτέλΔση ÎŒÎčας σηΌαΜτÎčÎșÎźÏ‚ αΜαÎČÎŹÎžÎŒÎčσης, Μα συΌÎČÎżÏ…Î»Î”Ï…Ï„Î”ÎŻÏ‚ Ï„Îż ÏƒÎ·ÎŒÎ”ÎŻÏ‰ÎŒÎ± Ï€ÎżÏ… τη ÏƒÏ…ÎœÎżÎŽÎ”ÏÎ”Îč. ",
"Please set a GUI Authentication User and Password in the Settings dialog.": "ΠαραÎșαλώ όρÎčσΔ στÎčς ÏÏ…ÎžÎŒÎŻÏƒÎ”Îčς έΜαΜ Ï‡ÏÎźÏƒÏ„Î· ÎșαÎč έΜαΜ ÎșωΎÎčÎșό πρόσÎČασης ÎłÎčα τη ÎŽÎčÎ”Ï€Î±Ï†Îź.",
"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": "ΠρόΞΔΌα Ï€ÎżÏ… ÎŽÎ”ÎŻÏ‡ÎœÎ”Îč ότÎč η αΜτÎčÏƒÏ„ÎżÎŻÏ‡Îčση Ï€ÏÎżÏ„ÏÏ€ÎżÏ… Ξα ÎłÎŻÎœÎ”Ï„Î±Îč Ï‡Ï‰ÏÎŻÏ‚ ÎŽÎčÎŹÎșρÎčση πΔζώΜ ÎșαÎč ÎșÎ”Ï†Î±Î»Î±ÎŻÏ‰Îœ χαραÎșÏ„ÎźÏÏ‰Îœ",
"Preview": "Î ÏÎżÎ”Ï€ÎčσÎșόπηση",
"Preview Usage Report": "Î ÏÎżÎ”Ï€ÎčσÎșόπηση Î±ÎœÎ±Ï†ÎżÏÎŹÏ‚ Ï‡ÏÎźÏƒÎ·Ï‚",
"Quick guide to supported patterns": "ÎŁÏÎœÏ„ÎżÎŒÎ· ÎČοΟΞΔÎčα σχΔτÎčÎșÎŹ ΌΔ τα πρότυπα Î±ÎœÎ±Î¶ÎźÏ„Î·ÏƒÎ·Ï‚ Ï€ÎżÏ… Ï…Ï€ÎżÏƒÏ„Î·ÏÎŻÎ¶ÎżÎœÏ„Î±Îč",
@@ -146,6 +167,7 @@
"Random": "Î€Ï…Ï‡Î±ÎŻÎ±",
"Reduced by ignore patterns": "ΠΔρÎčÎżÏÎčσΌέΜα Î»ÏŒÎłÏ‰ Ï€ÏÎżÏ„ÏÏ€Ï‰Îœ Î±ÎłÎœÏŒÎ·ÏƒÎ·Ï‚",
"Release Notes": "ÎŁÎ·ÎŒÎ”ÎŻÏ‰ÎŒÎ± έÎșÎŽÎżÏƒÎ·Ï‚",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "ΟÎč Ï…Ï€ÎżÏˆÎźÏ†ÎčΔς ΔÎșΎόσΔÎčς πΔρÎčÎ­Ï‡ÎżÏ…Îœ τÎčς ΜΔότΔρΔς λΔÎčÏ„ÎżÏ…ÏÎłÎŻÎ”Ï‚ ÎșαÎč ΔπÎčÎŽÎčÎżÏÎžÏŽÏƒÎ”Îčς ÏƒÏ†Î±Î»ÎŒÎŹÏ„Ï‰Îœ, όπως ÎșαÎč ÎżÎč Ï€Î±ÏÎ±ÎŽÎżÏƒÎčαÎșές ÎŽÎčσΔÎČÎŽÎżÎŒÎ±ÎŽÎčÎ±ÎŻÎ”Ï‚ ΔÎșΎόσΔÎčς Ï„ÎżÏ… Syncthing.",
"Remote Devices": "Î‘Ï€ÎżÎŒÎ±ÎșρυσΌέΜΔς συσÎșΔυές",
"Remove": "Î‘Ï†Î±ÎŻÏÎ”ÏƒÎ·",
"Required identifier for the folder. Must be the same on all cluster devices.": "Î‘Ï€Î±ÏÎ±ÎŻÏ„Î·Ï„Îż Î±ÎœÎ±ÎłÎœÏ‰ÏÎčστÎčÎșό ÎłÎčα Ï„ÎżÎœ Ï†ÎŹÎșΔλο. ΠρέπΔÎč Μα Î”ÎŻÎœÎ±Îč Ï„Îż ÎŻÎŽÎčÎż σΔ όλΔς τÎčς συσÎșΔυές ΌΔ τÎčς ÎżÏ€ÎżÎŻÎ”Ï‚ ÎŽÎčÎ±ÎŒÎżÎčÏÎŹÎ¶Î”Ï„Î±Îč Îż Ï†ÎŹÎșÎ”Î»ÎżÏ‚ αυτός.",
@@ -156,6 +178,7 @@
"Restart Needed": "ΑπαÎčÏ„Î”ÎŻÏ„Î±Îč ΔπαΜΔÎșÎșÎŻÎœÎ·ÏƒÎ·",
"Restarting": "ΕπαΜΔÎșÎșÎŻÎœÎ·ÏƒÎ·",
"Resume": "ÎŁÏ…ÎœÎ­Ï‡Î”Îčα",
"Resume All": "ÎŁÏ…ÎœÎ­Ï‡Îčση όλωΜ",
"Reused": "ΧρησÎčÎŒÎżÏ€ÎżÎčΟΞηÎșΔ ÎŸÎ±ÎœÎŹ",
"Save": "Î‘Ï€ÎżÎžÎźÎșΔυση",
"Scan Time Remaining": "Î•ÎœÎ±Ï€ÎżÎŒÎ”ÎŻÎœÎ±ÎœÏ„Î±Ï‚ Ï‡ÏÏŒÎœÎżÏ‚ ÎłÎčα Ï„ÎżÎœ Î­Î»Î”ÎłÏ‡Îż ",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Î€Î”Î»Î”ÏƒÏ„ÎźÏ‚ ΌπαλαΜτέρ (*) ÎłÎčα έΜα Î”Ï€ÎŻÏ€Î”ÎŽÎż (χρησÎčÎŒÎżÏ€ÎżÎčÎ”ÎŻÏ„Î±Îč ÎłÎčα έΜαΜ Ï†ÎŹÎșΔλο ÎŒÏŒÎœÎż)",
"Smallest First": "΀ο ÎŒÎčÎșÏÏŒÏ„Î”ÏÎż πρώτα",
"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 only": "ÎœÏŒÎœÎż σταΞΔρές ΔÎșΎόσΔÎčς",
"Staggered File Versioning": "Να Ï„Î·ÏÎżÏÎœÏ„Î±Îč ÎșλÎčΌαÎșÎżÏÎŒÎ”ÎœÎ”Ï‚ ΔÎșΎόσΔÎčς",
"Start Browser": "ΕÎșÎșÎŻÎœÎ·ÏƒÎ· Ï€ÏÎżÎłÏÎŹÎŒÎŒÎ±Ï„ÎżÏ‚ πΔρÎčÎźÎłÎ·ÏƒÎ·Ï‚",
"Statistics": "ÎŁÏ„Î±Ï„ÎčστÎčÎșÎŹ",
@@ -211,7 +237,7 @@
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Η ÎŒÎ­ÎłÎčστη ηλÎčÎșία παλÎčότΔρωΜ ΔÎșΎόσΔωΜ (σΔ ηΌέρΔς, αΜ ΎώσΔÎčς 0 ÎżÎč παλÎčότΔρΔς ΔÎșΎόσΔÎčς Ξα ÎŽÎčÎ±Ï„Î·ÏÎżÏÎœÏ„Î±Îč ÎłÎčα Ï€ÎŹÎœÏ„Î±).",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "΀ο Ï€ÎżÏƒÎżÏƒÏ„ÏŒ Ï„ÎżÏ… Î”Î»ÎŹÏ‡ÎčÏƒÏ„ÎżÏ… ÎŽÎčαΞέσÎčÎŒÎżÏ… Î±Ï€ÎżÎžÎ·ÎșΔυτÎčÎșόυ Ï‡ÏŽÏÎżÏ… πρέπΔÎč Μα Î”ÎŻÎœÎ±Îč έΜαΜ Όη-αρΜητÎčÎșός αρÎčΞΌός ΌΔταΟύ Ï„ÎżÏ… 0 ÎșαÎč Ï„ÎżÏ… 100 (συΌπΔρÎčλαΌÎČÎ±ÎœÎżÎŒÎ­ÎœÏ‰Îœ)",
"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 days to keep files in the trash can. Zero means forever.": "Ο αρÎčΞΌός ηΌΔρώΜ Ï€ÎżÏ… Ξα ÎŽÎčÎ±Ï„Î·ÏÎżÏÎœÏ„Î±Îč τα Î±ÏÏ‡Î”ÎŻÎ± ÏƒÏ„ÎżÎœ ÎșÎŹÎŽÎż. ΜηΎέΜ ÏƒÎ·ÎŒÎ±ÎŻÎœÎ”Îč ÎŽÎčÎ±Ï„ÎźÏÎ·ÏƒÎ· ÎłÎčα Ï€ÎŹÎœÏ„Î±.",
"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.": "΀ο ÎŒÎżÎœÎżÏ€ÎŹÏ„Îč ΎΔΜ ÎŒÏ€ÎżÏÎ”ÎŻ Μα Î”ÎŻÎœÎ±Îč ÎșΔΜό.",
@@ -221,6 +247,7 @@
"This Device": "Î‘Ï…Ï„Îź η συσÎșÎ”Ï…Îź",
"This can easily give hackers access to read and change any files on your computer.": "Αυτό ÎŒÏ€ÎżÏÎ”ÎŻ ΔύÎșολα Μα ΎώσΔÎč πρόσÎČαση Î±ÎœÎŹÎłÎœÏ‰ÏƒÎ·Ï‚ ÎșαÎč Î”Ï€Î”ÎŸÎ”ÏÎłÎ±ÏƒÎŻÎ±Ï‚ Î±ÏÏ‡Î”ÎŻÏ‰Îœ Ï„ÎżÏ… Ï…Ï€ÎżÎ»ÎżÎłÎčÏƒÏ„Îź σας σΔ Ï‡ÎŹÎșΔρς.",
"This is a major version upgrade.": "Î‘Ï…Ï„Îź Î”ÎŻÎœÎ±Îč ÎŒÎčα σηΌαΜτÎčÎșÎź αΜαÎČÎŹÎžÎŒÎčση.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Î‘Ï…Ï„Îź η ΔπÎčλογΟ ÎșÎ±ÎžÎżÏÎŻÎ¶Î”Îč Ï„ÎżÎœ Î”Î»Î”ÏÎžÎ”ÏÎż Ï‡ÏŽÏÎż Ï€ÎżÏ… Ξα παραΌέΜΔÎč Î”Î»Î”ÏÎžÎ”ÏÎżÏ‚ ÏƒÏ„ÎżÎœ ÎŽÎŻÏƒÎșÎż ÏŒÏ€ÎżÏ… ÎČÏÎŻÏƒÎșΔταÎč Îż ÎșÎ±Ï„ÎŹÎ»ÎżÎłÎżÏ‚ της Î”Ï†Î±ÏÎŒÎżÎłÎźÏ‚ (ÎșαÎč συΜΔπώς η ÎČÎŹÏƒÎ· ÎŽÎ”ÎŽÎżÎŒÎ­ÎœÏ‰Îœ Î”Ï…ÏÎ”Ï„Î·ÏÎŻÏ‰Îœ).",
"Time": "Î§ÏÏŒÎœÎżÏ‚",
"Trash Can File Versioning": "Î€ÎźÏÎ·ÏƒÎ· ΔÎșΎόσΔωΜ ÎșÎŹÎŽÎżÏ… αΜαÎșύÎșλωσης",
"Type": "Î€ÏÏ€ÎżÏ‚",
@@ -234,6 +261,7 @@
"Upgrading": "ΑΜαÎČÎŹÎžÎŒÎčση",
"Upload Rate": "΀αχύτητα αΜΔÎČÎŹÏƒÎŒÎ±Ï„ÎżÏ‚",
"Uptime": "Î§ÏÏŒÎœÎżÏ‚ απρόσÎșÎżÏ€Ï„Î·Ï‚ λΔÎčÏ„ÎżÏ…ÏÎłÎŻÎ±Ï‚",
"Usage reporting is always enabled for candidate releases.": "Η Î±Ï€ÎżÏƒÏ„ÎżÎ»Îź Î±ÎœÎ±Ï†ÎżÏÏŽÎœ Ï‡ÏÎźÏƒÎ·Ï‚ Î”ÎŻÎœÎ±Îč Ï€ÎŹÎœÏ„Î± Î”ÎœÎ”ÏÎłÎżÏ€ÎżÎčηΌέΜη στÎčς Ï…Ï€ÎżÏˆÎźÏ†ÎčΔς ΔÎșΎόσΔÎčς.",
"Use HTTPS for GUI": "Î§ÏÎźÏƒÎ· HTTPS ÎłÎčα τη ÎŽÎčÎ”Ï€Î±Ï†Îź",
"Version": "ΈÎșÎŽÎżÏƒÎ·",
"Versions Path": "ΊΏÎșÎ”Î»ÎżÏ‚ Ï„ÎźÏÎ·ÏƒÎ·Ï‚ ΔÎșΎόσΔωΜ",
@@ -245,6 +273,9 @@
"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.": "ΌταΜ Ï€ÏÎżÏƒÎžÎ­Ï„Î”Îčς έΜαΜ ÎœÎ­Îż Ï†ÎŹÎșΔλο, ÎžÏ…ÎŒÎźÏƒÎżÏ… πως η ταυτότητα ΔΜός φαÎșÎ­Î»ÎżÏ… χρησÎčÎŒÎżÏ€ÎżÎčÎ”ÎŻÏ„Î±Îč ÎłÎčα Μα Μα ÏƒÏ…ÏƒÏ‡Î”Ï„ÎŻÏƒÎ”Îč φαÎșÎ­Î»ÎżÏ…Ï‚ ΌΔταΟύ συσÎșΔυώΜ. Η ταυτότητα Ï„ÎżÏ… φαÎșÎ­Î»ÎżÏ… Ξα πρέπΔÎč Μα Î”ÎŻÎœÎ±Îč η ÎŻÎŽÎčα σΔ όλΔς τÎčς συσÎșΔυές ÎșαÎč Î­Ï‡ÎżÏ…Îœ ÏƒÎ·ÎŒÎ±ÏƒÎŻÎ± τα Ï€Î”Î¶ÎŹ Îź ÎșÎ”Ï†Î±Î»Î±ÎŻÎ± ÎłÏÎŹÎŒÎŒÎ±Ï„Î±.",
"Yes": "ΝαÎč",
"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 must keep at least one version.": "ΠρέπΔÎč Μα Ï„Î·ÏÎźÏƒÎ”Îčς Ï„ÎżÏ…Î»ÎŹÏ‡ÎčÏƒÏ„ÎżÎœ ÎŒÎčα έÎșÎŽÎżÏƒÎ·.",
"days": "ΜέρΔς",
"directories": "ÎșÎ±Ï„ÎŹÎ»ÎżÎłÎżÎč",

View File

@@ -10,6 +10,7 @@
"Add Device": "Add Device",
"Add Folder": "Add Folder",
"Add Remote Device": "Add Remote Device",
"Add devices from the introducer to our device list, for mutually shared folders.": "Add devices from the introducer to our device list, for mutually shared folders.",
"Add new folder?": "Add new folder?",
"Address": "Address",
"Addresses": "Addresses",
@@ -18,16 +19,20 @@
"Advanced settings": "Advanced settings",
"All Data": "All Data",
"Allow Anonymous Usage Reporting?": "Allow Anonymous Usage Reporting?",
"Allowed Networks": "Allowed Networks",
"Alphabetic": "Alphabetic",
"An external command handles the versioning. It has to remove the file from the shared folder.": "An external command handles the versioning. It has to remove the file from the shared folder.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "An external command handles the versioning. It has to remove the file from the synced folder.",
"Anonymous Usage Reporting": "Anonymous Usage Reporting",
"Any devices configured on an introducer device will be added to this device as well.": "Any devices configured on an introducer device will be added to this device as well.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Automatic upgrade now offers the choice between stable releases and release candidates.",
"Automatic upgrades": "Automatic upgrades",
"Be careful!": "Be careful!",
"Bugs": "Bugs",
"CPU Utilization": "CPU Utilisation",
"Changelog": "Changelog",
"Clean out after": "Clean out after",
"Click to see discovery failures": "Click to see discovery failures",
"Close": "Close",
"Command": "Command",
"Comment, when used at the start of a line": "Comment, when used at the start of a line",
@@ -39,6 +44,7 @@
"Copied from original": "Copied from original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Creating ignore patterns, overwriting an existing file at {{path}}.",
"Danger!": "Danger!",
"Deleted": "Deleted",
"Device": "Device",
@@ -50,6 +56,7 @@
"Disconnected": "Disconnected",
"Discovered": "Discovered",
"Discovery": "Discovery",
"Discovery Failures": "Discovery Failures",
"Documentation": "Documentation",
"Download Rate": "Download Rate",
"Downloaded": "Downloaded",
@@ -58,17 +65,23 @@
"Edit Device": "Edit Device",
"Edit Folder": "Edit Folder",
"Editing": "Editing",
"Editing {%path%}.": "Editing {{path}}.",
"Enable NAT traversal": "Enable NAT traversal",
"Enable Relaying": "Enable Relaying",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.",
"Enter ignore patterns, one per line.": "Enter ignore patterns, one per line.",
"Error": "Error",
"External File Versioning": "External File Versioning",
"Failed Items": "Failed Items",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.",
"File Pull Order": "File Pull Order",
"File Versioning": "File Versioning",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "File permission bits are ignored when looking for changes. Use on FAT file systems.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Files are moved to .stversions directory when replaced or deleted by Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Files are moved to .stversions folder when replaced or deleted by Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.",
"Folder": "Folder",
@@ -80,7 +93,9 @@
"GUI": "GUI",
"GUI Authentication Password": "GUI Authentication Password",
"GUI Authentication User": "GUI Authentication User",
"GUI Listen Address": "GUI Listen Address",
"GUI Listen Addresses": "GUI Listen Addresses",
"GUI Theme": "GUI Theme",
"Generate": "Generate",
"Global Changes": "Global Changes",
"Global Discovery": "Global Discovery",
@@ -103,6 +118,7 @@
"Last seen": "Last seen",
"Later": "Later",
"Latest Change": "Latest Change",
"Learn more": "Learn more",
"Listeners": "Listeners",
"Local Discovery": "Local Discovery",
"Local State": "Local State",
@@ -120,6 +136,7 @@
"Newest First": "Newest First",
"No": "No",
"No File Versioning": "No File Versioning",
"No upgrades": "No upgrades",
"Normal": "Normal",
"Notice": "Notice",
"OK": "OK",
@@ -133,12 +150,16 @@
"Override Changes": "Override Changes",
"Path": "Path",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Path where versions should be stored (leave empty for the default .stversions folder in the folder).",
"Pause": "Pause",
"Pause All": "Pause All",
"Paused": "Paused",
"Please consult the release notes before performing a major upgrade.": "Please consult the release notes before performing a major upgrade.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Please set a GUI Authentication User and Password in the Settings dialogue.",
"Please wait": "Please wait",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Preview",
"Preview Usage Report": "Preview Usage Report",
"Quick guide to supported patterns": "Quick guide to supported patterns",
@@ -146,6 +167,7 @@
"Random": "Random",
"Reduced by ignore patterns": "Reduced by ignore patterns",
"Release Notes": "Release Notes",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Release candidates contain the latest features and fixes. They are similar to the traditional fortnightly Syncthing releases.",
"Remote Devices": "Remote Devices",
"Remove": "Remove",
"Required identifier for the folder. Must be the same on all cluster devices.": "Required identifier for the folder. Must be the same on all cluster devices.",
@@ -156,6 +178,7 @@
"Restart Needed": "Restart Needed",
"Restarting": "Restarting",
"Resume": "Resume",
"Resume All": "Resume All",
"Reused": "Reused",
"Save": "Save",
"Scan Time Remaining": "Scan Time Remaining",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Single level wildcard (matches within a directory only)",
"Smallest First": "Smallest First",
"Source Code": "Source Code",
"Stable releases and release candidates": "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": "Stable releases only",
"Staggered File Versioning": "Staggered File Versioning",
"Start Browser": "Start Browser",
"Statistics": "Statistics",
@@ -221,6 +247,7 @@
"This Device": "This Device",
"This can easily give hackers access to read and change any files on your computer.": "This can easily give hackers access to read and change any files on your computer.",
"This is a major version upgrade.": "This is a major version upgrade.",
"This setting controls the free space required on the home (i.e., index database) disk.": "This setting controls the free space required on the home (i.e., index database) disk.",
"Time": "Time",
"Trash Can File Versioning": "Rubbish Bin File Versioning",
"Type": "Type",
@@ -234,6 +261,7 @@
"Upgrading": "Upgrading",
"Upload Rate": "Upload Rate",
"Uptime": "Uptime",
"Usage reporting is always enabled for candidate releases.": "Usage reporting is always enabled for candidate releases.",
"Use HTTPS for GUI": "Use HTTPS for GUI",
"Version": "Version",
"Versions Path": "Versions Path",
@@ -245,6 +273,9 @@
"When adding a new device, keep in mind that this device must be added on the other side too.": "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.": "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.",
"Yes": "Yes",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "You can change your choice at any time in the Settings dialogue.",
"You can read more about the two release channels at the link below.": "You can read more about the two release channels at the link below.",
"You must keep at least one version.": "You must keep at least one version.",
"days": "days",
"directories": "directories",

View File

@@ -10,6 +10,7 @@
"Add Device": "Add Device",
"Add Folder": "Add Folder",
"Add Remote Device": "Add Remote Device",
"Add devices from the introducer to our device list, for mutually shared folders.": "Add devices from the introducer to our device list, for mutually shared folders.",
"Add new folder?": "Add new folder?",
"Address": "Address",
"Addresses": "Addresses",
@@ -18,16 +19,20 @@
"Advanced settings": "Advanced settings",
"All Data": "All Data",
"Allow Anonymous Usage Reporting?": "Allow Anonymous Usage Reporting?",
"Allowed Networks": "Allowed Networks",
"Alphabetic": "Alphabetic",
"An external command handles the versioning. It has to remove the file from the shared folder.": "An external command handles the versioning. It has to remove the file from the shared folder.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "An external command handles the versioning. It has to remove the file from the synced folder.",
"Anonymous Usage Reporting": "Anonymous Usage Reporting",
"Any devices configured on an introducer device will be added to this device as well.": "Any devices configured on an introducer device will be added to this device as well.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Automatic upgrade now offers the choice between stable releases and release candidates.",
"Automatic upgrades": "Automatic upgrades",
"Be careful!": "Be careful!",
"Bugs": "Bugs",
"CPU Utilization": "CPU Utilization",
"Changelog": "Changelog",
"Clean out after": "Clean out after",
"Click to see discovery failures": "Click to see discovery failures",
"Close": "Close",
"Command": "Command",
"Comment, when used at the start of a line": "Comment, when used at the start of a line",
@@ -39,6 +44,7 @@
"Copied from original": "Copied from original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Creating ignore patterns, overwriting an existing file at {{path}}.",
"Danger!": "Danger!",
"Deleted": "Deleted",
"Device": "Device",
@@ -50,6 +56,7 @@
"Disconnected": "Disconnected",
"Discovered": "Discovered",
"Discovery": "Discovery",
"Discovery Failures": "Discovery Failures",
"Documentation": "Documentation",
"Download Rate": "Download Rate",
"Downloaded": "Downloaded",
@@ -58,17 +65,23 @@
"Edit Device": "Edit Device",
"Edit Folder": "Edit Folder",
"Editing": "Editing",
"Editing {%path%}.": "Editing {{path}}.",
"Enable NAT traversal": "Enable NAT traversal",
"Enable Relaying": "Enable Relaying",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.",
"Enter ignore patterns, one per line.": "Enter ignore patterns, one per line.",
"Error": "Error",
"External File Versioning": "External File Versioning",
"Failed Items": "Failed Items",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.",
"File Pull Order": "File Pull Order",
"File Versioning": "File Versioning",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "File permission bits are ignored when looking for changes. Use on FAT file systems.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Files are moved to .stversions directory when replaced or deleted by Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Files are moved to .stversions folder when replaced or deleted by Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.",
"Folder": "Folder",
@@ -80,7 +93,9 @@
"GUI": "GUI",
"GUI Authentication Password": "GUI Authentication Password",
"GUI Authentication User": "GUI Authentication User",
"GUI Listen Address": "GUI Listen Address",
"GUI Listen Addresses": "GUI Listen Addresses",
"GUI Theme": "GUI Theme",
"Generate": "Generate",
"Global Changes": "Global Changes",
"Global Discovery": "Global Discovery",
@@ -103,6 +118,7 @@
"Last seen": "Last seen",
"Later": "Later",
"Latest Change": "Latest Change",
"Learn more": "Learn more",
"Listeners": "Listeners",
"Local Discovery": "Local Discovery",
"Local State": "Local State",
@@ -120,6 +136,7 @@
"Newest First": "Newest First",
"No": "No",
"No File Versioning": "No File Versioning",
"No upgrades": "No upgrades",
"Normal": "Normal",
"Notice": "Notice",
"OK": "OK",
@@ -133,12 +150,16 @@
"Override Changes": "Override Changes",
"Path": "Path",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Path where versions should be stored (leave empty for the default .stversions folder in the folder).",
"Pause": "Pause",
"Pause All": "Pause All",
"Paused": "Paused",
"Please consult the release notes before performing a major upgrade.": "Please consult the release notes before performing a major upgrade.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Please set a GUI Authentication User and Password in the Settings dialog.",
"Please wait": "Please wait",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Preview",
"Preview Usage Report": "Preview Usage Report",
"Quick guide to supported patterns": "Quick guide to supported patterns",
@@ -146,6 +167,7 @@
"Random": "Random",
"Reduced by ignore patterns": "Reduced by ignore patterns",
"Release Notes": "Release Notes",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.",
"Remote Devices": "Remote Devices",
"Remove": "Remove",
"Required identifier for the folder. Must be the same on all cluster devices.": "Required identifier for the folder. Must be the same on all cluster devices.",
@@ -156,6 +178,7 @@
"Restart Needed": "Restart Needed",
"Restarting": "Restarting",
"Resume": "Resume",
"Resume All": "Resume All",
"Reused": "Reused",
"Save": "Save",
"Scan Time Remaining": "Scan Time Remaining",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Single level wildcard (matches within a directory only)",
"Smallest First": "Smallest First",
"Source Code": "Source Code",
"Stable releases and release candidates": "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": "Stable releases only",
"Staggered File Versioning": "Staggered File Versioning",
"Start Browser": "Start Browser",
"Statistics": "Statistics",
@@ -221,6 +247,7 @@
"This Device": "This Device",
"This can easily give hackers access to read and change any files on your computer.": "This can easily give hackers access to read and change any files on your computer.",
"This is a major version upgrade.": "This is a major version upgrade.",
"This setting controls the free space required on the home (i.e., index database) disk.": "This setting controls the free space required on the home (i.e., index database) disk.",
"Time": "Time",
"Trash Can File Versioning": "Trash Can File Versioning",
"Type": "Type",
@@ -234,6 +261,7 @@
"Upgrading": "Upgrading",
"Upload Rate": "Upload Rate",
"Uptime": "Uptime",
"Usage reporting is always enabled for candidate releases.": "Usage reporting is always enabled for candidate releases.",
"Use HTTPS for GUI": "Use HTTPS for GUI",
"Version": "Version",
"Versions Path": "Versions Path",
@@ -245,6 +273,9 @@
"When adding a new device, keep in mind that this device must be added on the other side too.": "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.": "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.",
"Yes": "Yes",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "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 can read more about the two release channels at the link below.",
"You must keep at least one version.": "You must keep at least one version.",
"days": "days",
"directories": "directories",

View File

@@ -0,0 +1,287 @@
{
"A device with that ID is already added.": "Aparato kies ID estis jam aldonita.",
"A negative number of days doesn't make sense.": "Negativa numero de tagoj sen senco.",
"A new major version may not be compatible with previous versions.": "Nova ĉefa versio eble ne kongruanta kun antaƭaj versioj.",
"API Key": "API Ülosilo",
"About": "Pri",
"Action": "Ago",
"Actions": "Agoj",
"Add": "Aldoni",
"Add Device": "Aldonu Aparaton",
"Add Folder": "Aldonu Dosierujon",
"Add Remote Device": "Aldonu Foran Aparaton",
"Add devices from the introducer to our device list, for mutually shared folders.": "Add devices from the introducer to our device list, for mutually shared folders.",
"Add new folder?": "Aldoni novan dosierujon?",
"Address": "Adreso",
"Addresses": "Adresoj",
"Advanced": "Altnivela",
"Advanced Configuration": "Altnivela Konfiguro",
"Advanced settings": "Altnivelaj agordoj",
"All Data": "Ĉiuj Datumoj",
"Allow Anonymous Usage Reporting?": "Permesi Anoniman Raporton de Uzado?",
"Allowed Networks": "Permesitaj Retoj",
"Alphabetic": "Alfabeta",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Ekstera komando manipulas la version. Ĝi devas forigi la dosieron el la partigita dosierujo.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Ekstera komando manipulas la version. Ĝi devas forigi la dosieron el la sinkronigita dosierujo.",
"Anonymous Usage Reporting": "Anonima Raporto de Uzado",
"Any devices configured on an introducer device will be added to this device as well.": "Ajna aparatoj agorditaj sur enkondukanto aparato estos ankaƭ aldonita al ĉi tiu aparato.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Aƭtomata ĝisdatigo nun proponas la elekton inter stabilaj eldonoj kaj kandidataj eldonoj.",
"Automatic upgrades": "Aƭtomataj ĝisdatigoj",
"Be careful!": "Atentu!",
"Bugs": "Bugoj",
"CPU Utilization": "Ĉefprocesoro Uzo",
"Changelog": "Ɯanĝoprotokolo",
"Clean out after": "Purigi poste",
"Click to see discovery failures": "Klaku por vidi malsukcesajn malkovrojn",
"Close": "Fermi",
"Command": "Komando",
"Comment, when used at the start of a line": "Komento, kiam uzita ĉe la komenco de lineo",
"Compression": "Densigo",
"Configured": "Agordita",
"Connection Error": "Eraro de Konekto",
"Connection Type": "Tipo de Konekto",
"Copied from elsewhere": "Kopiita el aliloke",
"Copied from original": "Kopiita el la originalo",
"Copyright © 2014-2016 the following Contributors:": "Kopirajto © 2014-2016 por la sekvantaj Kontribuantoj:",
"Copyright © 2014-2017 the following Contributors:": "Kopirajto © 2014-2017 por la sekvantaj Kontribuantoj:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Kreante ignori skemojn, anstataƭige ekzistantan dosieron ĉe {{path}}.",
"Danger!": "Danĝero!",
"Deleted": "Forigita",
"Device": "Aparato",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Aparato \"{{name}}\" ({{device}} ĉe {{address}}) volas konekti. Aldoni la novan aparaton?",
"Device ID": "Aparato ID",
"Device Identification": "Identigo de Aparato",
"Device Name": "Nomo de Aparato",
"Devices": "Aparatoj",
"Disconnected": "Malkonektita",
"Discovered": "Malkovrita",
"Discovery": "Malkovro",
"Discovery Failures": "Malkovritaj Fiaskoj",
"Documentation": "Dokumentado",
"Download Rate": "ElƝutado rapida",
"Downloaded": "ElƝutita",
"Downloading": "ElƝutado",
"Edit": "Redakti",
"Edit Device": "Redakti Aparaton",
"Edit Folder": "Redakti Dosierujon",
"Editing": "Redaktado",
"Editing {%path%}.": "Redaktado {{path}}.",
"Enable NAT traversal": "Üaltu trairan NAT",
"Enable Relaying": "Üaltu Relajsadon",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Enigi adresojn dividitajn per komoj (\"tcp://ip:port\", \"tcp://host:port\") aĆ­ \"dynamic\" por elfari aĆ­tomatan malkovradon de la adreso.",
"Enter ignore patterns, one per line.": "Entajpu ignori skemojn, unu po linio.",
"Error": "Eraro",
"External File Versioning": "Ekstera Versionado de Dosiero",
"Failed Items": "Malsukcesaj Eroj",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Malsukceso por konekti al IPv6 serviloj atendante se ekzistas neniu IPv6 konektebleco.",
"File Pull Order": "Ordo por Tiri Dosieron",
"File Versioning": "Versionado de Dosieroj",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Permesoj bitaj de dosieroj estas ignorita dum la serĉado por Ɲanĝoj. Uzi en FAT dosiersistemoj.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Dosieroj estas movigitaj al .stversiaj dosierujoj kiam anstataĆ­igitaj aĆ­ forigitaj en Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Dosieroj estas movigitaj al .stversions dosierujo kiam anstataĆ­igitaj aĆ­ forigitaj en Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Dosieroj estas movigitaj al date stampitaj versioj en .stversiaj dosierujo kiam ili estas anstataĆ­igitaj aĆ­ forigitaj en Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Dosieroj estas movigitaj al datostampitaj versioj en .stversions dosierujoj kiam ili estas anstataĆ­igitaj aĆ­ forigitaj en Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Dosieroj estas protektataj kontraƭ Ɲanĝoj faritaj en aliaj aparatoj, sed Ɲanĝoj faritaj en ĉi tiu aparato estos senditaj al cetera parto de la grupo.",
"Folder": "Dosierujo",
"Folder ID": "Dosieruja ID",
"Folder Label": "Dosieruja Etikedo",
"Folder Path": "Dosieruja Vojo",
"Folder Type": "Dosieruja Tipo",
"Folders": "Dosierujoj",
"GUI": "Grafika Interfaco",
"GUI Authentication Password": "Pasvorta AĆ­tentigo en Grafika Interfaco",
"GUI Authentication User": "Uzanta AĆ­tentigo en Grafika Interfaco",
"GUI Listen Address": "GUI Listen Address",
"GUI Listen Addresses": "AĆ­skultado de Adresoj en Grafika Interfaco",
"GUI Theme": "Etoso de Grafika Interfaco",
"Generate": "Generi",
"Global Changes": "Kompletaj Ɯanĝoj",
"Global Discovery": "Kompleta Malkovro",
"Global Discovery Servers": "Kompleta Malkovrado de Serviloj",
"Global State": "Kompleta Stato",
"Help": "Helpo",
"Home page": "Hejma paĝo",
"Ignore": "Ignoru",
"Ignore Patterns": "Ignori Üablonojn",
"Ignore Permissions": "Ignori Permesojn",
"Incoming Rate Limit (KiB/s)": "Alvenanta Limo Rapideco (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Erara agordo povas difekti viajn dosierujajn enhavojn kaj senefikigi Syncthing-n.",
"Introduced By": "Enkondukita Per",
"Introducer": "Enkondukita",
"Inversion of the given condition (i.e. do not exclude)": "Inversigo de la donita kondiĉo (i.e. ne ekskludas)",
"Keep Versions": "Konservi Versiojn.",
"Largest First": "Plej Granda Unue",
"Last File Received": "Lasta Dosiero Ricevita",
"Last Scan": "Lasta Skano",
"Last seen": "Lasta vidita",
"Later": "Poste",
"Latest Change": "Lasta Ɯanĝo",
"Learn more": "Lerni pli",
"Listeners": "AĆ­skultantoj",
"Local Discovery": "Loka Malkovro",
"Local State": "Loka Stato",
"Local State (Total)": "Loka Stato (Tuta)",
"Major Upgrade": "Ĉefa Ĝisdatigo",
"Master": "Ĉefa",
"Maximum Age": "Maksimuma Aĝo",
"Metadata Only": "Nur Metadatumoj",
"Minimum Free Disk Space": "Minimuma Libera Diskospaco",
"Move to top of queue": "Movi supren en la atendovico",
"Multi level wildcard (matches multiple directory levels)": "Multi nivelo Ĕokero (egalas multoblajn dosierujaj niveloj)",
"Never": "Neniam",
"New Device": "Nova Aparato",
"New Folder": "Dova Dosierujo",
"Newest First": "Plejnova Unue",
"No": "Ne",
"No File Versioning": "Sen Dosiera Versionado",
"No upgrades": "Sen ĝisdatigoj",
"Normal": "Normala",
"Notice": "Avizo",
"OK": "Bone",
"Off": "For",
"Oldest First": "Malnova Unue",
"Optional descriptive label for the folder. Can be different on each device.": "Laƭvola priskriba etikedo por la dosierujo. Povas esti malsama en ĉiu aparato.",
"Options": "Opcioj",
"Out of Sync": "Elsinkronigita",
"Out of Sync Items": "Elsinkronigitaj Eroj",
"Outgoing Rate Limit (KiB/s)": "Limo de Eliranta Rapideco (KiB/s)",
"Override Changes": "Transpasi Ɯanĝojn",
"Path": "Vojo",
"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": "Vojo de la dosierujo en la loka komputilo. Kreiĝos se ne ekzistas. La tilda signo (~) povas esti uzata kiel mallongigilo por",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Vojo kies versioj devus esti stokitaj (lasi malplena por la defaĆ­lta .stversiaj dosierujoj en la dividita dosierujo).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Vojo kies vesioj estas konservitaj (lasi malplena por la defaĆ­lta .stversiaj dosierujoj en la dosierujo).",
"Pause": "PaĆ­zu",
"Pause All": "Paƭzu Ĉion",
"Paused": "PaĆ­zita",
"Please consult the release notes before performing a major upgrade.": "Bonvolu konsulti la eldonitajn notojn antaƭ elfari ĉefan ĝisdatigon.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Bonvolu agordi GUI Authentication Uzanto kaj Pasvorto en la agordoj dialogo.",
"Please wait": "Bonvolu atendi",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "AntaĆ­rigardo",
"Preview Usage Report": "AntaĆ­rigardo Uzada Raporto",
"Quick guide to supported patterns": "Rapida gvidisto al subtenata Ɲablonoj",
"RAM Utilization": "RAM Utiligado",
"Random": "Hazarda",
"Reduced by ignore patterns": "Reduktita per ignorado de la Ɲablonoj",
"Release Notes": "Eldonitaj Notoj",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Kandidataj eldonoj enhavas la lastajn trajtojn kaj korektojn. Ili estas similaj al la tradiciaj dusemajnaj Syncthing Ĕetoj.",
"Remote Devices": "Foraj Aparatoj",
"Remove": "Forigu",
"Required identifier for the folder. Must be the same on all cluster devices.": "Nepra identigilo por la dosierujo. Devas esti la sama en ĉiuj aparatoj de la grupo.",
"Rescan": "Reskanu",
"Rescan All": "Reskanu Ĉion",
"Rescan Interval": "Reskana Intervalo",
"Restart": "Restartu",
"Restart Needed": "Restarto Bezonata",
"Restarting": "Restartado",
"Resume": "DaĆ­rigu",
"Resume All": "Daƭrigu Ĉion",
"Reused": "Reuzita",
"Save": "Konservu",
"Scan Time Remaining": "Skanada Restanta Tempo",
"Scanning": "Skanado",
"Select the devices to share this folder with.": "Elekti la aparatojn por komunigi ĉi tiun dosierujon.",
"Select the folders to share with this device.": "Elekti la dosierujojn por komunigi kun ĉi tiu aparato.",
"Send & Receive": "Sendi kaj Ricevi",
"Send Only": "Nur Sendi",
"Settings": "Agordoj",
"Share": "Komunigu",
"Share Folder": "Komunigu Dosierujon",
"Share Folders With Device": "Dosierujoj Komunigitaj Kun Aparato",
"Share With Devices": "Komunigu Kun Aparatoj",
"Share this folder?": "Komunigi ĉi tiun dosierujon?",
"Shared With": "Komunigita Kun",
"Show ID": "Montru ID",
"Show QR": "Montru QR",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Montrita anstataĆ­ ID de Aparato en la statuso de la grupo. Estos anoncita al aliaj aparatoj kiel laĆ­vola defaĆ­lta nomo.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Montri anstataƭ ID de Aparato en la statuso de la grupo. Estos ĝisdatigita al la nomo de la aparato sciigante se ĝi estas lasita malplena.",
"Shutdown": "Sistemfermu",
"Shutdown Complete": "Sistemfermu tute",
"Simple File Versioning": "Simpla Versionado de Dosieroj",
"Single level wildcard (matches within a directory only)": "Ununura nivelo Ĕokero (egalas nur ene de dosierujo)",
"Smallest First": "Plej Malgranda Unue",
"Source Code": "Fontkodo",
"Stable releases and release candidates": "Stabilaj eldonoj kaj kandidataj eldonoj",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Stabilaj eldonoj prokrastas je ĉirkaƭ du semjanoj. Dum tiu tempo ili estos testataj kiel kandidataj eldonoj.",
"Stable releases only": "Nur stabilaj eldonoj",
"Staggered File Versioning": "Gradigitaj Dosiera versionado",
"Start Browser": "Startu Retumilon",
"Statistics": "Statistikoj",
"Stopped": "Haltita",
"Support": "Subteno",
"Sync Protocol Listen Addresses": "Sync Protokolo de AĆ­skultado de Adresoj",
"Syncing": "Elsinkronado",
"Syncthing has been shut down.": "Syncthing estis malƝaltita.",
"Syncthing includes the following software or portions thereof:": "Syncthing inkluzivas la jenajn programarojn aƭ porciojn ĝiajn:",
"Syncthing is restarting.": "Syncthing estas restartanta.",
"Syncthing is upgrading.": "Syncthing estas ĝisdatigita.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Syncthing Ɲajnas nefunkcii, aƭ estas problemo kun via retkonekto. Reprovado...",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing Ɲajnas renkonti problemon kun la traktado de via peto. Bonvolu refreƝigi la paĝon aƭ restarti Syncthing se la problemo daƭras.",
"The Syncthing admin interface is configured to allow remote access without a password.": "La administra interfaco de Syncthing estas agordita por permesi foran atingon sen pasvorto.",
"The aggregated statistics are publicly available at the URL below.": "La agregita statistikoj estas publike disponebla ĉe la URL malsupre.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "La agordo estis registrita sed ne aktivigita. Syncthing devas restarti por aktivigi la novan agordon.",
"The device ID cannot be blank.": "La aparato ID ne povas esti malplena.",
"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).": "La aparato ID por eniri ĉi tie estas trovebla per \"Agoj > Montru ID\" dialogo en la alia aparato. Interspacoj kaj streketoj estas opcio (ignorigita).",
"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.": "La ĉifrita raporto de uzado estas sendata ĉiutage. Ĝi estas uzata por sekvi komunajn platformojn, dosierujajn grandojn kaj aplikaÄ”ajn versiojn. Se la raporto datumaro Ɲanĝis, vi estos avertata per ĉi tiu dialogo denove.",
"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.": "La enigita aparato ID ne Ɲajnas valida. Ĝi devas esti signoĉeno el 52 aƭ 56 karaktroj longa enhavanta leterojn kaj nombrojn, kun interspacoj kaj streketoj opciaj.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "La unua komandlinia parametro estas la vojo de la dosierujo kaj la dua parametro estas la relativa vojo en la dosierujo.",
"The folder ID cannot be blank.": "La dosierujo ID ne povas esti malplena.",
"The folder ID must be unique.": "La dosierujo ID devas esti unika.",
"The folder path cannot be blank.": "La vojo de la dosierujo ne povas esti malplena.",
"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.": "La jenaj intervaloj estas uzataj: dum la unua horo version restas dum ĉiuj 30 sekundoj, dum la unua tago versio restas konservita dum ĉiu horo, dum la unuaj 30 tagoj versio estas konservita dum ĉiu tago, ĝis la maksimume aĝa versio restas konservita dum ĉiu semajno.",
"The following items could not be synchronized.": "La sekvantaj elementoj ne povas esti sinkronigataj.",
"The maximum age must be a number and cannot be blank.": "La maksimuma aĝo devas esti nombro kaj ne povas esti malplena.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "La maksimuma tempo por konservi version (en tagoj, agordi je 0 por konservi versiojn eterne).",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "La minimuma libera procento de diskospaco devas esti pozitiva nombro inter 0 kaj 100 (inkluziva).",
"The number of days must be a number and cannot be blank.": "La nombro da tagoj devas esti nombro kaj ne povas esti malplena.",
"The number of days to keep files in the trash can. Zero means forever.": "La nombro da tagoj por konservi dosierojn en la rubujo. Nulo signifas eterne.",
"The number of old versions to keep, per file.": "La nombro da malnovaj versioj por konservi, po ĉiu dosiero.",
"The number of versions must be a number and cannot be blank.": "La nombro da versioj devas esti nombro kaj ne povas esti malplena.",
"The path cannot be blank.": "La vojo ne povas esti malplena.",
"The rate limit must be a non-negative number (0: no limit)": "La rapideca limo devas esti pozitiva nombro (0: senlimo)",
"The rescan interval must be a non-negative number of seconds.": "La intervalo de reskano devas esti pozitiva nombro da sekundoj.",
"They are retried automatically and will be synced when the error is resolved.": "Ili estas reprovitaj aĆ­tomate kaj estos sinkronigitaj kiam la eraro estas solvita.",
"This Device": "Ĉi tiu Aparato",
"This can easily give hackers access to read and change any files on your computer.": "Ĉi tio povas facile doni al kodumuloj atingon por legi kaj Ɲanĝi ajnajn dosierojn en via komputilo.",
"This is a major version upgrade.": "Ĉi tio estas ĉefversio ĝisdatigita.",
"This setting controls the free space required on the home (i.e., index database) disk.": "This setting controls the free space required on the home (i.e., index database) disk.",
"Time": "Tempo",
"Trash Can File Versioning": "Rubujo ebligas Dosieran Versionadon",
"Type": "Tipo",
"Unknown": "Nekonata",
"Unshared": "Nekomunigita",
"Unused": "Neuzita",
"Up to Date": "Ĝisdata",
"Updated": "Ĝisdatigita",
"Upgrade": "Altgradigo",
"Upgrade To {%version%}": "Altgradigi Al {{version}}",
"Upgrading": "Altgradigata",
"Upload Rate": "AlƝutorapideco",
"Uptime": "DaĆ­ro de funkciado",
"Usage reporting is always enabled for candidate releases.": "Uzada raportado ĉiam Ɲaltita por kandidataj Ä”etoj.",
"Use HTTPS for GUI": "Uzi HTTPS por grafika interfaco.",
"Version": "Versio",
"Versions Path": "Vojo de Versioj",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Versioj estas aƭtomate forigita se ili estas pli malnovaj ol la maksimuma aĝo aƭ superas la nombron da dosieroj permesita en intervalo.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Averto, ĉi tiu vojo estas parenta dosierujo de ekzistanta dosierujo \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Averto, ĉi tiu vojo estas parenta dosierujo de ekzistanta dosierujo \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Averto, ĉi tiu vojo estas subdosierujo de ekzistanta dosierujo \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Averto, ĉi tiu vojo estas subdosierujo de ekzistanta dosierujo \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Dum la aldonado de nova aparato, memoru ke ĉi tiu aparato devas esti aldonita en la alia flanko ankaƭ.",
"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.": "Dum la aldonado de nova dosierujo, memoru ke la Dosieruja ID estas uzita por ligi la dosierujojn kune inter aparatoj. Ili estas literfakodistingaj kaj devas kongrui precize inter ĉiuj aparatoj.",
"Yes": "Jes",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "Vi povas Ɲanĝi vian elekton iam ajn en la Agorda dialogo.",
"You can read more about the two release channels at the link below.": "Vi povas legi plu pri la du eldonkanaloj per la malsupra ligilo.",
"You must keep at least one version.": "Vi devas konservi almenaĆ­ unu version.",
"days": "tagoj",
"directories": "dosierujoj",
"files": "dosieroj",
"full documentation": "tuta dokumentado",
"items": "elementoj",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} volas komunigi dosierujon \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} volas komunigi dosierujon \"{{folderlabel}}\" ({{folder}})."
}

View File

@@ -4,12 +4,13 @@
"A new major version may not be compatible with previous versions.": "Una nueva versiĂłn con cambios importantes puede no ser compatible con versiones anteriores.",
"API Key": "Clave del API",
"About": "Acerca de",
"Action": "Action",
"Action": "AcciĂłn",
"Actions": "Acciones",
"Add": "Agregar",
"Add Device": "Agregar el dispositivo",
"Add Folder": "Agregar Carpeta",
"Add Remote Device": "Añadir un dispositivo",
"Add devices from the introducer to our device list, for mutually shared folders.": "Añadir dispositivos desde el introductor a nuestra lista de dispositivos, para las carpetas compartidas mutuamente.",
"Add new folder?": "ÂżAgregar una carpeta nueva?",
"Address": "DirecciĂłn",
"Addresses": "Direcciones",
@@ -18,16 +19,20 @@
"Advanced settings": "Ajustes avanzados",
"All Data": "Todos los datos",
"Allow Anonymous Usage Reporting?": "ÂżDeseas permitir el envĂ­o anĂłnimo de informes de uso?",
"Allowed Networks": "Redes permitidas",
"Alphabetic": "Alfabético",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Un comando externo gestiona las versiones. Tiene que eliminar el fichero de la carpeta compartida.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Un comando externo controla la versiĂłn. El fichero debe ser eliminado de la carpeta sincronizada.",
"Anonymous Usage Reporting": "Informe anĂłnimo de uso",
"Any devices configured on an introducer device will be added to this device as well.": "Cualquier dispositivo configurado en un dispositivo de introducción serå añadido también.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Ahora la actualizaciĂłn automĂĄtica permite elegir entre versiones estables o versiones candidatas.",
"Automatic upgrades": "Actualizaciones automĂĄticas",
"Be careful!": "ÂĄTen cuidado!",
"Bugs": "Errores",
"CPU Utilization": "Uso de CPU",
"Changelog": "Registro de cambios",
"Clean out after": "Limpiar tras",
"Click to see discovery failures": "Clica para ver fallos de descubrimiento.",
"Close": "Cerrar",
"Command": "AcciĂłn",
"Comment, when used at the start of a line": "Comentar, cuando se usa al comienzo de una lĂ­nea",
@@ -38,10 +43,11 @@
"Copied from elsewhere": "Copiado de otro sitio",
"Copied from original": "Copiado del original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 los siguientes Colaboradores:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 Los siguientes colaboradores:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Crear patrones a ignorar, sobreescribiendo un fichero existente en {{path}}.",
"Danger!": "ÂĄPeligro!",
"Deleted": "Eliminado",
"Device": "Device",
"Device": "Dispositivo",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "El dispositivo \"{{name}}\" ({{device}} en la dirección {{address}}) quiere conectarse. Añadir nuevo dispositivo?",
"Device ID": "ID del Dispositivo",
"Device Identification": "IdentificaciĂłn del Dispositivo",
@@ -50,6 +56,7 @@
"Disconnected": "Desconectado",
"Discovered": "Descubierto",
"Discovery": "Descubrimiento",
"Discovery Failures": "Fallos de Descubrimiento",
"Documentation": "DocumentaciĂłn",
"Download Rate": "Velocidad de descarga",
"Downloaded": "Descargado",
@@ -58,17 +65,23 @@
"Edit Device": "Editar Dispositivo",
"Edit Folder": "Editar Carpeta",
"Editing": "Editando",
"Editing {%path%}.": "Editando {{path}}.",
"Enable NAT traversal": "Permitir NAT transversal",
"Enable Relaying": "Habilitar RetransmisiĂłn",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Introduce un nĂșmero no negativo (por ejemplo, \"2.35\") y selecciona una unidad. Los porcentajes son como parte del tamaño total del disco.",
"Enter a non-privileged port number (1024 - 65535).": "Introduce un puerto sin privilegios (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Introduzca las direcciones, separadas por comas (\"tcp://ip:port\", \"tcp://host:port\"), o \"dynamic\" para llevar a cabo el descubrimiento automĂĄtico de la direcciĂłn.",
"Enter ignore patterns, one per line.": "Introducir patrones a ignorar, uno por lĂ­nea.",
"Error": "Error",
"External File Versioning": "Versionado externo de fichero",
"Failed Items": "Elementos fallidos",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Se espera un fallo al conectar a los servidores IPv6 si no hay conectividad IPv6.",
"File Pull Order": "Orden de obtenciĂłn de los ficheros",
"File Versioning": "Versionado de ficheros",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Los bits de permiso de ficheros son ignorados cuando se buscan cambios. Utilizar en sistemas de ficheros FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Los ficheros son movidos a la carpeta .stversions cuando son reemplazados o borrados por Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Los archivos serĂĄn movidos a la carpeta .stversions cuando sean reemplazados o borrados por Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Los ficheros son movidos a una carpeta .stversions a versiones con control de fecha cuando son reemplazados o borrados por Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Los ficheros son cambiados a versiones con indicaciĂłn de fecha en una carpeta \".stversions\" cuando son reemplazados o borrados por Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Los ficheros son protegidos por los cambios hechos en otros dispositivos, pero los cambios hechos en este dispositivo serĂĄn enviados al resto del grupo (cluster).",
"Folder": "Carpeta",
@@ -80,9 +93,11 @@
"GUI": "GUI",
"GUI Authentication Password": "Password de la Interfaz GrĂĄfica de Usuario (GUI)",
"GUI Authentication User": "AutentificaciĂłn de usuario de la Interfaz GrĂĄfica de Usuario (GUI)",
"GUI Listen Address": "DirecciĂłn de Escucha del GUI.",
"GUI Listen Addresses": "Direcciones de escucha de la Interfaz GrĂĄfica de Usuario (GUI)",
"GUI Theme": "Tema GUI",
"Generate": "Generar",
"Global Changes": "Global Changes",
"Global Changes": "Cambios globales",
"Global Discovery": "Descubrimiento global",
"Global Discovery Servers": "Servidores Globales de Descubrimiento",
"Global State": "Estado global",
@@ -93,7 +108,7 @@
"Ignore Permissions": "Permisos a ignorar",
"Incoming Rate Limit (KiB/s)": "LĂ­mite de descarga (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Una configuración incorrecta puede dañar los contenidos de la carpeta y hacer que Syncthing no funcione.",
"Introduced By": "Introduced By",
"Introduced By": "Introducido por",
"Introducer": "Presentador",
"Inversion of the given condition (i.e. do not exclude)": "InversiĂłn de la condiciĂłn dada (por ejemplo, \"no excluir\")",
"Keep Versions": "Mantener versiones",
@@ -103,6 +118,7 @@
"Last seen": "Visto por Ășltima vez",
"Later": "MĂĄs tarde",
"Latest Change": "Último Cambio",
"Learn more": "Saber mĂĄs",
"Listeners": "Oyentes",
"Local Discovery": "Descubrimiento local",
"Local State": "Estado local",
@@ -120,6 +136,7 @@
"Newest First": "El mĂĄs nuevo primero",
"No": "No",
"No File Versioning": "Sin versionado de fichero",
"No upgrades": "Sin actualizaciones",
"Normal": "Normal",
"Notice": "Aviso",
"OK": "OK",
@@ -131,14 +148,18 @@
"Out of Sync Items": "Elementos no sincronizados",
"Outgoing Rate Limit (KiB/s)": "LĂ­mite de subida (KiB/s)",
"Override Changes": "Anular cambios",
"Path": "Path",
"Path": "Parche",
"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 a la carpeta en la mĂĄquina local. Se crearĂĄ si no existe. El carĂĄcter de la tilde (~) puede usarse como atajo.",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "La ruta donde las versiones deben ser almacenadas (dejar vacĂ­o para el directorio .stversions por defecto en la carpeta compartida).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ruta donde se almacenarĂĄn las versiones (dejar vacĂ­o para usar la carpeta por defecto \".stversions\").",
"Pause": "Pausar",
"Pause All": "Pausar todo",
"Paused": "Pausado",
"Please consult the release notes before performing a major upgrade.": "Por favor, consultar las notas de la versiĂłn antes de realizar una actualizaciĂłn importante.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Por favor, introduzca un Usuario y Contraseña para la Autenticación de la Interfaz de Usuario en el panel de Ajustes.",
"Please wait": "Por favor, espere",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Vista previa",
"Preview Usage Report": "Informe de uso de vista previa",
"Quick guide to supported patterns": "GuĂ­a rĂĄpida de patrones soportados",
@@ -146,6 +167,7 @@
"Random": "Aleatorio",
"Reduced by ignore patterns": "Reducido por patrones de ignorar",
"Release Notes": "Notas de la versiĂłn",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Las versiones candidatas contienen las Ășltimas funcionalidades y correcciones. Son similares a las tradicionales versiones bisemanales de Syncthing.",
"Remote Devices": "Otros dispositivos",
"Remove": "Eliminar",
"Required identifier for the folder. Must be the same on all cluster devices.": "Identificador requerido para la carpeta. Debe ser el mismo en todos los dispositivos del clĂșster.",
@@ -156,6 +178,7 @@
"Restart Needed": "Reinicio necesario",
"Restarting": "Reiniciando",
"Resume": "Continuar",
"Resume All": "Continuar todo",
"Reused": "Reutilizado",
"Save": "Guardar",
"Scan Time Remaining": "Tiempo Restante de Escaneo",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "ComodĂ­n de nivel Ășnico (coincide solamente dentro de un directorio)",
"Smallest First": "El mås pequeño primero",
"Source Code": "CĂłdigo fuente",
"Stable releases and release candidates": "Versiones estables y versiones candidatas",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Las versiones estables son publicadas cada dos semanas. Durante este tiempo son probadas como versiones candidatas.",
"Stable releases only": "Solo versiones estables",
"Staggered File Versioning": "Versionado escalonado de fichero",
"Start Browser": "Iniciar el navegador",
"Statistics": "EstadĂ­sticas",
@@ -221,9 +247,10 @@
"This Device": "Este Dispositivo",
"This can easily give hackers access to read and change any files on your computer.": "Esto podrĂ­a permitir fĂĄcilmente el acceso a hackers para leer y modificar cualquier fichero de tu equipo.",
"This is a major version upgrade.": "Hay una actualizaciĂłn importante.",
"Time": "Time",
"This setting controls the free space required on the home (i.e., index database) disk.": "Este ajuste controla el espacio libre necesario en el disco principal (por ejemplo, el Ă­ndice de la base de datos).",
"Time": "Hora",
"Trash Can File Versioning": "Versionado de archivos de la papelera",
"Type": "Type",
"Type": "Tipo",
"Unknown": "Desconocido",
"Unshared": "No compartido",
"Unused": "No usado",
@@ -234,17 +261,21 @@
"Upgrading": "Actualizando",
"Upload Rate": "Velocidad de subida",
"Uptime": "Tiempo de funcionamiento",
"Usage reporting is always enabled for candidate releases.": "El informe de uso estĂĄ siempre habilitado en las versiones candidatas.",
"Use HTTPS for GUI": "Usar HTTPS para la Interfaz GrĂĄfica de Usuario (GUI)",
"Version": "VersiĂłn",
"Versions Path": "Ruta de las versiones",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Las versiones se borran automĂĄticamente si son mĂĄs antiguas que la edad mĂĄxima o exceden el nĂșmero de ficheros permitidos en un intervalo.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "ÂĄPeligro! Esta ruta es un directorio principal de la carpeta ya existente \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "'Peligro! Esta ruta es un subdirectorio de la carpeta ya existente \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Peligro! Esta ruta es un subdirectorio de una carpeta ya existente llamada \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Peligro, esta ruta es un subdirectorio de una carpeta ya existente llamada \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Cuando añada un nuevo dispositivo, tenga en cuenta que este debe añadirse también en el otro 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.": "Cuando añada una nueva carpeta, tenga en cuenta que su ID se usa para unir carpetas entre dispositivos. Son sensibles a las mayĂșsculas y deben coincidir exactamente entre todos los dispositivos.",
"Yes": "Si",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "Puedes cambiar tu elecciĂłn en cualquier momento en el panel de Ajustes.",
"You can read more about the two release channels at the link below.": "Puedes leer mås sobre los dos método de publicación de versiones en el siguiente enlace.",
"You must keep at least one version.": "Debes mantener al menos una versiĂłn.",
"days": "dĂ­as",
"directories": "directorios",

View File

@@ -1,256 +1,287 @@
{
"A device with that ID is already added.": "Ya se ha agregado un dispositivo con esa ID.",
"A device with that ID is already added.": "Ya se ha agregado un equipo con ese ID.",
"A negative number of days doesn't make sense.": "Un nĂșmero negativo de dĂ­as no tiene sentido.",
"A new major version may not be compatible with previous versions.": "Una versiĂłn mĂĄs reciente puede no ser compatible con las versiones anteriores.",
"API Key": "Clave API",
"A new major version may not be compatible with previous versions.": "Una nueva versiĂłn con cambios importantes puede no ser compatible con versiones anteriores.",
"API Key": "Clave del API",
"About": "Acerca de",
"Action": "Action",
"Action": "AcciĂłn",
"Actions": "Acciones",
"Add": "Agregar",
"Add Device": "Agregar Dispositivo",
"Add Folder": "Agregar Repositorio",
"Add Device": "Agregar el dispositivo",
"Add Folder": "Agregar Carpeta",
"Add Remote Device": "Añadir un dispositivo",
"Add new folder?": "ÂżAgregar nueva carpeta?",
"Add devices from the introducer to our device list, for mutually shared folders.": "Añadir dispositivos desde el introductor a nuestra lista de dispositivos, para las carpetas compartidas mutuamente.",
"Add new folder?": "ÂżAgregar una carpeta nueva?",
"Address": "DirecciĂłn",
"Addresses": "Direcciones",
"Advanced": "Avanzada",
"Advanced Configuration": "ConfiguraciĂłn avanzada",
"Advanced settings": "Optiones avanzadas",
"Advanced": "Avanzado",
"Advanced Configuration": "ConfiguraciĂłn Avanzada",
"Advanced settings": "Ajustes avanzados",
"All Data": "Todos los datos",
"Allow Anonymous Usage Reporting?": "Permitir reporte anĂłnimo de uso?",
"Allow Anonymous Usage Reporting?": "ÂżDeseas permitir el envĂ­o anĂłnimo de informes de uso?",
"Allowed Networks": "Redes permitidas",
"Alphabetic": "Alfabético",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Un comando exterior maneja el control de versiones. Éste tiene que eliminar el archivo de la carpeta sincronizada.",
"Anonymous Usage Reporting": "Reporte anĂłnimo de uso",
"Any devices configured on an introducer device will be added to this device as well.": "Cualquier dispositivo configurado en un dispositivo introductor serå también agregado a tu propio dispositivo.",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Un comando externo gestiona las versiones. Tiene que eliminar el fichero de la carpeta compartida.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Un comando externo controla la versiĂłn. El fichero debe ser eliminado de la carpeta sincronizada.",
"Anonymous Usage Reporting": "Informe anĂłnimo de uso",
"Any devices configured on an introducer device will be added to this device as well.": "Cualquier dispositivo configurado en un dispositivo de introducción serå añadido también.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Ahora la actualizaciĂłn automĂĄtica permite elegir entre versiones estables o versiones candidatas.",
"Automatic upgrades": "Actualizaciones automĂĄticas",
"Be careful!": "ÂĄSĂ© cuidadoso!",
"Be careful!": "ÂĄTen cuidado!",
"Bugs": "Errores",
"CPU Utilization": "Uso de CPU",
"Changelog": "Registro de cambios",
"Clean out after": "Limpiar después",
"Clean out after": "Limpiar tras",
"Click to see discovery failures": "Clica para ver fallos de descubrimiento.",
"Close": "Cerrar",
"Command": "Comando",
"Comment, when used at the start of a line": "Comentario, cuando es utilizado al inicio de una lĂ­nea.",
"Command": "AcciĂłn",
"Comment, when used at the start of a line": "Comentar, cuando se usa al comienzo de una lĂ­nea",
"Compression": "CompresiĂłn",
"Configured": "Configurado",
"Connection Error": "Error de conexiĂłn",
"Connection Type": "Tipo de conexiĂłn",
"Copied from elsewhere": "Copiado desde otra parte.",
"Copied from elsewhere": "Copiado de otro sitio",
"Copied from original": "Copiado del original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 los siguientes contribuidores:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Danger!": "Peligro!",
"Deleted": "Suprimido",
"Device": "Device",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Dispositivo \"{{name}}\" ({{device}} en {{address}}) quiere conectar. ¿Añadir nuevo dispositivo?",
"Device ID": "ID del dispositivo",
"Device Identification": "IdentificaciĂłn del dispositivo",
"Device Name": "Nombre del dispositivo",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 los siguientes Colaboradores:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 Los siguientes colaboradores:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Crear patrones a ignorar, sobreescribiendo un fichero existente en {{path}}.",
"Danger!": "ÂĄPeligro!",
"Deleted": "Eliminado",
"Device": "Dispositivo",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "El dispositivo \"{{name}}\" ({{device}} en la dirección {{address}}) quiere conectarse. Añadir nuevo dispositivo?",
"Device ID": "ID del Dispositivo",
"Device Identification": "IdentificaciĂłn del Dispositivo",
"Device Name": "Nombre del Dispositivo",
"Devices": "Dispositivos",
"Disconnected": "Desconectado",
"Discovered": "Descubierto",
"Discovery": "BĂșsqueda",
"Discovery": "Descubrimiento",
"Discovery Failures": "Fallos de Descubrimiento",
"Documentation": "DocumentaciĂłn",
"Download Rate": "Tasa de descarga",
"Download Rate": "Velocidad de descarga",
"Downloaded": "Descargado",
"Downloading": "Descargando",
"Edit": "Editar",
"Edit Device": "Cambiando dispositivo",
"Edit Folder": "Cambiando repositorio",
"Edit Device": "Editar Dispositivo",
"Edit Folder": "Editar Carpeta",
"Editing": "Editando",
"Enable NAT traversal": "Habilitar NAT trasversal",
"Editing {%path%}.": "Editando {{path}}.",
"Enable NAT traversal": "Permitir NAT transversal",
"Enable Relaying": "Habilitar RetransmisiĂłn",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Introduce las direcciones (\"tcp://ip:puerto\", \"tcp://huésped:puerto\") separadas por comas, o \"dynamic\" para ejecutar un descubrimiento automåtico de la dirección. ",
"Enter ignore patterns, one per line.": "Añadir patrones de exclusión, uno por línea.",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Introduce un nĂșmero no negativo (por ejemplo, \"2.35\") y selecciona una unidad. Los porcentajes son como parte del tamaño total del disco.",
"Enter a non-privileged port number (1024 - 65535).": "Introduce un puerto sin privilegios (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Introduzca las direcciones, separadas por comas (\"tcp://ip:port\", \"tcp://host:port\"), o \"dynamic\" para llevar a cabo el descubrimiento automĂĄtico de la direcciĂłn.",
"Enter ignore patterns, one per line.": "Introducir patrones a ignorar, uno por lĂ­nea.",
"Error": "Error",
"External File Versioning": "Control de versiones externo",
"Failed Items": "ArtĂ­culos fallidos",
"File Pull Order": "Orden para coger ficheros",
"File Versioning": "Control de versiones",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Los permisos de archivo son ignorados al buscar cambios. Usar el sistemas de archivos FAT.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Los archivos son movidos al directorio .stversions cuando son reemplazados o eliminados por Syncthing. Sus caminos de accesos relativos son recreados aquĂ­ si necesidad. ",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Lo archivos son movidos al directorio .stversions y renombrados a versiones marcadas por fecha cuando son reemplazados o eliminados por Syncthing, Sus caminos de accesos relativos son recreados aquĂ­ si necesidad.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Los archivos estĂĄn protegidos frente a los cambios realizados en otros dispositivos, peros los cambios realizados en este dispositivo serĂĄn envĂ­ados al resto del grupo",
"Folder": "Repositorio",
"Folder ID": "ID del repositorio",
"Folder Label": "Etiqueta de Carpeta",
"Folder Path": "Ruta del repositorio",
"Folder Type": "Tipo de Carpeta",
"Folders": "Repositorios",
"External File Versioning": "Versionado externo de fichero",
"Failed Items": "Elementos fallidos",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Se espera un fallo al conectar a los servidores IPv6 si no hay conectividad IPv6.",
"File Pull Order": "Orden de obtenciĂłn de los ficheros",
"File Versioning": "Versionado de ficheros",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Los bits de permiso de ficheros son ignorados cuando se buscan cambios. Utilizar en sistemas de ficheros FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Los ficheros son movidos a la carpeta .stversions cuando son reemplazados o borrados por Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Los archivos serĂĄn movidos a la carpeta .stversions cuando sean reemplazados o borrados por Syncthing.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Los ficheros son movidos a una carpeta .stversions a versiones con control de fecha cuando son reemplazados o borrados por Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Los ficheros son cambiados a versiones con indicaciĂłn de fecha en una carpeta \".stversions\" cuando son reemplazados o borrados por Syncthing.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Los ficheros son protegidos por los cambios hechos en otros dispositivos, pero los cambios hechos en este dispositivo serĂĄn enviados al resto del grupo (cluster).",
"Folder": "Carpeta",
"Folder ID": "ID de carpeta",
"Folder Label": "Etiqueta de la Carpeta",
"Folder Path": "Ruta de la carpeta",
"Folder Type": "Tipo de carpeta",
"Folders": "Carpetas",
"GUI": "GUI",
"GUI Authentication Password": "Contraseña de autenticación de la GUI",
"GUI Authentication User": "Usuario de la GUI",
"GUI Listen Addresses": "Direcciones de escucha para la GUI.",
"GUI Authentication Password": "Password de la Interfaz GrĂĄfica de Usuario (GUI)",
"GUI Authentication User": "AutentificaciĂłn de usuario de la Interfaz GrĂĄfica de Usuario (GUI)",
"GUI Listen Address": "DirecciĂłn de Escucha del GUI.",
"GUI Listen Addresses": "Direcciones de escucha de la Interfaz GrĂĄfica de Usuario (GUI)",
"GUI Theme": "Tema GUI",
"Generate": "Generar",
"Global Changes": "Global Changes",
"Global Discovery": "BĂșsqueda en internet",
"Global Discovery Servers": "Servidores globales de identificaciĂłn",
"Global Changes": "Cambios globales",
"Global Discovery": "Descubrimiento global",
"Global Discovery Servers": "Servidores Globales de Descubrimiento",
"Global State": "Estado global",
"Help": "Ayuda",
"Home page": "Pagina de inicio",
"Home page": "PĂĄgina de inicio",
"Ignore": "Ignorar",
"Ignore Patterns": "Patrones de exclusiĂłn",
"Ignore Permissions": "Ignorar permisos",
"Incoming Rate Limit (KiB/s)": "LĂ­mite de velocidad de entrada (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Configuración incorrecta puede dañar los contenidos de la carpeta y hacer Syncthing inoperable.",
"Introduced By": "Introduced By",
"Introducer": "Dispositivo introductor",
"Inversion of the given condition (i.e. do not exclude)": "InversiĂłn de la condiciĂłn dada (es decir, no excluir)",
"Keep Versions": "Conservar versiones",
"Ignore Patterns": "Patrones a ignorar",
"Ignore Permissions": "Permisos a ignorar",
"Incoming Rate Limit (KiB/s)": "LĂ­mite de descarga (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Una configuración incorrecta puede dañar los contenidos de la carpeta y hacer que Syncthing no funcione.",
"Introduced By": "Introducido por",
"Introducer": "Presentador",
"Inversion of the given condition (i.e. do not exclude)": "InversiĂłn de la condiciĂłn dada (por ejemplo, \"no excluir\")",
"Keep Versions": "Mantener versiones",
"Largest First": "MĂĄs grande primero",
"Last File Received": "Última actualización",
"Last Scan": "Último escaneo",
"Last seen": "Visto por ultima vez",
"Last seen": "Visto por Ășltima vez",
"Later": "MĂĄs tarde",
"Latest Change": "Último cambio",
"Listeners": "Receptor",
"Local Discovery": "BĂșsqueda en red local",
"Latest Change": "Último Cambio",
"Learn more": "Saber mĂĄs",
"Listeners": "Oyentes",
"Local Discovery": "Descubrimiento local",
"Local State": "Estado local",
"Local State (Total)": "Estado local (total)",
"Major Upgrade": "ActualizaciĂłn mayor",
"Local State (Total)": "Estado Local (Total)",
"Major Upgrade": "ActualizaciĂłn importante",
"Master": "Maestro",
"Maximum Age": "Edad mĂĄxima",
"Metadata Only": "SĂłlo metadatos",
"Minimum Free Disk Space": "Espacio mĂ­nimo libre en disco",
"Move to top of queue": "Mover al principio de la cola.",
"Multi level wildcard (matches multiple directory levels)": "CarĂĄcter comodĂ­n multinivel (coincide en el directorio y sus subdirectorios)",
"Move to top of queue": "Mover al principio de la cola",
"Multi level wildcard (matches multiple directory levels)": "ComodĂ­n multinivel (coincide con mĂșltiples niveles de directorio)",
"Never": "Nunca",
"New Device": "Nuevo dispositivo",
"New Folder": "Nuevo repositorio",
"Newest First": "Nuevo primero",
"New Device": "Nuevo Dispositivo",
"New Folder": "Nueva Carpeta",
"Newest First": "El mĂĄs nuevo primero",
"No": "No",
"No File Versioning": "Sin control de versiones de archivos",
"No File Versioning": "Sin versionado de fichero",
"No upgrades": "Sin actualizaciones",
"Normal": "Normal",
"Notice": "Aviso",
"OK": "OK",
"Off": "Apagado",
"Oldest First": "Antiguo primero",
"Off": "Desconectar",
"Oldest First": "El mĂĄs antiguo primero",
"Optional descriptive label for the folder. Can be different on each device.": "Etiqueta descriptiva opcional para la carpeta. Puede ser diferente en cada dispositivo.",
"Options": "Opciones",
"Out of Sync": "Fuera de sincronizaciĂłn",
"Out of Sync Items": "Ítems no sincronizados",
"Outgoing Rate Limit (KiB/s)": "Tasa mĂĄxima de envĂ­o (KiB/s)",
"Override Changes": "Reemplazar los cambios",
"Path": "Path",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Ruta del repositorio en el equipo local. SerĂĄ creado si no existe. El carĂĄcter tilde (~) puede ser utilizado como atajo de ",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ruta donde serĂĄn guardas las versiones (dejar vacĂ­o para usar el directorio predifinido \".stversions\" en el repositorio)",
"Pause": "Pausa",
"Paused": "En pausa",
"Please consult the release notes before performing a major upgrade.": "Por favor consulta las notas de lanzamiento antes de realizar una actualizacĂłn mayor.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Por favor, establece un Usuario y Contraseña de Autenticación en la GUI en el diålogo de Configuración",
"Please wait": "Aguarde por favor",
"Out of Sync": "No sincronizado",
"Out of Sync Items": "Elementos no sincronizados",
"Outgoing Rate Limit (KiB/s)": "LĂ­mite de subida (KiB/s)",
"Override Changes": "Anular cambios",
"Path": "Parche",
"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 a la carpeta en la mĂĄquina local. Se crearĂĄ si no existe. El carĂĄcter de la tilde (~) puede usarse como atajo.",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "La ruta donde las versiones deben ser almacenadas (dejar vacĂ­o para el directorio .stversions por defecto en la carpeta compartida).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ruta donde se almacenarĂĄn las versiones (dejar vacĂ­o para usar la carpeta por defecto \".stversions\").",
"Pause": "Pausar",
"Pause All": "Pausar todo",
"Paused": "Pausado",
"Please consult the release notes before performing a major upgrade.": "Por favor, consultar las notas de la versiĂłn antes de realizar una actualizaciĂłn importante.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Por favor, introduzca un Usuario y Contraseña para la Autenticación de la Interfaz de Usuario en el panel de Ajustes.",
"Please wait": "Por favor, espere",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Vista previa",
"Preview Usage Report": "Ver reporte de uso",
"Quick guide to supported patterns": "GuĂ­a rĂĄpida sobre los patrones soportados",
"RAM Utilization": "UtilizaciĂłn de RAM",
"Preview Usage Report": "Informe de uso de vista previa",
"Quick guide to supported patterns": "GuĂ­a rĂĄpida de patrones soportados",
"RAM Utilization": "Uso de RAM",
"Random": "Aleatorio",
"Reduced by ignore patterns": "(Restringido por patrones de exclusiĂłn)",
"Release Notes": "Notas de lanzamiento",
"Reduced by ignore patterns": "Reducido por patrones de ignorar",
"Release Notes": "Notas de la versiĂłn",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Las versiones candidatas contienen las Ășltimas funcionalidades y correcciones. Son similares a las tradicionales versiones bisemanales de Syncthing.",
"Remote Devices": "Otros dispositivos",
"Remove": "Eliminar",
"Required identifier for the folder. Must be the same on all cluster devices.": "IdentificaciĂłn requerida para la carpeta. Debe ser la misma en todos los dispositivos del grupo.",
"Rescan": "Reescanear",
"Rescan All": "Reescanear todo",
"Rescan Interval": "Intervalo de reescaneo",
"Required identifier for the folder. Must be the same on all cluster devices.": "Identificador requerido para la carpeta. Debe ser el mismo en todos los dispositivos del clĂșster.",
"Rescan": "Volver a analizar",
"Rescan All": "Volver a analizar Todo",
"Rescan Interval": "Intervalo de anĂĄlisis",
"Restart": "Reiniciar",
"Restart Needed": "Es necesario reiniciar",
"Restart Needed": "Reinicio necesario",
"Restarting": "Reiniciando",
"Resume": "Reanudar",
"Resume": "Continuar",
"Resume All": "Continuar todo",
"Reused": "Reutilizado",
"Save": "Guardar",
"Scan Time Remaining": "Tiempo de Escaneo Restante",
"Scanning": "ActualizaciĂłn",
"Select the devices to share this folder with.": "Seleccione los dispositivos con los cuales compartir este repositorio.",
"Select the folders to share with this device.": "Seleccione los repositorios para compartir con este dispositivo.",
"Send & Receive": "Send & Receive",
"Send Only": "Send Only",
"Settings": "ConfiguraciĂłn",
"Scan Time Remaining": "Tiempo Restante de Escaneo",
"Scanning": "Analizando",
"Select the devices to share this folder with.": "Selecciona los dispositivos con los que compartir esta carpeta.",
"Select the folders to share with this device.": "Selecciona las carpetas para compartir con este dispositivo.",
"Send & Receive": "Enviar y Recibir",
"Send Only": "Solo Enviar",
"Settings": "Ajustes",
"Share": "Compartir",
"Share Folder": "Compartir repositorio",
"Share Folders With Device": "Compartir repositorios con dispositivo",
"Share With Devices": "Compartir con los dispositivos",
"Share this folder?": "ÂżCompartir este repositorio?",
"Shared With": "Compartido con",
"Share Folder": "Compartir carpeta",
"Share Folders With Device": "Compartir carpetas con dispositivo",
"Share With Devices": "Compartir con dispositivos",
"Share this folder?": "ÂżDeseas compartir esta carpeta?",
"Shared With": "Compartir con",
"Show ID": "Mostrar ID",
"Show QR": "Mostrar QR",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Mostrado en lugar de la ID del dispositivo en el estado del grupo. SerĂĄ sugerido a otros dispositivos como nombre fĂĄcil de usar predeterminado 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 de la ID del dispositivo en el estado del grupo. Si se deja en blanco, serĂĄ llenado por el nombre fĂĄcil de usar sugerido por el dispositivo.",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Se muestra en lugar del ID del dispositivo en el estado del grupo (cluster). Se notificarĂĄ a los otros dispositivos como nombre opcional por defecto.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Se muestra en lugar del ID del dispositivo en el estado del grupo (cluster). Se actualizarĂĄ al nombre que el dispositivo anuncia si se deja vacĂ­o.",
"Shutdown": "Apagar",
"Shutdown Complete": "Apagado completado",
"Simple File Versioning": "Versiones simple de archivos",
"Single level wildcard (matches within a directory only)": "CarĂĄcter comodĂ­n de un solo nivel (coincide sĂłlo dentro de un directorio)",
"Smallest First": "Mås pequeño primero",
"Shutdown Complete": "Apagar completamente",
"Simple File Versioning": "Versionado simple de fichero",
"Single level wildcard (matches within a directory only)": "ComodĂ­n de nivel Ășnico (coincide solamente dentro de un directorio)",
"Smallest First": "El mås pequeño primero",
"Source Code": "CĂłdigo fuente",
"Staggered File Versioning": "Versiones del archivo escalonado",
"Start Browser": "Iniciar navegador",
"Stable releases and release candidates": "Versiones estables y versiones candidatas",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Las versiones estables son publicadas cada dos semanas. Durante este tiempo son probadas como versiones candidatas.",
"Stable releases only": "Solo versiones estables",
"Staggered File Versioning": "Versionado escalonado de fichero",
"Start Browser": "Iniciar el navegador",
"Statistics": "EstadĂ­sticas",
"Stopped": "Parado",
"Stopped": "Detenido",
"Support": "Forum",
"Sync Protocol Listen Addresses": "DirecciĂłn de escucha del protocolo de sincronizaciĂłn",
"Syncing": "SincronizaciĂłn",
"Syncthing has been shut down.": "La sincronizaciĂłn esta apagada",
"Syncthing includes the following software or portions thereof:": "Syncthing incluye los siguientes softwares o partes de ellos:",
"Syncthing is restarting.": "Syncthing estĂĄ reiniciando.",
"Sync Protocol Listen Addresses": "Direcciones de escucha del protocolo de sincronizaciĂłn",
"Syncing": "Sincronizando",
"Syncthing has been shut down.": "Syncthing se ha detenido.",
"Syncthing includes the following software or portions thereof:": "Syncthing incluye el siguiente software o partes de él:",
"Syncthing is restarting.": "Syncthing se estĂĄ reiniciando.",
"Syncthing is upgrading.": "Syncthing se estĂĄ actualizando.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Syncthing parece estar apagado, o hay un problema con su conexión de Internet. Reintentando...",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing parece estar experimentando un problema al procesar su solicitud. Por favor, recargue el navegador o reinicie Syncthing si el problema persiste.",
"The Syncthing admin interface is configured to allow remote access without a password.": "La interfaz administrativa del Syncthing estå configurada para permitir acceso remoto sin una contraseña.",
"The aggregated statistics are publicly available at the URL below.": "Las estadĂ­sticas agregadas estĂĄn disponibles pĂșblicamente en la direcciĂłn de abajo.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "La configuraciĂłn ha sido guardada pero no activada.\nSyncthing debe reiniciarse para activar la nueva configuraciĂłn.",
"The device ID cannot be blank.": "La ID del dispositivo no puede estar en blanco.",
"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).": "La ID de dispositivo a introducir ser puede encontrar en el menĂș \"Acciones > Mostrar ID\" en el otro dispositivo. Espacios y guiones son opcionales (ignorados). ",
"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.": "El informe de uso se envía encriptado diariamente. Se utiliza para hacer un seguimiento de plataformas comunes, tamaño de repositorios y versiones de la aplicación. Si el conjunto de datos cambia serå notificado mediante este dialogo nuevamente.",
"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.": "La ID del dispositivo introducida no es vĂĄlida. Debe ser una cadena de 52 o 56 caracteres consistente en letras y nĂșmeros, con espacios y guiones opcionales.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "El primer argumento es la ruta de la carpeta y el segundo argumento es la ruta relativa de esta carpeta.",
"The folder ID cannot be blank.": "La ID del repositorio no puede estar en blanco.",
"The folder ID must be unique.": "La ID del repositorio debe ser Ășnica.",
"The folder path cannot be blank.": "La ruta del repositorio no puede estar vacĂ­a.",
"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.": "Los siguientes intervalos se utilizan: para la primera hora una versiĂłn se mantiene cada 30 segundos, para el primer dĂ­a de una versiĂłn se mantiene cada hora, durante los primeros 30 dĂ­as de la versiĂłn se mantiene todos los dĂ­as, hasta que la edad mĂĄxima de una versiĂłn se mantiene cada semana.",
"The following items could not be synchronized.": "Los siguientes artĂ­culos no pueden ser sincronizados.",
"The maximum age must be a number and cannot be blank.": "La edad mĂĄxima debe ser un nĂșmero y no puede estar en blanco.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "El tiempo mĂĄximo para mantener una versiĂłn (en dĂ­as, establece en 0 para mantener versiones para siempre).",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "El porcentaje de espacio libre en disco mĂ­nimo debe ser un nĂșmero no negativo entre 0 y 100 (incluidos).",
"The number of days must be a number and cannot be blank.": "El nĂșmero de dĂ­as debe ser un nĂșmero y no puede estar vacĂ­o.",
"The number of days to keep files in the trash can. Zero means forever.": "El tiempo mĂĄximo para mantener un archivo en el cubo de basura (en dĂ­as, establece en 0 para mantener versiones para siempre).",
"The number of old versions to keep, per file.": "El numero de versiones anteriores a conservar, por archivo.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Syncthing parece no estar activo o hay un problema con tu conexión de internet. Reintentando...",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing tiene problemas para procesar tu solicitud. Por favor, actualiza la pĂĄgina o reinicia Syncthing si el problema persiste.",
"The Syncthing admin interface is configured to allow remote access without a password.": "El panel de administración de Syncthing estå configurado para permitir el acceso remoto sin contraseña.",
"The aggregated statistics are publicly available at the URL below.": "Las estadĂ­sticas agragadas estĂĄn disponibles pĂșblicamente en la URL de abajo.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "La configuraciĂłn ha sido grabada pero no activada. Syncthing debe reiniciarse para activar la nueva configuraciĂłn.",
"The device ID cannot be blank.": "La ID del dispositivo no puede estar vacĂ­a.",
"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).": "El ID del dispositivo que hay que introducir aquĂ­ se puede encontrar en el diĂĄlogo \"Acciones > Mostrar ID\" en el otro dispositivo. Los espacios y las barras son opcionales (ignorados).",
"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.": "El informe encriptado de uso se envía diariamente. Se usa para rastrear plataformas comunes, tamaños de carpetas y versiones de la aplicación. Si el conjunto de datos enviados en el informes se cambia, se le pedirå a usted autorización de nuevo.",
"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.": "La ID del dispositivo introducida no parece vĂĄlida. Debe ser una cadena de 52 Ăł 56 caracteres formada por letras y nĂșmeros, con espacios y guiones opcionales.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "El primer parĂĄmetro del comando es la ruta de la carpeta y el segundo es la ruta relativa en la carpeta.",
"The folder ID cannot be blank.": "La ID de la carpeta no puede estar vacĂ­a.",
"The folder ID must be unique.": "La ID de la carpeta debe ser Ășnica.",
"The folder path cannot be blank.": "La ruta de la carpeta no puede estar en blanco.",
"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.": "Se utilizan los siguientes intervalos: para la primera hora se mantiene una versiĂłn cada 30 segundos, para el primer dĂ­a se mantiene una versiĂłn cada hora, para los primeros 30 dĂ­as se mantiene una versiĂłn diaria hasta la edad mĂĄxima de una semana.",
"The following items could not be synchronized.": "Los siguientes elementos no pueden ser sincronizados.",
"The maximum age must be a number and cannot be blank.": "La edad mĂĄxima debe ser un nĂșmero y no puede estar vacĂ­a.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "El tiempo mĂĄximo para mantener una versiĂłn en dĂ­as (introducir 0 para mantener las versiones indefinidamente).",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "El porcentaje de espacio libre mĂ­nimo debe ser un nĂșmero no negativo entre 0 y 100 (ambos inclusive).",
"The number of days must be a number and cannot be blank.": "El nĂșmero de dĂ­as debe ser un nĂșmero y no puede estar en blanco.",
"The number of days to keep files in the trash can. Zero means forever.": "El nĂșmero de dĂ­as para mantener los archivos en la papelera. Cero significa \"para siempre\".",
"The number of old versions to keep, per file.": "El nĂșmero de versiones a antiguas a mantener para cada fichero.",
"The number of versions must be a number and cannot be blank.": "El nĂșmero de versiones debe ser un nĂșmero y no puede estar vacĂ­o.",
"The path cannot be blank.": "La ruta no puede estar vacĂ­a.",
"The rate limit must be a non-negative number (0: no limit)": "El intervalo de reescaneo debe ser un nĂșmero no negativo de segundos. (0: no limit)",
"The rescan interval must be a non-negative number of seconds.": "El intervalo de reescaneo debe ser un nĂșmero no negativo de segundos.",
"They are retried automatically and will be synced when the error is resolved.": "Los archivos se sincronizan automĂĄticamente cuando el error se resuelve.",
"The rate limit must be a non-negative number (0: no limit)": "El lĂ­mite de velocidad debe ser un nĂșmero no negativo (0: sin lĂ­mite)",
"The rescan interval must be a non-negative number of seconds.": "El intervalo de actualizaciĂłn debe ser un nĂșmero positivo de segundos.",
"They are retried automatically and will be synced when the error is resolved.": "Se reintentarĂĄn de forma automĂĄtica y se sincronizarĂĄn cuando se resuelva el error.",
"This Device": "Este Dispositivo",
"This can easily give hackers access to read and change any files on your computer.": "Esto puede darle permiso a los hackers, podrån acceder a cualquier archivo, pudiéndolos leer y editar.",
"This is a major version upgrade.": "Esta es una actualizaciĂłn de version mayor.",
"Time": "Time",
"Trash Can File Versioning": "Versiones como cubo de basura",
"Type": "Type",
"This can easily give hackers access to read and change any files on your computer.": "Esto podrĂ­a permitir fĂĄcilmente el acceso a hackers para leer y modificar cualquier fichero de tu equipo.",
"This is a major version upgrade.": "Hay una actualizaciĂłn importante.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Este ajuste controla el espacio libre necesario en el disco principal (por ejemplo, el Ă­ndice de la base de datos).",
"Time": "Hora",
"Trash Can File Versioning": "Versionado de archivos de la papelera",
"Type": "Tipo",
"Unknown": "Desconocido",
"Unshared": "No compartido",
"Unused": "No utilizado",
"Unused": "No usado",
"Up to Date": "Actualizado",
"Updated": "Actualizado",
"Upgrade": "Actualizar",
"Upgrade To {%version%}": "Actualizar a {{version}}",
"Upgrading": "Actualizando",
"Upload Rate": "Tasa de subida",
"Uptime": "Tiempo en funcionamiento",
"Use HTTPS for GUI": "Usar HTTPS para la GUI",
"Upload Rate": "Velocidad de subida",
"Uptime": "Tiempo de funcionamiento",
"Usage reporting is always enabled for candidate releases.": "El informe de uso estĂĄ siempre habilitado en las versiones candidatas.",
"Use HTTPS for GUI": "Usar HTTPS para la Interfaz GrĂĄfica de Usuario (GUI)",
"Version": "VersiĂłn",
"Versions Path": "Ruta de versiones",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Las versiones se eliminan automĂĄticamente si son mayores de la edad mĂĄxima o mayor que el nĂșmero de archivos permitidos en un intervalo.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "AtenciĂłn, esta direcciĂłn es un subdirectorio de un directorio existente \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Al agregar un nuevo dispositivo, tenga en cuenta que este dispositivo se debe agregar en el otro lado también.",
"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.": "Al agregar un nuevo repositorio, tenga en cuenta que la ID del repositorio se utiliza para conectar los repositorios entre dispositivos. Se distingue entre mayĂșsculas y minĂșsculas y debe ser exactamente igual en todos los dispositivos.",
"Yes": "SĂ­",
"You must keep at least one version.": "Debe mantener al menos una versiĂłn",
"Versions Path": "Ruta de las versiones",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Las versiones se borran automĂĄticamente si son mĂĄs antiguas que la edad mĂĄxima o exceden el nĂșmero de ficheros permitidos en un intervalo.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "ÂĄPeligro! Esta ruta es un directorio principal de la carpeta ya existente \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "'Peligro! Esta ruta es un subdirectorio de la carpeta ya existente \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Peligro! Esta ruta es un subdirectorio de una carpeta ya existente llamada \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Peligro, esta ruta es un subdirectorio de una carpeta ya existente llamada \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Cuando añada un nuevo dispositivo, tenga en cuenta que este debe añadirse también en el otro 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.": "Cuando añada una nueva carpeta, tenga en cuenta que su ID se usa para unir carpetas entre dispositivos. Son sensibles a las mayĂșsculas y deben coincidir exactamente entre todos los dispositivos.",
"Yes": "Si",
"You can also select one of these nearby devices:": "También puede seleccionar uno de estos dispositivos cercanos:",
"You can change your choice at any time in the Settings dialog.": "Puedes cambiar tu elecciĂłn en cualquier momento en el panel de Ajustes.",
"You can read more about the two release channels at the link below.": "Puedes leer mås sobre los dos método de publicación de versiones en el siguiente enlace.",
"You must keep at least one version.": "Debes mantener al menos una versiĂłn.",
"days": "dĂ­as",
"directories": "directorios",
"files": "archivos",
"full documentation": "documentaciĂłn completa",
"items": "Ă­tems",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} quiere compartir repositorio \"{{folder}}\".",
"full documentation": "DocumentaciĂłn completa",
"items": "Elementos",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} quiere compartir la carpeta \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} quiere compartir la carpeta \"{{folderlabel}}\" ({{folder}})."
}

View File

@@ -1,256 +1,287 @@
{
"A device with that ID is already added.": "Id horrekin beste talde bat gehitu da.",
"A negative number of days doesn't make sense.": "Hemen 0 edo zenbaki positiboa ,mesedez.",
"A new major version may not be compatible with previous versions.": "Aldaketa garrantzitsuak dituen bertsio berria beharbada ez da bateragarria izango bertsio zaharragoekin.",
"A device with that ID is already added.": "Id hori duen tresna bat jadanik bada",
"A negative number of days doesn't make sense.": "0 edo zenbaki positiboa onartzen da bakarrik",
"A new major version may not be compatible with previous versions.": "Aldaketa garrantzitsuak dituen bertsio berri bat ez da beharbada bateragarria izanen bertsio zaharragoekin.",
"API Key": "API giltza",
"About": "Egoki",
"Action": "Ekintza",
"About": "Honi buruz",
"Action": "Egintza",
"Actions": "Egintzak",
"Add": "Gaineratu",
"Add Device": "Gaineratu makina",
"Add Folder": "Gaineratu partekatze",
"Add Remote Device": "Gaineratu makinan izan",
"Add new folder?": "Gaineratu hau partekatze ?",
"Address": "Helbide",
"Addresses": "Helbidek",
"Advanced": "Aditu",
"Advanced Configuration": "Konfigurazio aintzinatua",
"Advanced settings": "Ezarpen aurreratuak",
"Add": "Gehitu",
"Add Device": "Tresna gehitu",
"Add Folder": "Karpeta gehitu",
"Add Remote Device": "Urrundikako tresna bat gehitu",
"Add devices from the introducer to our device list, for mutually shared folders.": "Gure tresna zerrendan tresnak gehitzea baimendu, partekatzeetan.",
"Add new folder?": "Karpeta berria gehitu?",
"Address": "Helbidea",
"Addresses": "Helbideak",
"Advanced": "Aitzinatua",
"Advanced Configuration": "Konfigurazio aitzinatua",
"Advanced settings": "Parametro aitzinatuak",
"All Data": "Datu guziak",
"Allow Anonymous Usage Reporting?": "Izenik gabeko erabiltze erreportak baimendu",
"Allow Anonymous Usage Reporting?": "Izenik gabeko erabiltze erreportak baimendu?",
"Allowed Networks": "Sare baimenduak",
"Alphabetic": "Alfabetikoa",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Kanpoko kontrolagailu batek bertsioak erabiltzen ditu. Fitxeroak errepertorio sinkronizatutik desagertaraztea berari doakio.",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Kanpoko kontrolagailu batek fitxategien bertsioak kudeatzen ditu. Fitxategiak kendu behar ditu errepertorio sinkronizatuan.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Kanpoko kontrolagailu batek fitxeroen bertsioak erabiltzen ditu. Fitxeroak errepertorio sinkronizatutik desagertaraztea berari doakio.",
"Anonymous Usage Reporting": "Izenik gabeko erabiltze erreportak",
"Any devices configured on an introducer device will be added to this device as well.": "Sarrarazle batean sartua izanen edozein tresna dena huntan ere izanen da.",
"Automatic upgrades": "Aktualizatze automatikoak",
"Be careful!": "Kasu!",
"Bugs": "Akatsek",
"CPU Utilization": "Prozesadore erabiltze",
"Changelog": "Bertsio historia",
"Any devices configured on an introducer device will be added to this device as well.": "Sarrarazle deitzen duzun tresna batean gehitua izanen den edozein tresna, zurean ere gehitua izanen da.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Eguneratze automatiko sistemak iraunkor bertsioen eta aitzineko bertsioen artean hautatzea proposatzen du",
"Automatic upgrades": "Eguneratze automatikoak",
"Be careful!": "Kasu emazu!",
"Bugs": "Akatsak",
"CPU Utilization": "Prozesadorearen erabiltzea",
"Changelog": "Bertsioen historia",
"Clean out after": "Garbi 
. epearen ondotik",
"Close": "Ezeztatu",
"Click to see discovery failures": "Klik egin hutsegiteak ikusteko",
"Close": "Hetsi",
"Command": "Kontrolagailua",
"Comment, when used at the start of a line": "Komentarioa, lerro baten hastean delarik",
"Compression": "Trinkotze",
"Configured": "Konfiguratua",
"Connection Error": "Konexio hutsa",
"Connection Type": "Konexion mota",
"Connection Type": "Konexio mota",
"Copied from elsewhere": "Beste nunbaitik kopiatua",
"Copied from original": "Kopiatua jatorrizkoatik",
"Copied from original": "Jatorrizkotik kopiatua",
"Copyright © 2014-2016 the following Contributors:": "Copyright 2014-2016, ekarle hauk:",
"Copyright © 2014-2017 the following Contributors:": "Copyright 2014-2017, ekarle hauk:",
"Danger!": "Lanjer !",
"Deleted": "Ezeztatu",
"Device": "Horrekin",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Makina \"{{name}}\" ({{device}} izan {{address}}) konektatu nahi du. Gaineratu berri makina ?",
"Device ID": "Makina ID",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Baztertze modelo batzuen sortzea, dagoen fitxategiari ordaina ezartzea: {{path}}",
"Danger!": "Lanjera !",
"Deleted": "Kendua",
"Device": "Tresna",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Tresna \"{{name}}\" ({{device}} {{address}} era) konektatu nahi du. Onhartzen duzu ?",
"Device ID": "Tresnaren ID-a",
"Device Identification": "Tresnaren identifikazioa",
"Device Name": "Makina izen",
"Devices": "Makinak",
"Disconnected": "Desloturik",
"Discovered": "Ziloa",
"Discovery": "Aurkikuntza",
"Documentation": "Dokumentazio",
"Download Rate": "Deskargatze emari",
"Downloaded": "Telekargatua",
"Downloading": "Deskargatze",
"Device Name": "Tresnaren izena",
"Devices": "Tresnak",
"Disconnected": "Deskonektatua",
"Discovered": "Agertua",
"Discovery": "Agertzea",
"Discovery Failures": "Agertze hutsegiteak",
"Documentation": "Dokumentazioa",
"Download Rate": "Deskargatzearen bit-tasa",
"Downloaded": "Deskargatua",
"Downloading": "Deskargatzea",
"Edit": "Aldatu",
"Edit Device": "Aldaketa tresna",
"Edit Folder": "Aldaketa partekatze",
"Editing": "Aldaketa",
"Enable NAT traversal": "Ahalbidetu NAT",
"Enable Relaying": "Ahalbidetu lekua hartu",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": " (\"tcp://ip:port\" ou \"tcp://nom:port\") zuzenbideak sar, krakotx batez separatuak edo bestenaz \"dynamic\", zuzenbidearen xekatze automatikoa aktibatzeko\nTu peux traduire nom et port dans la parenthĂšse, c'est pas des variables du programme, juste du texte explicatif",
"Enter ignore patterns, one per line.": "Ezkluzio filtroak sar, lerro batean bakar bat",
"Error": "Huts",
"External File Versioning": "Fitxero bertsioen kanpoko kudeaketa",
"Failed Items": "Fitxategiken huts",
"File Pull Order": "Fitxategiak irekitzeko agindua",
"File Versioning": "Artxiboak babesteko metodoa",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Aldaketa bilaketetan fitxero baimenen bitak ez dira kontuan hartuko. Fitxero FAT sistimetan erabilia.",
"Edit Device": "Tresna aldatzea",
"Edit Folder": "Partekatze aldatzea",
"Editing": "Aldaketak",
"Editing {%path%}.": "Muntatzea {{path}}",
"Enable NAT traversal": "NAT translazioa aktibatu",
"Enable Relaying": "Aldizkatzea posible",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Negatiboa ez den zenbaki bat hauta ezazu (\"2.35\" adib.) bai eta unitate bat. Disko osoaren ehuneko espazioa",
"Enter a non-privileged port number (1024 - 65535).": "Abantailatua ez den portu zenbalki bat sar ezazu (1024 - 65535)",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": " (\"tcp://ip:ataka\", \"tcp://izena:ataka\") zuzenbideak sar, krakotx batez separatuak edo bestenaz \"dynamic\", zuzenbidearen xekatze automatikoa aktibatzeko",
"Enter ignore patterns, one per line.": "Ezkluzio filtroak sar, lerro bakoitzean bat bakarrik.",
"Error": "Hutsa",
"External File Versioning": "Fitxategi bertsioen kanpoko kudeaketa",
"Failed Items": "Huts egin duten fitxategiak",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "IPv6 zerbitzariei buruzko konexioak huts eginen du, IPv6 konektibitaterik ez bada",
"File Pull Order": "Fitxategiak berreskuratzeko ordena",
"File Versioning": "Fitxategiak zaintzeko metodoa",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Aldaketa bilaketetan, fitxeroen baimen bitak ez dira kontuan hartuko. Fitxero FAT sistimetan erabilia.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Fitxategiak .stbersioak errepertorioan lekutuak dira, Syncthing-ek ordezkatzen edo kentzen dituelarik",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": ".stbersioak azpi karpetan lekutuko dira fitxeroak, Syncthing-ek aldatu edo ezeztatuko dituelarik. Beren helbide errelatiboak hor berean berriz sortuak izanen dira, behar balin bada",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": ".stbersioak azpi karpetan lekutuko eta ordu-markatuko dira fitxeroak, Syncthing-ek aldatu edo ezeztatuko dituelarik. Beren helbide errelatiboak hor berean berriz sortuak izanen dira, behar balin bada",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Beste tresnetan eginak izanen diren aldaketetatik zainduak izanen dira fitxeroak; haatik, tresna huntan egindako aldaketak besteeri hedatuak izanen dira",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Syncthing-ek aldatzen edo kentzen dituelarik, fitxeroak \".stbertsioak\" peko-errepertoriorat lekutuak dira, jatorrizkoaren berdin berdina den zuhaitz-formako batean",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": ".stbersioak azpi karpetan lekutuko eta ordu-markatuko dira fitxeroak, egitura errelatibo berdin batean, Syncthing-ek aldatu edo ezeztatuko dituelarik.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Beste tresnetan eginak izanen diren aldaketetatik zainduak izanen dira fitxeroak; haatik, tresna huntan egindako aldaketak besteeri hedatuak izanen dira.",
"Folder": "Partekatze",
"Folder ID": "Partekatze ID",
"Folder Label": "Partekatze izengoiti",
"Folder Path": "Partekatze bidexka",
"Folder ID": "ID partekatze",
"Folder Label": "Partekatzearen izena",
"Folder Path": "Partekatzearen sustrai bidea",
"Folder Type": "Partekatze mota",
"Folders": "Partekatzek",
"GUI": "Interfaze grafiko",
"GUI Authentication Password": "Interfaze grafiko pasahitz",
"GUI Authentication User": "Interfaze grafiko erabiltzaile",
"GUI Listen Addresses": "Interfaze grafiko helbide",
"Folders": "Partekatzeak",
"GUI": "Interfaze grafikoa",
"GUI Authentication Password": "Interfaze grafiko pasahitza",
"GUI Authentication User": "Interfaze grafiko erabiltzaile baimendua",
"GUI Listen Address": "Interfaze grafiko helbidea",
"GUI Listen Addresses": "Interfaze grafiko helbideak",
"GUI Theme": "Interfaze grafiko tema",
"Generate": "Sortu",
"Global Changes": "Global Changes",
"Global Discovery": "Aurkikuntza oso",
"Global Discovery Servers": "Aurkikuntza oso zerbitzarik",
"Global State": "Oso egoera",
"Help": "Aiuta",
"Home page": "Errezibitze",
"Ignore": "Baztertu",
"Ignore Patterns": "Bazterketak arauk",
"Ignore Permissions": "Baztertu baimenek",
"Incoming Rate Limit (KiB/s)": "Deskargatze emari gehieneko (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Langer !!!!",
"Introduced By": "Introduced By",
"Introducer": "Abiarazle",
"Global Changes": "Azken aldaketak",
"Global Discovery": "Aurkikuntza orokorra",
"Global Discovery Servers": "Orokor aurkikuntza zerbitzaria",
"Global State": "Egoera orokorra",
"Help": "Laguntza",
"Home page": "Harrera",
"Ignore": "Kontuan ez hartu",
"Ignore Patterns": "Baztertzeak",
"Ignore Permissions": "Baimenak kontuan ez hartu",
"Incoming Rate Limit (KiB/s)": "Deskargatze emari muga (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Behar ez den konfigurazio batek zuen partekatzetan makurrak egin ditzake eta Syncthing ezin erabilia utzi",
"Introduced By": "...k sartua",
"Introducer": "Tresna sarrarazlea",
"Inversion of the given condition (i.e. do not exclude)": "Emana izan den baldintza alderantziz eman (i.e ez baztertu)",
"Keep Versions": "Gorde bertsioak",
"Largest First": "Handienak lehenik",
"Last File Received": " Fitxategi azken eskuratu",
"Last Scan": "Azterketa azken",
"Last File Received": " Azkenik eskuratu fitxategia",
"Last Scan": "Azken azterketa",
"Last seen": "Azken agerraldia",
"Later": "Berantago",
"Latest Change": "Asken aldaketa",
"Latest Change": "Azken aldaketa",
"Learn more": "Gehiago jakiteko",
"Listeners": "Entzungailuak",
"Local Discovery": "Lekuko aurkikuntza",
"Local State": "Lekuko egoera",
"Local State (Total)": "Lekuko egoera (Oso)",
"Major Upgrade": "Nagusi eguneratu",
"Master": "Nagusi",
"Maximum Age": "Goren adin",
"Local State (Total)": "Lekuko egoera (Osoa)",
"Major Upgrade": "Eguneratze nagusia",
"Master": "Nagusia",
"Maximum Age": "Adin gehiena",
"Metadata Only": "Metadatuak bakarrik",
"Minimum Free Disk Space": "Diskoan leku libre gutxieneko",
"Move to top of queue": "Igurikatze zerrenda bururat lekuz alda",
"Multi level wildcard (matches multiple directory levels)": "Hein askorentzako jokerra (errepertorio eta azpi errepertorioeri dagokiona)",
"Minimum Free Disk Space": "Diskoan gutieneko leku libroa ",
"Move to top of queue": "Lerro bururat lekuz alda",
"Multi level wildcard (matches multiple directory levels)": "Hein anitzerako jokerra (errepertorio eta azpi errepertorioeri dagokiona)",
"Never": "Sekulan",
"New Device": "Berria makina",
"New Folder": "Berri partekatze",
"Newest First": "Gehien gertatu berri lehen",
"New Device": "Tresna berria",
"New Folder": "Partekatze berria",
"Newest First": "Berrienak lehenik",
"No": "Ez",
"No File Versioning": "Ez babestu",
"Normal": "Normal",
"No File Versioning": "Fitxategi bersioen kontrolik ez",
"No upgrades": "Eguneratzerik ez",
"Normal": "Normala",
"Notice": "Jakinaraztea",
"OK": "Ados",
"Off": "Desgaitu",
"Oldest First": "Gehien zahar lehen",
"Optional descriptive label for the folder. Can be different on each device.": "Partikatzearen izen hautuzkoa eta atsegina, zure gisa. Tresna bakotxean desberdina izaiten ahal da.",
"Options": "Hautuk",
"Oldest First": "Zaharrenak lehenik",
"Optional descriptive label for the folder. Can be different on each device.": "Partekatzearen izen hautuzkoa eta atsegina, zure gisa. Tresna bakotxean desberdina izaiten ahal da.",
"Options": "Hautuzkoak",
"Out of Sync": "Ez sinkronizatua",
"Out of Sync Items": "Ez sinkronizatu elementuak",
"Outgoing Rate Limit (KiB/s)": "Bidaltze emari gehieneko (KiB/s)",
"Outgoing Rate Limit (KiB/s)": "Bidaltze emari gehienekoa (KiB/s)",
"Override Changes": "Aldaketak desegin",
"Path": "Bidexka",
"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": "Bertako tresnaren karpetari buruzko bidea. Ez balin bada, asmatu beharko da bat. Vous pouvez entrer un chemin absolu (p.ex \"/home/moi/Sync/Exemple\") ou relatif Ă  celui du programme (p.ex \"..\\Partages\\Exemple\" - utile pour installation portable). Tildea (~, edo ~+Espazioa Windows XP+Azerty-n) erabil litzateke bide motz gisa",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Kopiak kontserbatzeko bidea (hutsa utzezazu, .stversioen karpetaren bide ohituan).",
"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": "Lekuko tresnaren partekatzeari buruzko bidea. Ez balitz, asmatu beharko da bat. Programarenari, baitezpadako bide bat sartzen ahal duzu (adibidez \"/home/ni/Sync/Etsenplua\") edo bestenaz bide errelatibo bat (adibidez \"..\\Partekatzeak\\Etsenplua\" - instalazio mugikor batentzat baliagarria). Tildea (~, edo ~+Espazioa Windows XP+Azerty-n) erabil litzateke laburbide gisa",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Kopiak kontserbatzeko bidea (hutsa utz ezazu, .steversioen ohizko bidearentzat, dosier partekatuan)",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Kopiak kontserbatzeko bidea (hutsa utz ezazu, .stversioen ohizko dosierarentzat, karpeta partekatuan)",
"Pause": "Pausa",
"Paused": "Geldirik",
"Pause All": "Geldi dena",
"Paused": "Gelditua",
"Please consult the release notes before performing a major upgrade.": "Aktualizatze garrantzitsu bat egin baino lehen, bertsioaren oharrak begira itzazu.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Konfigurazio leihoan asma itzazu erabiltzale izen bat eta sartzeko giltza bat",
"Please wait": "Oraino pazientzia pixka bat har ezazu",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Konfigurazio leihoan asma itzazu erabiltzale izen bat eta pasahitz bat",
"Please wait": "Pazientzia pixka bat, otoi",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Aurrebista",
"Preview Usage Report": "Erabiltze aurrebista",
"Quick guide to supported patterns": "Filtro ez onartuen txostena",
"RAM Utilization": "RAM erabiltze",
"Random": "Aleatorio",
"Reduced by ignore patterns": "(Mugatu baztertzek patroikez)",
"Preview Usage Report": "Erabiltze estatistika txostenaren aurrebista",
"Quick guide to supported patterns": "Eredu konpatibleen gidaliburuxka",
"RAM Utilization": "RAM aren erabiltzea",
"Random": "Aleatorioa",
"Reduced by ignore patterns": "Baztertze eredu batzuk mugatuak",
"Release Notes": "Bertsioen notak",
"Remote Devices": "Besteak makinak",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Azken zuzenketak eta funtzionalitateak edukitzen dituzte aitzin-bertsioek. Bi hilabete guziz egiten diren eguneratzeen berdinak dira.",
"Remote Devices": "Beste tresnak",
"Remove": "Kendu",
"Required identifier for the folder. Must be the same on all cluster devices.": "Partikatzearen erabilzaile izena. Diren tresna guzietan berdin berdina izan behar du",
"Rescan": "Berreskanea",
"Rescan All": "Berreskanea guzia",
"Rescan Interval": "Arte berreskanea",
"Restart": "Berriz abiatu",
"Required identifier for the folder. Must be the same on all cluster devices.": "Partekatzearen erabilzaile izena. Dauden tresna guzietan berdin berdina izan behar du",
"Rescan": "Berriz eskaneatu",
"Rescan All": "Dena berriz eskaneatu",
"Rescan Interval": "Berriz eskaneatzeko tartea",
"Restart": "Berriz piztu",
"Restart Needed": "Berriz piztea beharrezkoa",
"Restarting": "Berriz piztea martxan",
"Resume": "Berriz hasi",
"Resume": "Berriz hastea",
"Resume All": "Dena berriz hastea",
"Reused": "Berriz erabilia",
"Save": "Begiratu",
"Scan Time Remaining": "Gelditzen den denbora azterketa",
"Scanning": "Etengabeko azterketa",
"Select the devices to share this folder with.": "Honekin sinkronizatua:",
"Select the folders to share with this device.": "Tresna hunek erabiltzen dituen banaketak hauta",
"Send & Receive": "Igorri & Artu",
"Send Only": "Bakarrik igorri",
"Settings": "Egokitzek",
"Share": "Banatu",
"Share Folder": "Banatu",
"Share Folders With Device": "Partekatu makinakekin",
"Share With Devices": "Partekatuekin makinak",
"Share this folder?": "Banatze hau onartzen duzu?",
"Shared With": "Partekatuekin",
"Show ID": "Erakutsi ene ID",
"Show QR": "Erakutsi QR",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Tresnaren ID-aren ordez erakutsia, taldearen egoeran. Beste tresneri erakutsia izanen da, izen erabilgarria bezala",
"Save": "Grabatu",
"Scan Time Remaining": "Gelditzen den azterketa denbora",
"Scanning": "Azterketa martxan",
"Select the devices to share this folder with.": " Tresnak hauta itzazu partekatze honekin sinkronizatzeko ",
"Select the folders to share with this device.": "Tresna honek erabiltzen dituen partekatzeak hauta itzazu",
"Send & Receive": "Igorri eta errezibitu",
"Send Only": "Igorrri bakarrik",
"Settings": "Konfigurazioa",
"Share": "Partekatu",
"Share Folder": "Partekatzea",
"Share Folders With Device": "Tresnarekin partekatzeak",
"Share With Devices": "Tresnekin partekatu",
"Share this folder?": "Partekatze hau onartzen duzu?",
"Shared With": "...ekin partekatua",
"Show ID": "Erakutsi ene ID-a",
"Show QR": "Erakutsi QR-a",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Tresnaren ID-aren ordez erakutsia, taldearen egoeran. Beste tresneri erakutsia izanen da, izen erabilgarri bat bezala",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Tresnaren ID-aren ordez erakutsia, taldearen egoeran. Hutsa utzia balin bada, urrun den tresnak proposatu izenarekin aktualizatua izanen da",
"Shutdown": "Utzi",
"Shutdown": "Geldi",
"Shutdown Complete": "Gelditua!",
"Simple File Versioning": "Bertsioen segitze sinplifikatuak",
"Simple File Versioning": "Bertsioen segitze sinplifikatua",
"Single level wildcard (matches within a directory only)": "Hein bakar bateko jokerra (karpetaren barnean bakarrik dagokiona)",
"Smallest First": "Tipienak lehenik",
"Source Code": "Iturri kode",
"Staggered File Versioning": "Bertsio eskaleratuak",
"Start Browser": "Web nabigatzailea pitz",
"Statistics": "Statistikak",
"Smallest First": "Ttipienak lehenik",
"Source Code": "Iturri kodea",
"Stable releases and release candidates": "iraunkor eta aintzin-bertsioak",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Iraunkor bertsioak bi astez (nonbait han) gibelatuak dira. Bitartean, aintzin-bertsio gisa probatuak izanen dira.",
"Stable releases only": "Iraunkor bertsioak bakarrik",
"Staggered File Versioning": "Bertsio mailakatuak",
"Start Browser": "Web nabigatzailea piztu",
"Statistics": "Estatistikak",
"Stopped": "Gelditua!",
"Support": "Foroa",
"Sync Protocol Listen Addresses": "Sinkronizatu protokoloaren entzun zuzenbideak",
"Syncing": "Sinkronizazio joaira",
"Syncing": "Sinkronizazioa martxan",
"Syncthing has been shut down.": "Syncthing gelditua izan da",
"Syncthing includes the following software or portions thereof:": "Syncthing-ek programa hauk integratzen ditu (edo programa hauetatik datozten elementuak):",
"Syncthing is restarting.": "Syncthing berriz pizten ari",
"Syncthing is upgrading.": "Syncthing aktualizatzen ari da",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Iduri luke Syncthing gelditua dela, edo bestenaz arrazo bat bada interneten konekzioarekin. Berriz entsea zaitez
",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Iduri luke Syncthing arazo bat duela zure eskaeraren tratatzeko. Otoi, horria freska ezazu edo bestenaz Syncthing berriz pitz arazoak segitzen badu.",
"The Syncthing admin interface is configured to allow remote access without a password.": "Syncthing administrazio interfazea pentsatua da urrundikako irisbideak sekretu hitz gabe onartzeko !!!",
"The aggregated statistics are publicly available at the URL below.": "Estadistikak zuzen bide honetan publikoki ikusgarri dira",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Konfigurazioa grabatua izan da bainan ez aktibatua. Syncthing berriz piztu behar da konfigurazio berriaren berriz aktibatzeko.",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Iduri luke Syncthing-ek arazo bat duela zure eskaera tratatzeko. Otoi, orrialdea freska ezazu edo bestenaz, arazoak segitzen badu, Syncthing berriz pitz ezazu .",
"The Syncthing admin interface is configured to allow remote access without a password.": "Syncthing-en administrazio interfazea pentsatua da urrundikako helbideak pasahitzik gabe onartzeko !",
"The aggregated statistics are publicly available at the URL below.": "Estadistikak zuzen bide honetan publikoki ikusgarriak dira",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "Konfigurazioa grabatua izan da bainan ez aktibatua. Syncthing berriz piztu behar da konfigurazio berria berriz aktibatzeko.",
"The device ID cannot be blank.": "Tresnaren ID-a ez da hutsa izaiten ahal.",
"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).": "Tresnaren ID-a atxemaiten ahal da \"Ekintzak > Tresna urrunduaren \"ID-a erakuts\" menuan. Espazio eta gioiak ez dira beharrezkoak.",
"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.": "Erabileraren zifratu txostena egun guziz igorria da. Erabili diren plataformak, banaketeen neurriak eta aplikazioaren bertsioen zerendatzeko balio du.",
"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.": "Sartu den tresnaren ID-ak iduri du ez duela balio. 52 edo 56-ko ezaugarriko kadena baten itxura behar luke, hizkiak, zifrak eta baita ere tarte edo gioiez egina",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "Agingailu lerroaren lehen parametroa banatua den karpetaren bidea da, eta bigarrena karpetan den errelatibo bidea",
"The folder ID cannot be blank.": "banatzearen ID-a ez da hutsa izaiten ahal",
"The folder ID must be unique.": "Banatzearen ID-ak bakarra izan behar du",
"The folder path cannot be blank.": "Karpetari buruzko bidea ez da hutsa izaiten ahal",
"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.": "Hunako tarteak erabiliak dira: oren bateko denboraldian bertsio bat kontserbatua da 30 segundu guziz. Egun batekoan,bertsio bat egunero. Handik harat, adinaren mugetan egonez, bertsio bat astero.",
"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).": "Sartu behar den tresnaren ID-a atxemaiten ahal da menuan \"Ekintzak > ID-a erakuts\" (tresna urrunduarena). Espazio eta gioiak ez dira beharrezkoak.",
"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.": "Erabileraren zifratu txostena egun guziz igorria da. Erabili diren plataformak, partekatzeen neurriak eta aplikazioaren bertsioen zerendatzeko balio du. Datu orokorrak aldatzen balin badira, mezu honen bidez ontzat emaitea eskatua izanen zaizu.\nErabiltzearen zifratu txostena egun guziz igorria da. Balio du erabiliak izan diren plataformak, partekatzeen izaria eta aplikazioaren bertsioak zerrendatzeko. Datu orokorrek aldatuak izan behar balute, mezu honen bidez ontzat emaitea eskatua izanen zaizu. Zure erabakia aldatzen ahal duzu Ekintzak/Konfigurazioa-ren bidez, baita igortzeen maiztasuna Ekintzak/ aitzinatua/Opzioak -en bidez.",
"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.": "Sartu den tresnaren ID-ak iduri du ez duela balio. 52 edo 56-ko ezaugarriko kadena baten itxura behar luke, hizkiak, zifrak eta baita ere tarte edo gioiez egina.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "Agingailu lerroaren lehen parametroa partekatzearen bidea da, eta bigarrena partekatzean den bide errelatiboa.",
"The folder ID cannot be blank.": "Partekatzearen ID-a ez da hutsa izaiten ahal",
"The folder ID must be unique.": "Partekatzearen ID-a bakarra izan behar da",
"The folder path cannot be blank.": "Partekatzeari buruzko bidea ez da hutsa izaiten ahal",
"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.": "Hunako tarteak erabiliak dira: lehen orduan bertsio bat kontserbatua da 30 segundu guziz. Lehen egunean, bertsio bat ordu bakoitz, lehen 30 egunetan bertsio bat egunero. Handik harat, adinaren mugetan egonez, bertsio bat astero.",
"The following items could not be synchronized.": "Ondoko fitxero hauk ez dira sinkronizatuak ahal izan",
"The maximum age must be a number and cannot be blank.": "Gehieneko adinak zenbaki bat behar du izan eta ez da hutsa izaiten ahal.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Bertsio baten kontserbatzeko epe haundiena (egunez behar du izan. Jar ezazu zerotan bertsioak betirako atxikitzeko)",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "Diskoaren ehuneko espazioa hutsak zenbaki positibo bat behar du izan, 0 eta 100-en artekoa (100 barne)",
"The number of days must be a number and cannot be blank.": "Egunen kopuruak numerikoa izan behar du eta ez da hutsa izaiten ahal",
"The number of days to keep files in the trash can. Zero means forever.": "Zikin ontziko elgar hizketen kontserbatzeko egun kopurua. Beti 0 erran nahi du.",
"The number of old versions to keep, per file.": "Atxikitzeko diren lehenagoko bertsio kopurua,fitxero bakotxarentzat",
"The number of versions must be a number and cannot be blank.": "Bertsio kopuruak numerikoa behar du izan eta ez da hutsa izaiten ahal",
"The number of days to keep files in the trash can. Zero means forever.": "Zikin ontzian elgar hizketak kontserbatzeko egun kopurua. Zerok \"betirako\" erran nahi du.",
"The number of old versions to keep, per file.": "Atxikitzeko diren lehenagoko bertsioen kopurua, fitxero bakoitzarentzat",
"The number of versions must be a number and cannot be blank.": "Bertsioen kopuruak numerikoa behar du izan eta ez da hutsa izaiten ahal",
"The path cannot be blank.": "Bidea ez da hutsa izaiten ahal",
"The rate limit must be a non-negative number (0: no limit)": "Ixuriaren neurria ez da negatiboa izaiten ahal (0 = mugarik gabekoa)",
"The rescan interval must be a non-negative number of seconds.": "Ikerketaren tartea ez da segundu kopuru negatiboa izaiten ahal",
"They are retried automatically and will be synced when the error is resolved.": "Akatsa zuzendua izanen delarik, automatikoki berriz entseatuak et sinkronizatuak izanen dira",
"This Device": "Makina hau",
"This can easily give hackers access to read and change any files on your computer.": "Hunek errexki irakurtzen eta aldatzen uzten ahal du zure ordenagailuko edozein fitxero, nahiz eta sartu denak ez haizu!",
"The rate limit must be a non-negative number (0: no limit)": "Ixuriaren emaria ez da negatiboa izaiten ahal (0 = mugarik gabekoa)",
"The rescan interval must be a non-negative number of seconds.": "Ikerketaren tartea ez da segundo kopuru negatiboa izaiten ahal",
"They are retried automatically and will be synced when the error is resolved.": "Errorea zuzendua izanen delarik, automatikoki berriz entseatuak et sinkronizatuak izanen dira",
"This Device": "Tresna hau",
"This can easily give hackers access to read and change any files on your computer.": "Hunek errexki irakurtzen eta aldatzen uzten ahal du zure ordenagailuko edozein fitxero, nahiz eta sartu denak ez haizu izan!",
"This is a major version upgrade.": "Aktualizatze garrantzitsu bat da",
"Time": "Denbora",
"This setting controls the free space required on the home (i.e., index database) disk.": "Behar den espazio kontrolatzen du egokitze honek, zure erabiltzale partekatzea geritzatzen duen diskoan (hori da, indexazio datu-basean)",
"Time": "Ordua",
"Trash Can File Versioning": "Zakarrontzia",
"Type": "Mota",
"Unknown": "Ez ezaguna",
"Unshared": "Partekatu ez den",
"Unknown": "Ezezaguna",
"Unshared": "Partekatua ez dena",
"Unused": "Ez baliatua",
"Up to Date": "Egun",
"Updated": "Berritu",
"Up to Date": "Eguneratua",
"Updated": "Berritua",
"Upgrade": "Aktualizatu",
"Upgrade To {%version%}": "Egunetaratzea {{version}}-i buruz",
"Upgrade To {%version%}": "Egunetaratu {{version}}-ari buruz",
"Upgrading": "Syncthing-en egunetaratzea",
"Upload Rate": "Bidaltze emari",
"Uptime": "Denbora ibiltze",
"Use HTTPS for GUI": "HTTPS-a erabil GUI-arentzat",
"Version": "Bertsio",
"Versions Path": "Bertsioen egon tokia",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Bertsioak automatikoki ezeztatuak izanen dira, kontserbatzeko iraupen denbora pasatua badute edo bitartean onartua den kopurua gainditua balin bada",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Kasu emazu, \"{{otherFolder}}\" banaketa azpi-karpetaren bidea da. Arazoak emaiten ahal ditu, fitxero batzuen ezeztatze edo duplikatzeak batez ere.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Kasu emazu, \"{{otherFolderLabel}}\" ({{otherFolder}}) banaketa azpi-karpetaren bidea da. Arazoak emaiten ahal ditu, fitxero batzuen ezeztatze edo duplikatzeak batez ere.",
"Upload Rate": "Igortze emaria",
"Uptime": "Erabiltze denbora",
"Usage reporting is always enabled for candidate releases.": "Erabiltze estatiskitak aintzin-bertsioetan beti igorriak dira",
"Use HTTPS for GUI": "HTTPS-a erabil ezazu GUI-arentzat",
"Version": "Bertsioa",
"Versions Path": "Bertsioen kokalekua",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Bertsioak automatikoki ezeztatuak izanen dira, kontserbatzeko iraupen denbora pasatua badute edo bitartean onartua den kopurua (fitxategi bakoitzean) gainditua balin bada",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Kasu, bide hau dagoen partekatze baten karpeta ahaidea da (adibidez, \"{{otherFolder}}\"). Segitzen baduzu, azpi-karpeta berri bat sortu behar duzu, bestenaz arazoak sortzen ahal dira, fitxategi kentzeak edo doblatzeak.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Kasu, bide hau dagoen partekatze baten karpeta ahaidea da (adibidez, \"{{otherFolderLabel}}\" ({{otherFolder}}). ",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Kasu, bide hau \"{{otherFolder}}\" partekatzearen azpi-karpeta da. Arazoak emaiten ahal ditu, fitxategi kentzeak edo doblatzeak, adibidez.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Kasu, bide hau \"{{otherFolderLabel}}\" ({{otherFolder}}) partekatzearen azpi-karpeta da. Arazoak emaiten ahal ditu, fitxategi kentzeak edo doblatzeak, adibidez.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Tresna bat gehitzen duzularik, gogoan atxik ezazu zurea bestaldean gehitu behar dela ere",
"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.": "Tresna bat gehitzen delarik, gogoan atxik ezazu bere IDa erabilia dela errepertorioak lotzeko tresnen bitartez. ID-a hautskorra da eta banatze huntan parte hartzen duten tresna guzietan berdina izanen da",
"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.": "Partekatze bat gehitzen delarik, gogoan atxik ezazu bere IDa erabilia dela errepertorioak lotzeko tresnen bitartez. ID-a hautskorra da eta partekatze hontan parte hartzen duten tresna guzietan berdina izan behar du.",
"Yes": "Bai",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "Zure hautua aldatzen ahal duzu \"Konfigurazio\" leihatilan",
"You can read more about the two release channels at the link below.": "Bi banaketa kanal hauen bidez gehiago jakin dezakezu, lokarri honen bidez ",
"You must keep at least one version.": "Bertsio bat bederen behar duzu atxiki",
"days": "Egunak",
"directories": "karpetak",
"files": "fitxategik",
"directories": "Karpetak",
"files": "Fitxategiak",
"full documentation": "Dokumentazio osoa",
"items": "Elementuak",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} banaketa \"{{folder}}\" gomitatzen zaitu.",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} \"{{folderlabel}}\" ({{folder}}) gomitatzen zaitu."
"{%device%} wants to share folder \"{%folder%}\".": "{{device}}k \"{{folder}}\" partekatze hontan gomitatzen zaitu.",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}}k \"{{folderlabel}}\" ({{folder}}) hontan gomitatzen zaitu."
}

View File

@@ -10,6 +10,7 @@
"Add Device": "LisÀÀ laite",
"Add Folder": "LisÀÀ kansio",
"Add Remote Device": "LisÀÀ laite",
"Add devices from the introducer to our device list, for mutually shared folders.": "Add devices from the introducer to our device list, for mutually shared folders.",
"Add new folder?": "LisÀÀ uusi kansio?",
"Address": "Osoite",
"Addresses": "Osoitteet",
@@ -18,16 +19,20 @@
"Advanced settings": "Kehittyneet asetukset",
"All Data": "Kaikki data",
"Allow Anonymous Usage Reporting?": "Salli anonyymi kÀyttöraportointi?",
"Allowed Networks": "Allowed Networks",
"Alphabetic": "Aakkosellinen",
"An external command handles the versioning. It has to remove the file from the shared folder.": "An external command handles the versioning. It has to remove the file from the shared folder.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Ulkoinen komento hallitsee versionnin. Sen tÀytyy poistaa tiedosto synkronoidusta kansiosta.",
"Anonymous Usage Reporting": "Anonyymi kÀyttöraportointi",
"Any devices configured on an introducer device will be added to this device as well.": "Kaikki esittelijÀksi mÀÀritetyn laitteen tuntemat laitteet lisÀtÀÀn myös tÀhÀn laitteeseen.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Automatic upgrade now offers the choice between stable releases and release candidates.",
"Automatic upgrades": "Automaattiset pÀivitykset",
"Be careful!": "Ole varovainen!",
"Bugs": "Bugit",
"CPU Utilization": "CPU:n kÀyttö",
"Changelog": "Muutoshistoria",
"Clean out after": "Puhdista seuraavan ajan kuluttua",
"Click to see discovery failures": "Click to see discovery failures",
"Close": "Sulje",
"Command": "Komento",
"Comment, when used at the start of a line": "Kommentti, kÀytettÀessÀ rivin alussa",
@@ -39,6 +44,7 @@
"Copied from original": "Kopioitu alkuperÀisestÀ lÀhteestÀ",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 seuraavat avustajat",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Creating ignore patterns, overwriting an existing file at {{path}}.",
"Danger!": "Vaara!",
"Deleted": "Poistettu",
"Device": "Laite",
@@ -50,6 +56,7 @@
"Disconnected": "Yhteys katkaistu",
"Discovered": "Löydetty",
"Discovery": "EtsintÀ",
"Discovery Failures": "Discovery Failures",
"Documentation": "Dokumentaatio",
"Download Rate": "LatausmÀÀrÀ",
"Downloaded": "Ladattu",
@@ -58,17 +65,23 @@
"Edit Device": "Muokkaa laitetta",
"Edit Folder": "Muokkaa kansiota",
"Editing": "Muokkaus",
"Editing {%path%}.": "Editing {{path}}.",
"Enable NAT traversal": "Aktivoi osoitteenmuunnoksen kierto",
"Enable Relaying": "Aktivoi yhteyden vÀlitys",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "SyötÀ osoitteet pilkuilla erotettuina (\"tcp://ip:portti, tcp://nimi:portti\") tai \"dynamic\" kÀyttÀÀksesi osoitteen automaattista selvitystÀ.",
"Enter ignore patterns, one per line.": "SyötÀ ohituslausekkeet, yksi riviÀ kohden.",
"Error": "Virhe",
"External File Versioning": "Ulkoinen tiedostoversionti",
"Failed Items": "EpÀonnistuneet kohteet",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.",
"File Pull Order": "Tiedostojen noutojÀrjestys",
"File Versioning": "Tiedostoversiointi",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Tiedostojen oikeusbitit jÀtetÀÀn huomiotta etsittÀessÀ muutoksia. KÀytÀ FAT-tiedostojÀrjestelmissÀ.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Files are moved to .stversions directory when replaced or deleted by Syncthing.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Kun Syncthing poistaa tai korvaa tiedostoja, ne siirretÀÀn .stversions-hakemistoon.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Tiedostot siirretÀÀn pÀivÀmÀÀrÀllÀ merkityiksi versioiksi .stversions-kansioon, kun Syncthing korvaa tai poistaa ne.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Tiedostot on suojattu muilla laitteilla tehdyiltÀ muutoksilta, mutta tÀllÀ laitteella tehdyt muutokset lÀhetetÀÀn muuhun ryhmÀÀn.",
"Folder": "Kansio",
@@ -80,7 +93,9 @@
"GUI": "GUI",
"GUI Authentication Password": "GUI:n salasana",
"GUI Authentication User": "GUI:n kÀyttÀjÀtunnus",
"GUI Listen Address": "GUI Listen Address",
"GUI Listen Addresses": "GUI:n kuunteluosoitteet",
"GUI Theme": "GUI Theme",
"Generate": "Generoi",
"Global Changes": "Global Changes",
"Global Discovery": "Globaali etsintÀ",
@@ -103,6 +118,7 @@
"Last seen": "NĂ€hty viimeksi",
"Later": "Myöhemmin",
"Latest Change": "Viimeisin muutos",
"Learn more": "Learn more",
"Listeners": "Kuuntelijat",
"Local Discovery": "Paikallinen etsintÀ",
"Local State": "Paikallinen tila",
@@ -120,6 +136,7 @@
"Newest First": "Uusin ensin",
"No": "Ei",
"No File Versioning": "Ei tiedostoversiointia",
"No upgrades": "Ei pÀivityksiÀ",
"Normal": "Normaali kansio",
"Notice": "Huomautus",
"OK": "OK",
@@ -133,12 +150,16 @@
"Override Changes": "Ohita muutokset",
"Path": "Path",
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Polku kansioon paikallisella tietokoneella. Kansio luodaan, ellei sitÀ ole olemassa. Tilde-merkkiÀ (~) voidaan kÀyttÀÀ oikotienÀ polulle",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Polku jonne versiot tullaan tallentamaan (jÀtÀ tyhjÀksi oletusvalintaa .stversions varten).",
"Pause": "KeskeytÀ",
"Pause All": "Pause All",
"Paused": "Keskeytetty",
"Please consult the release notes before performing a major upgrade.": "Tutustu julkaisutietoihin ennen kuin teet pÀÀversion pÀivityksen.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Ole hyvÀ ja aseta kÀyttÀjÀtunnus ja salasana kÀyttöliittymÀÀ varten asetusvalikossa.",
"Please wait": "Ole hyvÀ ja odota",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Esikatselu",
"Preview Usage Report": "Esikatsele kÀyttöraportti",
"Quick guide to supported patterns": "Tuettujen lausekkeiden pikaohje",
@@ -146,6 +167,7 @@
"Random": "Satunnainen",
"Reduced by ignore patterns": "VĂ€hennetty ohituslausekkeiden perusteella",
"Release Notes": "Julkaisutiedot",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.",
"Remote Devices": "Laitteet",
"Remove": "Poista",
"Required identifier for the folder. Must be the same on all cluster devices.": "Pakollinen tunniste kansiolle, jonka tÀytyy olla sama kaikilla laitteilla.",
@@ -156,6 +178,7 @@
"Restart Needed": "UudelleenkÀynnistys tarvitaan",
"Restarting": "KÀynnistetÀÀn uudelleen",
"Resume": "Jatka",
"Resume All": "Resume All",
"Reused": "UudelleenkÀytetty",
"Save": "Tallenna",
"Scan Time Remaining": "Skannausaikaa jÀljellÀ",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Yksitasoinen jokerimerkki (vaikuttaa vain kyseisen kansion sisÀllÀ)",
"Smallest First": "Pienin ensin",
"Source Code": "LĂ€hdekoodi",
"Stable releases and release candidates": "Vakaat julkaisut ja julkaisuehdokkaat",
"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": "Vain vakaat julkaisut",
"Staggered File Versioning": "Porrastettu tiedostoversiointi",
"Start Browser": "KÀynnistÀ selain",
"Statistics": "Tilastot",
@@ -221,6 +247,7 @@
"This Device": "TÀmÀ laite",
"This can easily give hackers access to read and change any files on your computer.": "TÀmÀ voi helposti sallia vihamielisille tahoille pÀÀsyn lukea ja muokata kaikkia tiedostojasi",
"This is a major version upgrade.": "TÀmÀ on pÀÀversion pÀivitys.",
"This setting controls the free space required on the home (i.e., index database) disk.": "This setting controls the free space required on the home (i.e., index database) disk.",
"Time": "Aika",
"Trash Can File Versioning": "Roskakorin tiedostoversiointi",
"Type": "Tyyppi",
@@ -234,6 +261,7 @@
"Upgrading": "PÀivitetÀÀn",
"Upload Rate": "LÀhetysmÀÀrÀ",
"Uptime": "PÀÀllÀoloaika",
"Usage reporting is always enabled for candidate releases.": "Usage reporting is always enabled for candidate releases.",
"Use HTTPS for GUI": "KÀytÀ HTTPS:ÀÀ GUI:n kanssa",
"Version": "Versio",
"Versions Path": "Versioiden polku",
@@ -245,6 +273,9 @@
"When adding a new device, keep in mind that this device must be added on the other side too.": "LisÀttÀessÀ laitetta, muista ettÀ tÀmÀ laite tulee myös lisÀtÀ toiseen laitteeseen.",
"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.": "LisÀttÀessÀ uutta kansiota, muista ettÀ kansion ID:tÀ kÀytetÀÀn solmimaan kansiot yhteen laitteiden vÀlillÀ. Ne ovat riippuvaisia kirjankoosta ja niiden tulee tÀsmÀtÀ kaikkien laitteiden vÀlillÀ.",
"Yes": "KyllÀ",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "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 can read more about the two release channels at the link below.",
"You must keep at least one version.": "Sinun tulee sÀilyttÀÀ ainakin yksi versio.",
"days": "pÀivÀÀ",
"directories": "kansiot",

View File

@@ -10,6 +10,7 @@
"Add Device": "Ajouter l'appareil",
"Add Folder": "Ajouter un partage",
"Add Remote Device": "Ajouter un appareil",
"Add devices from the introducer to our device list, for mutually shared folders.": "Lui permettre d'ajouter et enlever des membres à toutes mes listes de membres de partages dont il fait partie (ceci permet de créer toutes les liaisons point à point possibles en complétant mes listes par les siennes, meilleur débit de réception par cumul des débits d'envoi, indépendance vis à vis de l'introducteur, etc).",
"Add new folder?": "Ajouter ce partage ?",
"Address": "Adresse",
"Addresses": "Adresses",
@@ -18,16 +19,20 @@
"Advanced settings": "ParamÚtres avancés",
"All Data": "Toutes les données",
"Allow Anonymous Usage Reporting?": "Autoriser l'envoi de statistiques d'utilisation anonymisées ?",
"Allowed Networks": "Réseaux autorisés",
"Alphabetic": "Alphabétique",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Une commande externe gÚre les versions de fichiers. Il lui incombe de supprimer les fichiers dans le répertoire synchronisé.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Une commande externe gÚre les versions de fichiers. Il lui incombe de supprimer les fichiers dans le répertoire synchronisé.",
"Anonymous Usage Reporting": "Rapport anonyme de statistiques d'utilisation",
"Any devices configured on an introducer device will be added to this device as well.": "Tout appareil ajouté sur un appareil introducteur sera aussi ajouté sur votre propre appareil.",
"Any devices configured on an introducer device will be added to this device as well.": "Lui permettre d'ajouter et enlever des membres à toutes mes listes de membres de partages dont il fait partie (ceci permet de créer toutes les liaisons point à point possibles en complétant mes listes par les siennes, meilleur débit de réception par cumul des débits d'envoi, indépendance vis à vis de l'introducteur, etc).",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Le systÚme de mise à jour automatique propose le choix entre versions stables et versions préliminaires.",
"Automatic upgrades": "Mises Ă  jour automatiques",
"Be careful!": "Faites attention !",
"Bugs": "Bugs",
"CPU Utilization": "Utilisation du CPU",
"Changelog": "Historique des changements",
"Changelog": "Historique des versions",
"Clean out after": "Purger aprĂšs :",
"Click to see discovery failures": "Voir les échecs de découverte",
"Close": "Fermer",
"Command": "Commande",
"Comment, when used at the start of a line": "Commentaire lorsque utilisé en début de ligne",
@@ -39,6 +44,7 @@
"Copied from original": "Copié depuis l'original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016, les contributeurs suivants:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017, les contributeurs suivants :",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Création de masques d'exclusion, remplacement du fichier existant : {{path}}.",
"Danger!": "Attention !",
"Deleted": "Supprimé",
"Device": "Appareil",
@@ -50,6 +56,7 @@
"Disconnected": "Déconnecté",
"Discovered": "Découvert",
"Discovery": "Découverte",
"Discovery Failures": "Échecs de dĂ©couverte",
"Documentation": "Documentation",
"Download Rate": "Débit de réception",
"Downloaded": "Reçu",
@@ -58,18 +65,24 @@
"Edit Device": "Modifier l'appareil",
"Edit Folder": "Modifier le partage",
"Editing": "Modifications",
"Editing {%path%}.": "Modification de {{path}}.",
"Enable NAT traversal": "Activer transfert d'adresses NAT",
"Enable Relaying": "Activer le relayage",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Nombre positif (p.ex, \"2.35\") et unité. Pourcentage de l'espace disque total.",
"Enter a non-privileged port number (1024 - 65535).": "Enter a non-privileged port number (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Entrer les adresses (\"tcp://ip:port\" ou \"tcp://hÎte:port\") séparées par une virgule, ou \"dynamic\" afin d'activer la recherche automatique de l'adresse.",
"Enter ignore patterns, one per line.": "Entrer les masques d'exclusion, un par ligne.",
"Error": "Erreur",
"External File Versioning": "Gestion externe des versions de fichiers",
"Failed Items": "ÉlĂ©ments en Ă©chec",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "La connexion aux serveurs en IPv6 va échouer s'il n'y a pas de connectivité IPv6.",
"File Pull Order": "Ordre de récupération de fichier",
"File Versioning": "Méthode de préservation des fichiers",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Les bits de permission de fichier sont ignorés lors de la recherche de changements. Utilisé sur les systÚmes de fichiers FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Les fichiers sont déplacés dans le sous-répertoire .stversions quand ils sont remplacés ou supprimés par Syncthing. Leurs chemins d'accÚs relatifs y sont recréés si besoin.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Les fichiers sont déplacés dans le sous-répertoire .stversions quand ils sont remplacés ou supprimés par Syncthing. Leurs chemins d'accÚs relatifs y sont recréés si besoin.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Les fichiers sont déplacés, avec horodatage, dans le répertoire .stversions quand ils sont remplacés ou supprimés par Syncthing. Leurs chemins d'accÚs relatifs y sont recréés si besoin.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Quand ils sont remplacés ou supprimés par Syncthing, les fichiers sont déplacés et horodatés vers le sous-répertoire .stversions dans une arborescence relative identique à celle de l'original.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Quand ils sont remplacés ou supprimés par Syncthing, les fichiers sont déplacés et horodatés vers le sous-répertoire .stversions dans une arborescence relative identique à celle de l'original.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Les fichiers sont protégés des changements réalisés sur les autres appareils, mais les changements réalisés sur celui-ci seront transférés aux autres.",
"Folder": "Partage",
"Folder ID": "ID du partage",
@@ -80,7 +93,9 @@
"GUI": "Interface graphique",
"GUI Authentication Password": "Mot de passe d'authentification GUI",
"GUI Authentication User": "Utilisateur autorisé GUI",
"GUI Listen Address": "GUI Listen Address",
"GUI Listen Addresses": "Adresses de l'interface (GUI)",
"GUI Theme": "ThĂšme graphique",
"Generate": "Générer",
"Global Changes": "Derniers changements",
"Global Discovery": "Découverte globale",
@@ -103,6 +118,7 @@
"Last seen": "DerniĂšre apparition",
"Later": "Plus tard",
"Latest Change": "Dernier changement",
"Learn more": "En savoir plus",
"Listeners": "SystÚmes à l'écoute",
"Local Discovery": "Découverte locale",
"Local State": "État local",
@@ -120,6 +136,7 @@
"Newest First": "Les plus récents en premier",
"No": "Non",
"No File Versioning": "Pas de préservation",
"No upgrades": "Pas de mises Ă  jour",
"Normal": "Normal",
"Notice": "Notification",
"OK": "OK",
@@ -132,30 +149,36 @@
"Outgoing Rate Limit (KiB/s)": "Limite du débit d'envoi (Kio/s)",
"Override Changes": "Écraser les changements",
"Path": "Chemin",
"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": "Chemin vers le rĂ©pertoire dans l'appareil local. Il sera créé s'il n'existe pas. Vous pouvez entrer un chemin absolu (p.ex \"/home/moi/Sync/Exemple\") ou relatif Ă  celui du programme (p.ex \"..\\Partages\\Exemple\" - utile pour installation portable). Le caractĂšre tilde (~, ou ~+Espace sous Windows XP+Azerty) peut ĂȘtre utilisĂ© comme raccourci vers",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Chemin oĂč les versions doivent ĂȘtre conservĂ©es (laisser vide pour le chemin par dĂ©faut de .stversions dans le rĂ©pertoire)",
"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": "Chemin vers le rĂ©pertoire Ă  partager dans l'appareil local. Il sera créé s'il n'existe pas. Vous pouvez entrer un chemin absolu (p.ex \"/home/moi/Sync/Exemple\") ou relatif Ă  celui du programme (p.ex \"..\\Partages\\Exemple\" - utile pour installation portable). Le caractĂšre tilde (~, ou ~+Espace sous Windows XP+Azerty) peut ĂȘtre utilisĂ© comme raccourci vers",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Chemin oĂč les versions doivent ĂȘtre conservĂ©es (laisser vide pour le chemin par dĂ©faut de .stversions dans le rĂ©pertoire partagĂ©).\nChemin relatif ou absolu (recommandĂ©), mais dans un rĂ©pertoire non synchronisĂ© (par masque ou hors du chemin du partage).\nSur la mĂȘme partition ou systĂšme de fichiers (recommandĂ©).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Chemin oĂč les versions doivent ĂȘtre conservĂ©es (laisser vide pour le chemin par dĂ©faut de .stversions dans le rĂ©pertoire partagĂ©).\nChemin relatif ou absolu (recommandĂ©), mais dans un rĂ©pertoire non synchronisĂ© (par masque ou hors du chemin du partage).\nSur la mĂȘme partition ou systĂšme de fichiers (recommandĂ©).",
"Pause": "Pause",
"Pause All": "Tout suspendre",
"Paused": "En pause",
"Please consult the release notes before performing a major upgrade.": "Veuillez consulter les notes de version avant de réaliser une mise à jour majeure.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Veuillez définir un nom d'utilisateur et un mot de passe dans les réglages.",
"Please wait": "Merci de patienter",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefix indicating that the file can be deleted if preventing directory removal",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefix indicating that the pattern should be matched without case sensitivity",
"Preview": "Aperçu",
"Preview Usage Report": "Aperçu du rapport de statistiques d'utilisation",
"Quick guide to supported patterns": "Guide rapide des masques supportés",
"Quick guide to supported patterns": "Guide rapide des masques compatibles ci-dessous",
"RAM Utilization": "Utilisation de la RAM",
"Random": "Aléatoire",
"Reduced by ignore patterns": "(Limité par des masques d'exclusion)",
"Release Notes": "Notes de version",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Les versions préliminaires contiennent les derniÚres fonctionnalités et derniers correctifs. Elles sont identiques aux traditionnelles mises à jour bimensuelles.",
"Remote Devices": "Autres appareils",
"Remove": "Enlever",
"Required identifier for the folder. Must be the same on all cluster devices.": "Identifiant du partage. Doit ĂȘtre le mĂȘme sur tous les appareils concernĂ©s.",
"Rescan": "Réanalyser",
"Rescan All": "Réanalyser tout",
"Rescan All": "Tout réanalyser",
"Rescan Interval": "Intervalle d'analyse",
"Restart": "Redémarrer",
"Restart Needed": "Redémarrage nécessaire",
"Restarting": "Redémarrage en cours",
"Resume": "Reprise",
"Resume All": "Tout libérer",
"Reused": "Réutilisé",
"Save": "Enregistrer",
"Scan Time Remaining": "Temps d'analyse restant",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Joker Ă  un seul niveau (correspond uniquement Ă  l’intĂ©rieur du rĂ©pertoire)",
"Smallest First": "Les plus petits d'abord",
"Source Code": "Code source",
"Stable releases and release candidates": "Versions stables et préliminaires",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Les versions stables sont reportées d'environ deux semaines. Pendant ce temps elles sont testées en tant que versions préliminaires.",
"Stable releases only": "Seulement les versions stables",
"Staggered File Versioning": "Versions échelonnées",
"Start Browser": "Lancer le navigateur web",
"Statistics": "Statistiques",
@@ -205,14 +231,14 @@
"The folder ID cannot be blank.": "L'identifiant du partage ne peut ĂȘtre vide.",
"The folder ID must be unique.": "L'ID du partage doit ĂȘtre unique.",
"The folder path cannot be blank.": "Le chemin vers le rĂ©pertoire ne peut pas ĂȘtre vide.",
"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.": "Les intervalles suivant sont utilisés: jusqu'à une heure une version est conservée toutes les 30 secondes. Jusqu'à un jour une version est conservée chaque heure. Jusqu'à 30 jours une version est conservée chaque jour. Au-delà, jusqu'à la limite d'ùge, une version est conservée chaque semaine.",
"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.": "Les seuils de durĂ©e suivants dĂ©finissent le nombre maximum de versions pour chaque fichier : pendant la premiĂšre heure une version peut ĂȘtre conservĂ©e toutes les 30 secondes. Jusqu'Ă  un jour, jusqu'Ă  une version par heure - des versions de la premiĂšre heure sont alors progressivement effacĂ©es pour n'en garder qu'une par heure. Jusqu'Ă  30 jours, jusqu'Ă  une version par jour - des versions horaires du premier jour sont alors progressivement effacĂ©es pour n'en garder qu'une par jour. Au-delĂ , jusqu'Ă  la limite d'Ăąge, jusqu'Ă  une version est conservĂ©e par semaine - des versions journaliĂšres du premier mois sont alors progressivement effacĂ©es pour n'en garder qu'une par semaine.",
"The following items could not be synchronized.": "Les fichiers suivants n'ont pas pu ĂȘtre synchronisĂ©s.",
"The maximum age must be a number and cannot be blank.": "L'Ăąge maximum doit ĂȘtre un nombre et ne peut ĂȘtre vide.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Le temps maximum de conservation d'une version (en jours, mettre à 0 pour conserver les versions indéfiniment)",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Durée maximum de conservation d'une version (en jours, 0 pour conserver les versions indéfiniment)",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "Le pourcentage d'espace disque libre doit ĂȘtre un nombre positif compris entre 0 et 100 (inclus).",
"The number of days must be a number and cannot be blank.": "Le nombre de jours doit ĂȘtre numĂ©rique et ne peut pas ĂȘtre vide.",
"The number of days to keep files in the trash can. Zero means forever.": "Le nombre de jours de conservation des fichiers dans la poubelle. 0 signifie toujours.",
"The number of old versions to keep, per file.": "Le nombre d'anciennes versions Ă  garder, par fichier.",
"The number of old versions to keep, per file.": "Le nombre maximum d'anciennes versions à garder indéfiniment, par fichier.",
"The number of versions must be a number and cannot be blank.": "Le nombre de versions doit ĂȘtre numĂ©rique, et ne peut pas ĂȘtre vide.",
"The path cannot be blank.": "Le chemin ne peut pas ĂȘtre vide.",
"The rate limit must be a non-negative number (0: no limit)": "La limite de dĂ©bit ne doit pas ĂȘtre nĂ©gative (0 = pas de limite)",
@@ -221,35 +247,40 @@
"This Device": "Cet appareil",
"This can easily give hackers access to read and change any files on your computer.": "Ceci peut aisément permettre à un intrus de lire et modifier n'importe quel fichier de votre ordinateur. ",
"This is a major version upgrade.": "Il s'agit d'une mise Ă  jour majeure.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Ce réglage contrÎle l'espace disque requis dans le disque qui abrite votre répertoire utilisateur (pour la base de données d'indexation).",
"Time": "Heure",
"Trash Can File Versioning": "Style poubelle",
"Type": "Type",
"Unknown": "Inconnu",
"Unshared": "Non partagé",
"Unused": "Non utilisé",
"Up to Date": "Synchronisé",
"Up to Date": "À jour",
"Updated": "Mis Ă  jour",
"Upgrade": "Mettre Ă  jour",
"Upgrade To {%version%}": "Mettre Ă  jour vers {{version}}",
"Upgrading": "Mise Ă  jour de Syncthing",
"Upload Rate": "Débit d'envoi",
"Uptime": "Durée de fonctionnement",
"Usage reporting is always enabled for candidate releases.": "Les statistiques d'utilisation sont toujours envoyées pour les versions préliminaires.",
"Use HTTPS for GUI": "Utiliser l'HTTPS pour le GUI",
"Version": "Version",
"Versions Path": "Emplacement des versions",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Les versions seront supprimées automatiquement, si elles dépassent la durée maximum de conservation, ou si leur nombre est supérieur à la valeur autorisée dans l'intervalle.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Attention, ce chemin est un répertoire parent du partage existant \"{{otherFolder}}\". Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Attention, ce chemin est un répertoire parent du partage existant \"{{otherFolderLabel}}\" ({{otherFolder}}). Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Attention, ce chemin est un sous-répertoire du partage existant \"{{otherFolder}}\". Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Attention, ce chemin est un sous-répertoire du partage existant \"{{otherFolderLabel}}\" ({{otherFolder}}). Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Les plus anciennes versions seront supprimées automatiquement quand elles dépassent la durée maximum de conservation ou si leur nombre (par fichier) est supérieur à la limite prédéfinie pour l'intervalle.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Attention, ce chemin est un répertoire parent d'au moins un partage existant (par exemple \"{{otherFolder}}\"). Si vous continuez, vous devriez créer un nouveau sous-répertoire, sinon ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Attention, ce chemin est un répertoire parent d'au moins un partage existant (par exemple \"{{otherFolderLabel}}\" ({{otherFolder}})). Si vous continuez, vous devriez créer un nouveau sous-répertoire, sinon ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "ATTENTION, ce chemin est un sous-répertoire du partage existant \"{{otherFolder}}\". Ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "ATTENTION, ce chemin est un sous-répertoire du partage existant \"{{otherFolderLabel}}\" ({{otherFolder}}). Ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Lorsque vous ajoutez un appareil, gardez Ă  l'esprit que le votre doit aussi ĂȘtre ajoutĂ© de l'autre cotĂ©.",
"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.": "Lorsqu'un nouveau partage est ajoutĂ©, gardez Ă  l'esprit que son ID est utilisĂ©e pour lier les rĂ©pertoires Ă  travers les appareils. L'ID est sensible Ă  la casse et sera forcĂ©ment la mĂȘme sur tous les appareils participant Ă  ce partage.",
"Yes": "Oui",
"You can also select one of these nearby devices:": "You can also select one of these nearby devices:",
"You can change your choice at any time in the Settings dialog.": "Vous pouvez changer votre choix dans la boĂźte de dialogue \"Configuration\".",
"You can read more about the two release channels at the link below.": "Vous pouvez en savoir plus sur les deux canaux de distribution via le lien ci-dessous.",
"You must keep at least one version.": "Vous devez garder au minimum une version.",
"days": "Jours",
"directories": "répertoires",
"files": "fichiers",
"full documentation": "documentation complĂšte",
"full documentation": "Documentation complĂšte ici",
"items": "éléments",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} vous invite au partage \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} vous invite au partage \"{{folderlabel}}\" ({{folder}})."

View File

@@ -1,5 +1,5 @@
{
"A device with that ID is already added.": "L'appareil portant cette ID est déjà présent.",
"A device with that ID is already added.": " L'appareil portant cet ID est déjà présent.",
"A negative number of days doesn't make sense.": "Ce champ n'accepte qu'un entier positif ou nul.",
"A new major version may not be compatible with previous versions.": "Une nouvelle version majeure peut présenter des incompatibilités avec les versions antérieures.",
"API Key": "Clé API",
@@ -10,6 +10,7 @@
"Add Device": "Ajouter l'appareil",
"Add Folder": "Ajouter un partage",
"Add Remote Device": "Ajouter un appareil",
"Add devices from the introducer to our device list, for mutually shared folders.": "Lui permettre d'ajouter et enlever des membres à toutes mes listes de membres des partages dont il fait (ou fera !) partie (ceci permet de créer toutes les liaisons point à point possibles en complétant mes listes par les siennes, meilleur débit de réception par cumul des débits d'envoi, indépendance vis à vis de l'introducteur, etc).",
"Add new folder?": "Ajouter ce partage ?",
"Address": "Adresse",
"Addresses": "Adresses",
@@ -18,31 +19,36 @@
"Advanced settings": "ParamÚtres avancés",
"All Data": "Toutes les données",
"Allow Anonymous Usage Reporting?": "Autoriser l'envoi de statistiques d'utilisation anonymisées ?",
"Allowed Networks": "Réseaux autorisés",
"Alphabetic": "Alphabétique",
"An external command handles the versioning. It has to remove the file from the shared folder.": "Une commande externe gÚre les versions de fichiers. Il lui incombe de supprimer les fichiers dans le répertoire synchronisé.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "Une commande externe gÚre les versions de fichiers. Il lui incombe de supprimer les fichiers dans le répertoire synchronisé.",
"Anonymous Usage Reporting": "Rapport anonyme de statistiques d'utilisation",
"Any devices configured on an introducer device will be added to this device as well.": "Tout appareil ajouté sur un appareil introducteur sera aussi ajouté sur votre propre appareil.",
"Any devices configured on an introducer device will be added to this device as well.": "Lui permettre d'ajouter et enlever des membres à toutes mes listes de membres des partages dont il fait (ou fera !) partie (ceci permet de créer toutes les liaisons point à point possibles en complétant mes listes par les siennes, meilleur débit de réception par cumul des débits d'envoi, indépendance vis à vis de l'introducteur, etc).",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Le systÚme de mise à jour automatique propose le choix entre versions stables et versions préliminaires.",
"Automatic upgrades": "Mises Ă  jour automatiques",
"Be careful!": "Faites attention !",
"Bugs": "Bugs",
"CPU Utilization": "Utilisation du CPU",
"Changelog": "Historique des changements",
"Clean out after": "Purger aprĂšs :",
"Changelog": "Historique des versions",
"Clean out after": "Conserver pendant :",
"Click to see discovery failures": "Voir les échecs de découverte",
"Close": "Fermer",
"Command": "Commande",
"Comment, when used at the start of a line": "Commentaire lorsque utilisé en début de ligne",
"Compression": "Compression",
"Configured": "Configuré",
"Configured": "Configurée",
"Connection Error": "Erreur de connexion",
"Connection Type": "Type de connexion",
"Copied from elsewhere": "Copié d'ailleurs",
"Copied from original": "Copié depuis l'original",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016, les contributeurs suivants:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017, les contributeurs suivants :",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016, les contributeurs sont:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017, les contributeurs sont:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Création de masques d'exclusion, remplacement du fichier existant : {{path}}.",
"Danger!": "Attention !",
"Deleted": "Supprimé",
"Device": "Appareil",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "L'appareil \"{{name}}\" ({{device}} Ă  {{address}}) veut se connecter. L'acceptez-vous ?",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "\"{{name}}\" ({{device}}), appareil actuellement Ă  {{address}}, demande Ă  se connecter.\nAcceptez-vous de l'ajouter Ă  votre liste d'appareils connus ?",
"Device ID": "ID de l'appareil",
"Device Identification": "Identifiant de l'appareil",
"Device Name": "Nom de l'appareil",
@@ -50,6 +56,7 @@
"Disconnected": "Déconnecté",
"Discovered": "Découvert",
"Discovery": "Découverte",
"Discovery Failures": "Échecs de dĂ©couverte",
"Documentation": "Documentation",
"Download Rate": "Débit de réception",
"Downloaded": "Reçu",
@@ -58,18 +65,24 @@
"Edit Device": "Modifier l'appareil",
"Edit Folder": "Modifier le partage",
"Editing": "Modifications",
"Editing {%path%}.": "Modification de {{path}}.",
"Enable NAT traversal": "Activer la translation d'adresses (NAT)",
"Enable Relaying": "Relayage possible",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Nombre positif (p.ex, \"2.35\") et unité. Pourcentage de l'espace disque total.",
"Enter a non-privileged port number (1024 - 65535).": "Entrez un n° de port non-privilégié (1024 - 65535)",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Entrer les adresses (\"tcp://ip:port\" ou \"tcp://hÎte:port\") séparées par une virgule, ou \"dynamic\" afin d'activer la recherche automatique de l'adresse.",
"Enter ignore patterns, one per line.": "Entrez les masques d'exclusion, un par ligne.",
"Error": "Erreur",
"External File Versioning": "Gestion externe des versions de fichiers",
"Failed Items": "Fichiers en échec",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "La connexion aux serveurs en IPv6 va échouer s'il n'y a pas de connectivité IPv6.",
"File Pull Order": "Ordre de récupération des fichiers",
"File Versioning": "Méthode de préservation des fichiers",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Les bits de permission de fichier sont ignorés lors de la recherche de changements. Utilisé sur les systÚmes de fichiers FAT.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Les fichiers sont déplacés dans le sous-répertoire .stversions quand ils sont remplacés ou supprimés par Syncthing. Leurs chemins d'accÚs relatifs y sont recréés si besoin.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Les fichiers sont déplacés dans le sous-répertoire .stversions quand ils sont remplacés ou supprimés par Syncthing. Leurs chemins d'accÚs relatifs y sont recréés si besoin.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Les fichiers sont déplacés et horodatés dans le sous-répertoire .stversions quand ils sont remplacés ou supprimés par Syncthing. Leurs chemins d'accÚs relatifs y sont recréés si besoin.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Quand ils sont remplacés ou supprimés par Syncthing, les fichiers sont déplacés et horodatés vers le sous-répertoire .stversions dans une arborescence relative identique à celle de l'original.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Quand ils sont remplacés ou supprimés par Syncthing, les fichiers sont déplacés et horodatés vers le sous-répertoire .stversions dans une arborescence relative identique à celle de l'original.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Les fichiers sont protégés des changements réalisés sur les autres appareils, mais les changements réalisés sur celui-ci seront transférés aux autres.",
"Folder": "Partage",
"Folder ID": "ID du partage",
@@ -80,7 +93,9 @@
"GUI": "Interface graphique",
"GUI Authentication Password": "Mot de passe d'authentification GUI",
"GUI Authentication User": "Utilisateur autorisé GUI",
"GUI Listen Address": "Adresse d'écoute du GUI",
"GUI Listen Addresses": "Adresses de l'interface (GUI)",
"GUI Theme": "ThĂšme graphique",
"Generate": "Générer",
"Global Changes": "Derniers changements",
"Global Discovery": "Découverte globale",
@@ -97,12 +112,13 @@
"Introducer": "Appareil introducteur",
"Inversion of the given condition (i.e. do not exclude)": "Inverser la condition donnée (i.e. ne pas exclure)",
"Keep Versions": "Combien de versions conserver",
"Largest First": "Les plus volumineux d'abord",
"Largest First": "Les plus volumineux en premier",
"Last File Received": "Dernier changement",
"Last Scan": "DerniĂšre analyse",
"Last seen": "DerniĂšre apparition",
"Later": "Plus tard",
"Latest Change": "Dernier changement",
"Learn more": "En savoir plus",
"Listeners": "SystÚmes en écoute",
"Local Discovery": "Découverte locale",
"Local State": "État local",
@@ -120,6 +136,7 @@
"Newest First": "Les plus récents en premier",
"No": "Non",
"No File Versioning": "Pas de préservation",
"No upgrades": "Pas de mises Ă  jour",
"Normal": "Normal",
"Notice": "Notification",
"OK": "OK",
@@ -132,42 +149,48 @@
"Outgoing Rate Limit (KiB/s)": "Limite du débit d'envoi (Kio/s)",
"Override Changes": "Écraser les changements",
"Path": "Chemin",
"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": "Chemin vers le rĂ©pertoire dans l'appareil local. Il sera créé s'il n'existe pas. Vous pouvez entrer un chemin absolu (p.ex \"/home/moi/Sync/Exemple\") ou relatif Ă  celui du programme (p.ex \"..\\Partages\\Exemple\" - utile pour installation portable). Le caractĂšre tilde (~, ou ~+Espace sous Windows XP+Azerty) peut ĂȘtre utilisĂ© comme raccourci vers",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Chemin oĂč les copies doivent ĂȘtre conservĂ©es (laisser vide pour le chemin par dĂ©faut de .stversions dans le rĂ©pertoire)",
"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": "Chemin vers le rĂ©pertoire Ă  partager dans l'appareil local. Il sera créé s'il n'existe pas. Vous pouvez entrer un chemin absolu (p.ex \"/home/moi/Sync/Exemple\") ou relatif Ă  celui du programme (p.ex \"..\\Partages\\Exemple\" - utile pour installation portable). Le caractĂšre tilde (~, ou ~+Espace sous Windows XP+Azerty) peut ĂȘtre utilisĂ© comme raccourci vers",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Chemin oĂč les versions doivent ĂȘtre conservĂ©es (laisser vide pour le chemin par dĂ©faut de .stversions dans le rĂ©pertoire partagĂ©).\nChemin relatif ou absolu (recommandĂ©), mais dans un rĂ©pertoire non synchronisĂ© (par masque ou hors du chemin du partage).\nSur la mĂȘme partition ou systĂšme de fichiers (recommandĂ©).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Chemin oĂč les versions doivent ĂȘtre conservĂ©es (laisser vide pour le chemin par dĂ©faut de .stversions dans le rĂ©pertoire partagĂ©).\nChemin relatif ou absolu (recommandĂ©), mais dans un rĂ©pertoire non synchronisĂ© (par masque ou hors du chemin du partage).\nSur la mĂȘme partition ou systĂšme de fichiers (recommandĂ©).",
"Pause": "Pause",
"Pause All": "Tout suspendre",
"Paused": "En pause",
"Please consult the release notes before performing a major upgrade.": "Veuillez consulter les notes de version avant de réaliser une mise à jour majeure.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Veuillez dĂ©finir un nom d'utilisateur et un mot de passe dans la fenĂȘtre de Configuration.",
"Please wait": "Merci de patienter",
"Prefix indicating that the file can be deleted if preventing directory removal": "Ce préfixe autorise la suppression des fichiers pour permettre la suppression de répertoires.",
"Prefix indicating that the pattern should be matched without case sensitivity": "Ce préfixe, inutile sur Windows et Mac OS, indique que le masque d'exclusion est insensible à la casse.",
"Preview": "Aperçu",
"Preview Usage Report": "Aperçu du rapport de statistiques d'utilisation",
"Quick guide to supported patterns": "Filtro ez onartuen txostena",
"Quick guide to supported patterns": "Guide rapide des masques compatibles ci-dessous",
"RAM Utilization": "Utilisation de la RAM",
"Random": "Aléatoire",
"Reduced by ignore patterns": "(Limité par des masques d'exclusion)",
"Release Notes": "Notes de version",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Les versions préliminaires contiennent les derniÚres fonctionnalités et derniers correctifs. Elles sont identiques aux traditionnelles mises à jour bimensuelles.",
"Remote Devices": "Autres appareils",
"Remove": "Enlever",
"Required identifier for the folder. Must be the same on all cluster devices.": "Identifiant du partage. Doit ĂȘtre le mĂȘme sur tous les appareils concernĂ©s.",
"Rescan": "Réanalyser",
"Rescan All": "Réanalyser tout",
"Rescan All": "Tout réanalyser",
"Rescan Interval": "Intervalle d'analyse",
"Restart": "Redémarrer",
"Restart Needed": "Redémarrage nécessaire",
"Restarting": "Redémarrage en cours",
"Resume": "Reprise",
"Resume All": "Tout libérer",
"Reused": "Réutilisé",
"Save": "Enregistrer",
"Scan Time Remaining": "Temps d'analyse restant",
"Scanning": "Analyse en cours",
"Select the devices to share this folder with.": "Synchroniser avec :",
"Select the folders to share with this device.": "Sélectionner les partages auxquels participe cet appareil.",
"Select the folders to share with this device.": "Sélectionner les partages auxquels cet appareil doit participer :",
"Send & Receive": "Envoi & réception",
"Send Only": "Envoi (lecture seule)",
"Settings": "Configuration",
"Share": "Partager",
"Share Folder": "Partager",
"Share Folders With Device": "Partages avec cet appareil",
"Share Folders With Device": "Participe Ă  ces partages",
"Share With Devices": "Synchroniser avec des appareils",
"Share this folder?": "Acceptez-vous ce partage ?",
"Shared With": "Synchronisé avec",
@@ -179,8 +202,11 @@
"Shutdown Complete": "ArrĂȘtĂ© !",
"Simple File Versioning": "Suivi simplifié des versions",
"Single level wildcard (matches within a directory only)": "Joker Ă  un seul niveau (correspond uniquement Ă  l’intĂ©rieur du rĂ©pertoire)",
"Smallest First": "Les plus petits d'abord",
"Smallest First": "Les plus petits en premier",
"Source Code": "Code source",
"Stable releases and release candidates": "Versions stables et préliminaires",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Les versions stables sont reportées d'environ deux semaines. Pendant ce temps elles sont testées en tant que versions préliminaires.",
"Stable releases only": "Seulement les versions stables",
"Staggered File Versioning": "Versions échelonnées",
"Start Browser": "Lancer le navigateur web",
"Statistics": "Statistiques",
@@ -205,14 +231,14 @@
"The folder ID cannot be blank.": "L'ID du partage ne peut ĂȘtre vide.",
"The folder ID must be unique.": "L'ID du partage doit ĂȘtre unique.",
"The folder path cannot be blank.": "Le chemin vers le rĂ©pertoire ne peut pas ĂȘtre vide.",
"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.": "Les intervalles suivant sont utilisés: jusqu'à une heure une version est conservée toutes les 30 secondes. Jusqu'à un jour une version est conservée chaque heure. Jusqu'à 30 jours une version est conservée chaque jour. Au-delà, jusqu'à la limite d'ùge, une version est conservée chaque semaine.",
"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.": "Les seuils de durĂ©e suivants dĂ©finissent le nombre maximum de versions pour chaque fichier : pendant la premiĂšre heure une version peut ĂȘtre conservĂ©e toutes les 30 secondes. Jusqu'Ă  un jour, jusqu'Ă  une version par heure - des versions de la premiĂšre heure sont alors progressivement effacĂ©es pour n'en garder qu'une par heure. Jusqu'Ă  30 jours, jusqu'Ă  une version par jour - des versions horaires du premier jour sont alors progressivement effacĂ©es pour n'en garder qu'une par jour. Au-delĂ , jusqu'Ă  la limite d'Ăąge, jusqu'Ă  une version est conservĂ©e par semaine - des versions journaliĂšres du premier mois sont alors progressivement effacĂ©es pour n'en garder qu'une par semaine.",
"The following items could not be synchronized.": "Les fichiers suivants n'ont pas pu ĂȘtre synchronisĂ©s.",
"The maximum age must be a number and cannot be blank.": "L'Ăąge maximum doit ĂȘtre un nombre et ne peut ĂȘtre vide.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Le temps maximum de conservation d'une version (en jours, mettre à 0 pour conserver les versions indéfiniment)",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Durée maximum de conservation d'une version (en jours, 0 pour conserver les versions indéfiniment)",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "Le pourcentage d'espace disque libre doit ĂȘtre un nombre positif compris entre 0 et 100 (inclus).",
"The number of days must be a number and cannot be blank.": "Le nombre de jours doit ĂȘtre numĂ©rique et ne peut pas ĂȘtre vide.",
"The number of days to keep files in the trash can. Zero means forever.": "Le nombre de jours de conservation des fichiers dans la poubelle. 0 signifie toujours.",
"The number of old versions to keep, per file.": "Le nombre d'anciennes versions Ă  garder, par fichier.",
"The number of days to keep files in the trash can. Zero means forever.": "Nombre de jours de conservation des fichiers dans la poubelle. 0 signifie \"indéfiniment\".",
"The number of old versions to keep, per file.": "Le nombre maximum d'anciennes versions à garder indéfiniment, par fichier.",
"The number of versions must be a number and cannot be blank.": "Le nombre de versions doit ĂȘtre numĂ©rique, et ne peut pas ĂȘtre vide.",
"The path cannot be blank.": "Le chemin ne peut pas ĂȘtre vide.",
"The rate limit must be a non-negative number (0: no limit)": "La limite de dĂ©bit ne doit pas ĂȘtre nĂ©gative (0 = pas de limite)",
@@ -221,35 +247,40 @@
"This Device": "Cet appareil",
"This can easily give hackers access to read and change any files on your computer.": "Ceci peut aisément permettre à un intrus de lire et modifier n'importe quel fichier de votre ordinateur.",
"This is a major version upgrade.": "Il s'agit d'une mise Ă  jour majeure.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Ce réglage contrÎle l'espace disque requis dans le disque qui abrite votre répertoire utilisateur (pour la base de données d'indexation).",
"Time": "Heure",
"Trash Can File Versioning": "Style poubelle",
"Type": "Type",
"Unknown": "Inconnu",
"Unshared": "Non partagé",
"Unused": "Non utilisé",
"Up to Date": "Synchronisé",
"Up to Date": "À jour",
"Updated": "Mis Ă  jour",
"Upgrade": "Mettre Ă  jour",
"Upgrade To {%version%}": "Mettre Ă  jour vers {{version}}",
"Upgrading": "Mise Ă  jour de Syncthing",
"Upload Rate": "Débit d'envoi",
"Uptime": "Durée de fonctionnement",
"Usage reporting is always enabled for candidate releases.": "Les statistiques d'utilisation sont toujours envoyées pour les versions préliminaires.",
"Use HTTPS for GUI": "Utiliser l'HTTPS pour le GUI",
"Version": "Version",
"Versions Path": "Emplacement des versions",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Les versions seront supprimées automatiquement, si elles dépassent la durée maximum de conservation, ou si leur nombre est supérieur à la valeur autorisée dans l'intervalle.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Attention, ce chemin est un répertoire parent du partage existant \"{{otherFolder}}\". Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Attention, ce chemin est un répertoire parent du partage existant \"{{otherFolderLabel}}\" ({{otherFolder}}). Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Attention, ce chemin est un sous-répertoire du partage existant \"{{otherFolder}}\". Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Attention, ce chemin est un sous-répertoire du partage existant \"{{otherFolderLabel}}\" ({{otherFolder}}). Ceci peut causer des problÚmes tels que duplications ou suppressions intempestives de fichiers.",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Les plus anciennes versions seront supprimées automatiquement quand elles dépassent la durée maximum de conservation ou si leur nombre (par fichier) est supérieur à la limite prédéfinie pour l'intervalle.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Attention, ce chemin est un répertoire parent d'au moins un partage existant (par exemple \"{{otherFolder}}\"). Si c'est bien ce que vous souhaitez, vous devriez créer un nouveau sous-répertoire, sinon ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Attention, ce chemin est un répertoire parent d'au moins un partage existant (par exemple \"{{otherFolderLabel}}\" ({{otherFolder}})). Si vous continuez, vous devriez créer un nouveau sous-répertoire, sinon ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "ATTENTION, ce chemin est un sous-répertoire du partage existant \"{{otherFolder}}\". Ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "ATTENTION, ce chemin est un sous-répertoire du partage existant \"{{otherFolderLabel}}\" ({{otherFolder}}). Ceci peut causer des problÚmes tels que duplications et/ou suppressions intempestives de fichiers.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Lorsque vous ajoutez un appareil, gardez Ă  l'esprit que le votre doit aussi ĂȘtre ajoutĂ© de l'autre cotĂ©.",
"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.": "Lorsqu'un nouveau partage est ajoutĂ©, gardez Ă  l'esprit que son ID est utilisĂ©e pour lier les rĂ©pertoires Ă  travers les appareils. L'ID est sensible Ă  la casse et sera forcĂ©ment la mĂȘme sur tous les appareils participant Ă  ce partage.",
"Yes": "Oui",
"You can also select one of these nearby devices:": "Vous pouvez également sélectionner l'un de ces appareils proches :",
"You can change your choice at any time in the Settings dialog.": "Vous pouvez changer votre choix dans la boĂźte de dialogue \"Configuration\".",
"You can read more about the two release channels at the link below.": "Vous pouvez en savoir plus sur les deux canaux de distribution via le lien ci-dessous.",
"You must keep at least one version.": "Vous devez garder au minimum une version.",
"days": "Jours",
"directories": "répertoires",
"files": "Fichiers",
"full documentation": "documentation complĂšte",
"full documentation": "Documentation complĂšte ici",
"items": "éléments",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} vous invite au partage \"{{folder}}\".",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} vous invite au partage \"{{folderlabel}}\" ({{folder}})."

View File

@@ -4,12 +4,13 @@
"A new major version may not be compatible with previous versions.": "In nije, wichtige ferzje koe wol ris net te kombinearjen wĂȘze mei foargeande ferzjes.",
"API Key": "API-kaai",
"About": "Oer",
"Action": "Action",
"Action": "Aksje",
"Actions": "Aksjes",
"Add": "Taheakje",
"Add Device": "Apparaat taheakje",
"Add Folder": "Map taheakje",
"Add Remote Device": "Apparaat op OfstĂąn Taheakje",
"Add devices from the introducer to our device list, for mutually shared folders.": "Heakje apparaten fan de yntrodusearders ta oan Ășs apparatenlyst, foar mei-inoar dielde mappen.",
"Add new folder?": "Nije map taheakje?",
"Address": "Adres",
"Addresses": "Adressen",
@@ -18,16 +19,20 @@
"Advanced settings": "Avansearre ynstellings",
"All Data": "Alle data",
"Allow Anonymous Usage Reporting?": "Anonime brûkensrapportaazje tastean?",
"Allowed Networks": "Tasteane Netwurken",
"Alphabetic": "Alfabetysk",
"An external command handles the versioning. It has to remove the file from the shared folder.": "In ekstern kommando soarget foar it ferzjebehear. It moat de triem Ășt de dielde map fuortsmite.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "In ekstern kommando soarget foar it ferzjebehear. It moat de triem Ășt de syngronisearre map fuortsmite.",
"Anonymous Usage Reporting": "Anonym brûkensrapportaazje",
"Any devices configured on an introducer device will be added to this device as well.": "Alle apparaten die op in 'yntrodusearjend apparaat' ynstelt binne, wurde ek op dit apparaat taheakke.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Automatyske fernijing biedt no de kar tusken stabyle ferzjes en ferzje kandidaten",
"Automatic upgrades": "Automatyske fernijings",
"Be careful!": "Tink derom!",
"Bugs": "Brekkings",
"CPU Utilization": "CPU-brûken",
"Changelog": "Feroaringslochboek",
"Clean out after": "Opromje nei",
"Click to see discovery failures": "Klik om ûntdekkingsflaters te besjen",
"Close": "Slute",
"Command": "Kommando",
"Comment, when used at the start of a line": "Kommentaar, wannear as brûkt by it begjin fan in rige",
@@ -38,10 +43,11 @@
"Copied from elsewhere": "Oernommen fan earne oars",
"Copied from original": "Oernommen fan orizjineel",
"Copyright © 2014-2016 the following Contributors:": "Copyright © 2014-2016 de folgende bydragers:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 the following Contributors:",
"Copyright © 2014-2017 the following Contributors:": "Copyright © 2014-2017 de folgende Bydragers:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Meitsje negear-patroanen dy in besteande triem oerskriuwe yn {{path}}.",
"Danger!": "Gefaar!",
"Deleted": "Fuortsmiten",
"Device": "Device",
"Device": "Apparaat",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "Apparaat \"{{name}}\" {{device}} op ({{address}}) wol ferbining meitsje. Nij apparaat taheakje?",
"Device ID": "Apparaat-ID",
"Device Identification": "Apparaatidentifikaasje",
@@ -50,6 +56,7 @@
"Disconnected": "Ferbining ferbrutsen",
"Discovered": "Untdekt",
"Discovery": "Untdekking",
"Discovery Failures": "Untdekkingsflaters",
"Documentation": "Dokumintaasje",
"Download Rate": "Ynlaadfluggens",
"Downloaded": "Ynladen",
@@ -58,17 +65,23 @@
"Edit Device": "Apparaat Bewurkje",
"Edit Folder": "Map Bewurkje",
"Editing": "Bewurkjen",
"Editing {%path%}.": "{{path}} wurd bewurke.",
"Enable NAT traversal": "NAT-trochkruse ynskeakelje",
"Enable Relaying": "Trochjaan tastean",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Fier in net-negatyf nûmer yn (bygelyks \"2.35\") en selektearje in ienheid. Percentages stean foar it part fan de totale skiifromte.",
"Enter a non-privileged port number (1024 - 65535).": "Fier in net-befoarrjochte poart-nûmer yn (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Fier troch komma's skieden (\"tcp://ip:port\", \"tcp://host:port\") adressen yn of \"dynamic\" om automatyske Ă»ntdekking fan it adres Ășt te fieren.",
"Enter ignore patterns, one per line.": "Fier negearpatroanen yn, ien per rigel.",
"Error": "Flater",
"External File Versioning": "Ekstern ferzjebehear foar triemen",
"Failed Items": "Mislearre items",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": " Mislearjen fan it ferbinen mei IPv6-tsjinners wurd ferwachte as der gjin stipe foar IPv6-ferbinings is.",
"File Pull Order": "Triemlûkfolchoarder",
"File Versioning": "Triemferzjebehear",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "Bits foar triemrjochten wurde negearre yn it sykjen foar feroarings. Brûk dit op FAT-triemsystemen.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Triemen wurde ferset nei map .stversions wannear't troch Syncthing ferfangen of fuortsmiten.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Triemen wurde ferset nei map .stversions wannear't troch Syncthing ferfangen of fuortsmiten.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Triemen wurde ferset nei mei datum stimpele ferzjes yn in .stversions map wannear troch Syncthing ferfangen of fuortsmiten.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Triemen wurde ferset nei in mei datum stimpele ferzjes yn in .stversions map wannear troch Syncthing ferfangen of fuortsmiten.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "Triemen binne ymmĂșn foar feroarings makke troch oare apparaten, mar feroarings makke op dit apparaat wurde nei de rest fan 'e bondel ferstjoerd.",
"Folder": "Map",
@@ -80,9 +93,11 @@
"GUI": "GUI",
"GUI Authentication Password": "Wachtwurd foar ferifikaasje yn GUI",
"GUI Authentication User": "Brûkers-ID foar ferifikaasje yn GUI",
"GUI Listen Address": "GUI-harkadres",
"GUI Listen Addresses": "Harkadres foar GUI",
"GUI Theme": "Ynterfaasjetema",
"Generate": "Generearje",
"Global Changes": "Global Changes",
"Global Changes": "WrĂąldwide Feroarings",
"Global Discovery": "Wrùldwide ûntdekking",
"Global Discovery Servers": "Wrùldwide ûntdekkingstsjinners",
"Global State": "WrĂąldwide tastĂąn",
@@ -93,7 +108,7 @@
"Ignore Permissions": "Negear-rjochten",
"Incoming Rate Limit (KiB/s)": "Downloadfluggenslimyt (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Ferkearde konfiguraasje kin de ynhùld fan jo mappen skeine en Syncthing unbrûkber meitsje.",
"Introduced By": "Introduced By",
"Introduced By": "Yntrodusearre Troch",
"Introducer": "Yntrodusearrer",
"Inversion of the given condition (i.e. do not exclude)": "Dizze betingst omkeare (d.w.z. net Ăștslute) ",
"Keep Versions": "Ferzjes bewarje",
@@ -103,6 +118,7 @@
"Last seen": "LĂȘst sjoen",
"Later": "Letter",
"Latest Change": "Meast Resinte Feroarings",
"Learn more": "Mear witte",
"Listeners": "Harkers",
"Local Discovery": "Lokale ûntdekking",
"Local State": "Lokale tastĂąn",
@@ -120,6 +136,7 @@
"Newest First": "Nijste earst",
"No": "Nee",
"No File Versioning": "Gjin triemferzjebehear",
"No upgrades": "Gjin fernijings",
"Normal": "Normaal",
"Notice": "Notysje",
"OK": "Okee",
@@ -131,14 +148,18 @@
"Out of Sync Items": "Net syngronisearre items",
"Outgoing Rate Limit (KiB/s)": "Uploadfluggenslimyt (KiB/s)",
"Override Changes": "Feroarings oerskriuwe",
"Path": "Path",
"Path": "Paad",
"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": "Paad nei de map op de lokale kompjûter. Wurd oanmakke as dizze net bestiet. It tilde teken (~) kin brûkt wurde as fluchkeppeling foar",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Paad dĂȘr't de ferzjes bewarre wurde moatte (leech litte foar de standert .stversions-map yn de map).",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Paad dĂȘr't de ferzjes bewarre wurde moatte (leech litte foar de standert .stversions-map yn de map).",
"Pause": "Skoftsje",
"Pause All": "Alles skoftsje",
"Paused": "Skoftet",
"Please consult the release notes before performing a major upgrade.": "Foardat jo in wichtige fernijing ynstallearre, graach earst de fernijingsoantekenings lĂȘze.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Graach foar GUI-ferifikaasje in brûkers-ID en wachtwurd ynstelle yn it ynstellingsdialooch.",
"Please wait": "In amerijke",
"Prefix indicating that the file can be deleted if preventing directory removal": "Prefiks dy't oanjout dat de triem fourtsmiten wurde kin wannear dit it ferwiderjen belet.",
"Prefix indicating that the pattern should be matched without case sensitivity": "Prefiks dy't oanjout dat fergelykings mei it patroans net haadlettergefoelich wĂȘze sille.",
"Preview": "Foarbyld",
"Preview Usage Report": "Foarbyld fan brûkensrapport ",
"Quick guide to supported patterns": "Fluch-paadwizer foar stipe patroanen",
@@ -146,6 +167,7 @@
"Random": "Willekeurich",
"Reduced by ignore patterns": "Ferlytse troch negear-patroanen",
"Release Notes": "Utjeftenotysjes",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Ferzje kandidaten hawwe de lĂȘste mooglikheden en ferbetterings. Se binne allyksa de tradisjonele twa-wyklikse Syncthing ferzjes.",
"Remote Devices": "Apparaten op OfstĂąn",
"Remove": "Fuortsmite",
"Required identifier for the folder. Must be the same on all cluster devices.": "Ferplicht ID foar de map. Moat op alle bondelapparaten itselde wĂȘze.",
@@ -156,6 +178,7 @@
"Restart Needed": "Werstart nedich",
"Restarting": "Oan it werstarten",
"Resume": "Trochgean",
"Resume All": "Alles trochgean litte",
"Reused": "Opnij brûkt",
"Save": "Bewarje",
"Scan Time Remaining": "Oerbleaune skentiid",
@@ -181,6 +204,9 @@
"Single level wildcard (matches within a directory only)": "Inkel-nivo jokerteken (wildcard) (fergeliket allinnich binnen in map)",
"Smallest First": "Lytste earst",
"Source Code": "Boarnekoade",
"Stable releases and release candidates": "Stabyle ferzjes en ferzje kanditaten",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "Stabyle ferzjes wurde likernĂŽch twa wiken Ăștstelt. Yn die tiid wurde se testen as ferzje kandidaten.",
"Stable releases only": "Allinnich stabyle ferzjes",
"Staggered File Versioning": "Sprieden triemferzjebehear",
"Start Browser": "Browser iepenje wannear't Syncthing start",
"Statistics": "Statistiken",
@@ -221,7 +247,8 @@
"This Device": "Dit Apparaat",
"This can easily give hackers access to read and change any files on your computer.": "Dit kin samar ynkringers (hackers) tagong jaan om elke triem op jo kompjûter te besjen en te feroarjen.",
"This is a major version upgrade.": "Dit is in wichtige ferzjefernijing.",
"Time": "Time",
"This setting controls the free space required on the home (i.e., index database) disk.": "Dizze ynstelling bepaalt de frije romte dy't noadich is op de home-skiif (fan de yndeks-databank).",
"Time": "Tiid",
"Trash Can File Versioning": "Jiskefet-triemferzjebehear",
"Type": "Type",
"Unknown": "Unbekend",
@@ -234,17 +261,21 @@
"Upgrading": "Oan it fernijen",
"Upload Rate": "Oplaadfluggens",
"Uptime": "Rintiid",
"Usage reporting is always enabled for candidate releases.": "Brûkersrapportaazje stiet altyd oan foar ferzje kandidaten.",
"Use HTTPS for GUI": "Brûk HTTPS foar GUI",
"Version": "Ferzje",
"Versions Path": "Ferzjes-paad",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "Ferzjes wurde automatysk fuortsmiten wannear't se Ăąlder binne dan de maksimale Ăąldens of wannear it tal fan triemen yn in ynterval grutter is dan tastean.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Warning, this path is a parent directory of an existing folder \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a parent directory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "WarskĂŽging, dit paad is in boppelizzende triemtafel fan in besteande map \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "WarskĂŽging, dit paad is in boppelizzende triemtafel fan in besteande map \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "WarskÎging, dit paad is in ûnderlizzende triemtafel fan in besteande map \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Warning, this path is a subdirectory of an existing folder \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "WarskÎging, dit paad is in ûnderlizzende triemtafel fan in besteande map \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "HĂąld by it taheakjen fan in nij apparaat yn de holle dat it apparaat oan de oare kant ek taheakke wurde moat. ",
"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.": "Hùld by it taheakjen fan in nije map yn de holle dat de map-ID brûkt wurd om de mappen tusken apparaten mei-inoar te ferbinen. Se binne haadlettergefoelich en moatte oer alle apparaten eksakt oerienkomme.",
"Yes": "Ja",
"You can also select one of these nearby devices:": "Jo kinne ek ien fan dizze tichtbye apparaten selektearje:",
"You can change your choice at any time in the Settings dialog.": "Jo kinne jo kar op elk stuit oanpasse yn it Ynstellingsdialooch.",
"You can read more about the two release channels at the link below.": "Jo kinne mear lĂȘze oer de twa Ăștjeftekanalen fia de Ă»ndersteande link.",
"You must keep at least one version.": "Jo moatte minstens ien ferzje bewarje.",
"days": "dagen",
"directories": "triemtafels",

View File

@@ -1,8 +1,8 @@
{
"A device with that ID is already added.": "Mår van hozzåadott eszköz ezzel az azonosítóval.",
"A negative number of days doesn't make sense.": "NegatĂ­v szĂĄmĂș nap nincs Ă©rtelmezve.",
"A negative number of days doesn't make sense.": "NegatĂ­v szĂĄmĂș napnak nincs Ă©rtelme.",
"A new major version may not be compatible with previous versions.": "Az Ășj fƑverziĂł nem feltĂ©tlenĂŒl kompatibilis az elƑzƑ fƑverziĂłkkal.",
"API Key": "API kulcs",
"API Key": "API-kulcs",
"About": "Névjegy",
"Action": "MƱvelet",
"Actions": "MƱveletek",
@@ -10,46 +10,53 @@
"Add Device": "Eszköz hozzåadåsa",
"Add Folder": "Mappa hozzĂĄadĂĄsa",
"Add Remote Device": "Tåvoli eszköz hozzåadåsa",
"Add new folder?": " Új mappa hozzáadás?",
"Add devices from the introducer to our device list, for mutually shared folders.": "Eszközök hozzĂĄadĂĄsa a bevezetƑrƑl az eszköz listĂĄhoz, a közösen megosztott mappĂĄkhoz.",
"Add new folder?": "HozzĂĄadhatĂł az Ășj mappa?",
"Address": "CĂ­m",
"Addresses": "CĂ­mek",
"Advanced": "HaladĂł",
"Advanced Configuration": "HaladĂł beĂĄllĂ­tĂĄsok",
"Advanced settings": "HaladĂł beĂĄllĂ­tĂĄsok",
"All Data": "Minden adat",
"Allow Anonymous Usage Reporting?": "EngedĂ©lyezed a nĂ©vtelen felhasznĂĄlĂĄsi adatok kĂŒldĂ©sĂ©t?",
"Allow Anonymous Usage Reporting?": "A nĂ©vtelen felhasznĂĄlĂĄsi adatok elkĂŒldhetƑk?",
"Allowed Networks": "Engedélyezett hålózatok",
"Alphabetic": "ABC sorrendben",
"An external command handles the versioning. It has to remove the file from the synced folder.": "KĂŒlsƑ program kezeli a fĂĄjl verziĂłkövetĂ©st. A fĂĄjlt el kell tĂĄvolĂ­tania a szinkronizĂĄlt mappĂĄbĂłl.",
"An external command handles the versioning. It has to remove the file from the shared folder.": "KĂŒlsƑ program kezeli a fĂĄjlverziĂł-követĂ©st. Az tĂĄvolĂ­tja el a fĂĄjlt a megosztott mappĂĄbĂłl.",
"An external command handles the versioning. It has to remove the file from the synced folder.": "KĂŒlsƑ program kezeli a fĂĄjlverziĂł-követĂ©st. Az tĂĄvolĂ­tja el a fĂĄjlt a szinkronizĂĄlt mappĂĄbĂłl.",
"Anonymous Usage Reporting": "NĂ©vtelen felhasznĂĄlĂĄsi adatok kĂŒldĂ©se",
"Any devices configured on an introducer device will be added to this device as well.": "A bevezetƑ eszközön beĂĄllĂ­tott minden eszköz hozzĂĄ lesz adva ehhez az eszközhöz is.",
"Automatic upgrade now offers the choice between stable releases and release candidates.": "Az automatikus frissĂ­tĂ©s most lehetƑsĂ©get kĂ­nĂĄl a stabil Ă©s az elƑzetes kiadĂĄsok közötti vĂĄlasztĂĄsra.",
"Automatic upgrades": "Automatikus frissítések",
"Be careful!": "Légy óvatos!",
"Be careful!": "Óvatosan!",
"Bugs": "HibĂĄk",
"CPU Utilization": "Processzor hasznĂĄlat",
"CPU Utilization": "ProcesszorhasznĂĄlat",
"Changelog": "VĂĄltozĂĄsok",
"Clean out after": "TakarĂ­tĂĄs",
"Click to see discovery failures": "Kattints ide a feltérképezési hibåk megtekintéséhez",
"Close": "BezĂĄrĂĄs",
"Command": "Parancs",
"Comment, when used at the start of a line": "Megjegyzés, a sor elején hasznålva",
"Compression": "Tömörítés",
"Configured": "BeĂĄllĂ­tott",
"Connection Error": "KapcsolĂłdĂĄsi hiba",
"Connection Type": "Kapcsolat tĂ­pus",
"Connection Type": "KapcsolattĂ­pus",
"Copied from elsewhere": "MĂĄshonnan mĂĄsolva",
"Copied from original": "EredetirƑl másolva",
"Copyright © 2014-2016 the following Contributors:": "SzerzƑi jog © 2014-2016 az alĂĄbbi közremƱködƑk:",
"Copyright © 2014-2017 the following Contributors:": "SzerzƑi jog © 2014-2017 az alĂĄbbi közremƱködƑk:",
"Creating ignore patterns, overwriting an existing file at {%path%}.": "Figyelmen kĂ­vĂŒl hagyĂĄs mintĂĄk lĂ©trehozĂĄsa, egy lĂ©tezƑ fĂĄjl felĂŒlĂ­rĂĄsa itt: {{path}}.",
"Danger!": "Veszély!",
"Deleted": "Törölve",
"Device": "Eszköz",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "\"{{name}}\" eszköz ({{device}} @ {{address}}) szeretne csatlakozni. HozzĂĄadod az Ășj eszközt?",
"Device ID": "Eszköz azonosító",
"Device Identification": "Eszköz azonosító",
"Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "\"{{name}}\" eszköz ({{device}} @ {{address}}) szeretne csatlakozni. HozzĂĄadhatĂł az Ășj eszköz?",
"Device ID": "Eszközazonosító",
"Device Identification": "Eszközazonosító",
"Device Name": "Eszköz neve",
"Devices": "Eszközök",
"Disconnected": "Kapcsolat bontva",
"Discovered": "Felfedezett",
"Discovery": "Felfedezés",
"Discovery Failures": "Felfedezési hibåk",
"Documentation": "DokumentĂĄciĂł",
"Download Rate": "Letöltési sebesség",
"Downloaded": "Letöltve",
@@ -58,31 +65,39 @@
"Edit Device": "Eszköz szerkesztése",
"Edit Folder": "Mappa szerkesztése",
"Editing": "Szerkesztés",
"Editing {%path%}.": "{{path}} szerkesztése.",
"Enable NAT traversal": "NAT bejårås engedélyezése",
"Enable Relaying": "Közvetítés engedélyezése",
"Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "Adj meg egy nem-negatív szåmot (pl. \"2.35\") és vålassz egy mértékegységet. A szåzalékok a teljes lemezméretre vonatkoznak.",
"Enter a non-privileged port number (1024 - 65535).": "Adj meg egy nem privilegizĂĄlt port szĂĄmot (1024 - 65535).",
"Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "VesszƑvel elvĂĄlasztva több cĂ­m is bevihetƑ (\"tcp://ip:port\", \"tcp://host:port\"), az automatikus felderĂ­tĂ©shez a 'dynamic' kulcsszĂł hasznĂĄlatos. ",
"Enter ignore patterns, one per line.": "Add meg a kihagyåsi mintåkat, soronként egyet.",
"Enter ignore patterns, one per line.": "A kihagyåsi mintåkból soronként egyet kell megadni.",
"Error": "Hiba",
"External File Versioning": "KĂŒlsƑ fĂĄjl verziĂłkövetĂ©s",
"External File Versioning": "KĂŒlsƑ fĂĄjlverziĂł-követĂ©s",
"Failed Items": "HibĂĄs elemek",
"File Pull Order": "FĂĄjl kĂŒldĂ©si sorrend",
"File Versioning": "Fåjl verziókövetés",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "FĂĄjl jogosultsĂĄgok figyelmen kĂ­vĂŒl hagyĂĄsa vĂĄltozĂĄsok keresĂ©sekor. FAT fĂĄjlrendszerek hasznĂĄlatakor.",
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "Mivel nincs IPv6 kapcsolat, ezĂ©rt vĂĄrhatĂłan nem fog sikerĂŒlni IPv6-os szerverekhez csatlakozni.",
"File Pull Order": "FĂĄjlkĂŒldĂ©si sorrend",
"File Versioning": "Fåjlverzió-követés",
"File permission bits are ignored when looking for changes. Use on FAT file systems.": "FĂĄjljogosultsĂĄgok figyelmen kĂ­vĂŒl hagyĂĄsa vĂĄltozĂĄsok keresĂ©sekor. FAT fĂĄjlrendszerek hasznĂĄlatakor hasznos.",
"Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Ha a Syncthing åthelyezi vagy törli a fåjlokat, akkor azok a .stversions könyvtårba lesznek åthelyezve.",
"Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Ha a Syncthing åthelyezi vagy törli a fåjlokat, akkor azok a .stversions mappåba lesznek åthelyezve.",
"Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Ha a Syncthing felĂŒlĂ­rja vagy törli a fĂĄjlokat, akkor azok a .stversions könyvtĂĄrba lesznek ĂĄthelyezve, idƑbĂ©lyegzƑvel ellĂĄtva.",
"Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Ha a Syncthing felĂŒlĂ­rja vagy törli a fĂĄjlokat, akkor azok a .stversions mappĂĄba lesznek ĂĄthelyezve, idƑbĂ©lyegzƑvel ellĂĄtva.",
"Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "A fåjlok védve vannak a mås eszközökön történt våltozåsokkal szemben, de az ezen az eszközön történt våltozåsok érvényesek lesznek a többire.",
"Folder": "Mappa",
"Folder ID": "Mappa azonosĂ­tĂł",
"Folder Label": "Mappa cĂ­mke",
"Folder Path": "Mappa elĂ©rĂ©si Ăștja",
"Folder Type": "Mappa tĂ­pus",
"Folder ID": "MappaazonosĂ­tĂł",
"Folder Label": "MappacĂ­mke",
"Folder Path": "Mappa elĂ©rĂ©si Ăștvonala",
"Folder Type": "MappatĂ­pus",
"Folders": "MappĂĄk",
"GUI": "Grafikus felĂŒlet",
"GUI Authentication Password": "Grafikus felĂŒlet jelszava",
"GUI Authentication User": "Grafikus felĂŒlet felhasznĂĄlĂł neve ",
"GUI Authentication User": "Grafikus felĂŒlet felhasznĂĄlĂłi neve ",
"GUI Listen Address": "Grafikus felĂŒlet cĂ­me",
"GUI Listen Addresses": "Grafikus felĂŒlet cĂ­me",
"GUI Theme": "Grafikus felĂŒlet tĂ©mĂĄja",
"Generate": "GenerĂĄlĂĄs",
"Global Changes": "GlobĂĄlis mĂłdisĂ­tĂĄsok",
"Global Changes": "GlobĂĄlis mĂłdosĂ­tĂĄsok",
"Global Discovery": "Globålis felfedezés",
"Global Discovery Servers": "Globális felfedezƑ kiszolgálók",
"Global State": "GlobĂĄlis ĂĄllapot",
@@ -91,9 +106,9 @@
"Ignore": "Figyelmen kĂ­vĂŒl hagyĂĄs",
"Ignore Patterns": "KihagyĂĄsi mintĂĄk",
"Ignore Permissions": "JogosultsĂĄgok figyelmen kĂ­vĂŒl hagyĂĄsa",
"Incoming Rate Limit (KiB/s)": "BejövƑ sebessĂ©g korlĂĄt (KIB/mp)",
"Incoming Rate Limit (KiB/s)": "BejövƑ sebessĂ©gkorlĂĄt (KiB/mp)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Helytelen konfiguråció esetén kårosodhat a mappåk tartalma és mƱködésképtelenné vålhat a Syncthing.",
"Introduced By": "Bevezette:",
"Introduced By": "Bevezette",
"Introducer": "BevezetƑ",
"Inversion of the given condition (i.e. do not exclude)": "A feltétel ellentéte (pl. ki nem hagyås)",
"Keep Versions": "Megtartott verziĂłk",
@@ -103,11 +118,12 @@
"Last seen": "UtoljĂĄra lĂĄtva",
"Later": "KĂ©sƑbb",
"Latest Change": "UtolsĂł mĂłdosĂ­tĂĄs",
"Learn more": "Tudj meg többet",
"Listeners": "Kapcsolatok",
"Local Discovery": "Helyi felfedezés",
"Local State": "Helyi ĂĄllapot",
"Local State (Total)": "Helyi ĂĄllapot (Teljes)",
"Major Upgrade": "FƑverziĂł frissĂ­tĂ©s",
"Local State (Total)": "Helyi ĂĄllapot (teljes)",
"Major Upgrade": "FƑverziĂł-frissĂ­tĂ©s",
"Master": "Központi",
"Maximum Age": "MaximĂĄlis kor",
"Metadata Only": "Csak metaadatok",
@@ -119,7 +135,8 @@
"New Folder": "Új mappa",
"Newest First": "Újabb elƑször",
"No": "Nem",
"No File Versioning": "Nincs fåjl verziókövetés",
"No File Versioning": "Nincs fåjlverzió-követés",
"No upgrades": "Nincsenek frissítések",
"Normal": "NormĂĄl",
"Notice": "Megjegyzés",
"OK": "Rendben",
@@ -132,20 +149,25 @@
"Outgoing Rate Limit (KiB/s)": "KimenƑ sĂĄvszĂ©lessĂ©g (KiB/mp)",
"Override Changes": "VĂĄltoztatĂĄsok felĂŒlbĂ­rĂĄlĂĄsa",
"Path": "Útvonal",
"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": "A mappa elĂ©rĂ©si Ăștja az eszközön. Amennyiben nem lĂ©tezik, a program automatikusan lĂ©trehozza. A hullĂĄmvonal (~) a következƑ helyettesĂ­tĂ©sre hasznĂĄlhatĂł: ",
"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": "A mappa elĂ©rĂ©si Ăștvonala az eszközön. Amennyiben nem lĂ©tezik, a program automatikusan lĂ©trehozza. A hullĂĄmvonal (~) a következƑ helyettesĂ­tĂ©sre hasznĂĄlhatĂł: ",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "A verziĂłk tĂĄrolĂĄsĂĄra szolgĂĄlĂł elĂ©rĂ©si Ășt (hagyd ĂŒresen a megasztott mappa alapĂ©rtelmezett .stversions könyvtĂĄrĂĄnak hasznĂĄlatĂĄhoz)",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "A verziĂłk tĂĄrolĂĄsĂĄra szolgĂĄlĂł elĂ©rĂ©si Ășt (ĂŒresen hagyva az alapĂ©rtelmezett .stversions mappa)",
"Pause": "SzĂŒnet",
"Pause All": "Mindent szĂŒneteltet",
"Paused": "SzĂŒnetel",
"Please consult the release notes before performing a major upgrade.": "Nagyobb frissĂ­tĂ©s elƑtt ellenƑrizni kell a kiadĂĄsi megjegyzĂ©seket.",
"Please set a GUI Authentication User and Password in the Settings dialog.": "KĂ©rlek, ĂĄllĂ­tsd be a grafikus felĂŒlet felhasznĂĄlĂłnevĂ©t Ă©s jelszavĂĄt a BeĂĄllĂ­tĂĄsok ablakban.",
"Please wait": "Kérlek, vårj",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Be kell ĂĄllĂ­tani a grafikus felĂŒlet felhasznĂĄlĂłnevĂ©t Ă©s jelszavĂĄt a BeĂĄllĂ­tĂĄsok pĂĄrbeszĂ©dablakban.",
"Please wait": "TĂŒrelem",
"Prefix indicating that the file can be deleted if preventing directory removal": "ElƑtag, amely jelzi, hogy a fĂĄjl törölhetƑ, ha tiltva van a mappĂĄk eltĂĄvolĂ­tĂĄsa",
"Prefix indicating that the pattern should be matched without case sensitivity": "ElƑtag, amely jelzi, hogy a mintĂĄt nagy- ill. kisbetƱérzĂ©kenysĂ©g nĂ©lkĂŒl kell illeszteni.",
"Preview": "ElƑnĂ©zet",
"Preview Usage Report": "Felhasznålåsi adatok åtnézése",
"Preview Usage Report": "Hasznålati jelentés åttekintése",
"Quick guide to supported patterns": "Rövid ĂștmutatĂł a hasznĂĄlhatĂł mintĂĄkrĂłl",
"RAM Utilization": "MemĂłria hasznĂĄlat",
"RAM Utilization": "MemĂłriahasznĂĄlat",
"Random": "VéletlenszerƱ",
"Reduced by ignore patterns": "Kihagyåsi mintåkkal csökkentve",
"Release Notes": "Kiadåsi megjegyzések",
"Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "Az elƑzetes kiadĂĄsok tartalmazzĂĄk a legĂșjabb fejlesztĂ©seket Ă©s javĂ­tĂĄsokat. Ezek hasonlĂłak a hagyomĂĄnyos, kĂ©theti Syncthing kiadĂĄsokhoz.",
"Remote Devices": "Tåvoli eszközök",
"Remove": "EltĂĄvolĂ­tĂĄs",
"Required identifier for the folder. Must be the same on all cluster devices.": "A mappa szĂŒksĂ©ges azonosĂ­tĂłja. Minden fĂŒrtözött eszközön azonosnak kell lennie.",
@@ -156,12 +178,13 @@
"Restart Needed": "ÚjraindĂ­tĂĄs szĂŒksĂ©ges",
"Restarting": "Újraindulás",
"Resume": "FolytatĂĄs",
"Resume All": "Mindent folytat",
"Reused": "Újrafelhasználva",
"Save": "Mentés",
"Scan Time Remaining": "FennmaradĂł ĂĄtnĂ©zĂ©si idƑ",
"Scanning": "Átnézés",
"Select the devices to share this folder with.": "Vålaszd ki az eszközöket, amelyekkel meg szeretnéd osztani a mappåt",
"Select the folders to share with this device.": "Vålaszd ki a mappåkat, amiket meg szeretnél osztani ezzel az eszközzel.",
"Select the devices to share this folder with.": "Eszközök, amelyekkel megosztandó a mappa",
"Select the folders to share with this device.": "Mappåk, amelyek megosztandók ezzel az eszközzel.",
"Send & Receive": "KĂŒldĂ©s Ă©s fogadĂĄs",
"Send Only": "Csak kĂŒldĂ©s",
"Settings": "BeĂĄllĂ­tĂĄsok",
@@ -169,19 +192,22 @@
"Share Folder": "Mappa megosztĂĄsa",
"Share Folders With Device": "Mappåk megosztåsa az eszközzel",
"Share With Devices": "Megosztås mås eszközzel",
"Share this folder?": "Megosztod ezt a mappĂĄt?",
"Share this folder?": "MegoszthatĂł ez a mappa?",
"Shared With": "Megosztva ezekkel:",
"Show ID": "AzonosĂ­tĂł mutatĂĄsa",
"Show QR": "QR-kĂłd mutatĂĄsa",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Az eszköz azonosító helyett jelenik meg. A többi eszközön alapértelmezett névként hasznålható. ",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Az eszköz azonosĂ­tĂł helyett jelenik meg. Üresen hagyva az eszköz sajĂĄt neve lesz hasznĂĄlva ",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Az eszközazonosító helyett jelenik meg. A többi eszközön alapértelmezett névként hasznålható. ",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Az eszközazonosĂ­tĂł helyett jelenik meg. Üresen hagyva az eszköz sajĂĄt neve lesz alkalmazva.",
"Shutdown": "LeĂĄllĂ­tĂĄs",
"Shutdown Complete": "Leållítås kész",
"Simple File Versioning": "EgyszerƱ fåjl verziókövetés",
"Simple File Versioning": "EgyszerƱ fåjlverzió-követés",
"Single level wildcard (matches within a directory only)": "EgyszintƱ helyettesĂ­tƑ karakter (csak egy mappĂĄra Ă©rvĂ©nyes)",
"Smallest First": "Kisebb elƑször",
"Source Code": "ForrĂĄskĂłd",
"Staggered File Versioning": "TöbbszintƱ fåjl verziókövetés",
"Stable releases and release candidates": "Stabil Ă©s elƑzetes kiadĂĄsok ",
"Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "A stabil kiadĂĄsok nagyjĂĄbĂłl kĂ©t hĂ©ttel el vannak csĂșsztatva. Ez alatt elƑzetes kiadĂĄskĂ©nt tesztelĂ©sen mennek keresztĂŒl.",
"Stable releases only": "Csak stabil kiadĂĄsok",
"Staggered File Versioning": "TöbbszintƱ fåjlverzió-követés",
"Start Browser": "BöngĂ©szƑ indĂ­tĂĄsa",
"Statistics": "Statisztika",
"Stopped": "LeĂĄllĂ­tva",
@@ -189,40 +215,41 @@
"Sync Protocol Listen Addresses": "SzinkronizĂĄciĂłs protokoll cĂ­me",
"Syncing": "SzinkronizĂĄlĂĄs",
"Syncthing has been shut down.": "Syncthing leĂĄllĂ­tva",
"Syncthing includes the following software or portions thereof:": "Syncthing a következƑ programokat, vagy komponenseket tartalmazza.",
"Syncthing includes the following software or portions thereof:": "A Syncthing a következƑ programokat, vagy komponenseket tartalmazza.",
"Syncthing is restarting.": "Syncthing Ășjraindul",
"Syncthing is upgrading.": "Syncthing frissĂŒl",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying
": "Úgy tƱnik, hogy a Syncthing nem mƱködik, vagy valami problĂ©ma van a hĂĄlĂłzati kapcsolattal. Újra prĂłbĂĄlom...",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Úgy tƱnik, hogy a Syncthing problĂ©mĂĄba ĂŒtközött a kĂ©rĂ©s feldolgozĂĄsa sorĂĄn. Ha a problĂ©ma tovĂĄbbra is fennĂĄll, akkor frissĂ­teni kell az oldalt, vagy Ășjra kell indĂ­tani a Syncthinget.",
"The Syncthing admin interface is configured to allow remote access without a password.": "A Syncthing adminisztrĂĄciĂłs felĂŒletĂ©nek tĂĄvoli elĂ©rĂ©se be van kapcsolva jelszĂł nĂ©lkĂŒl.",
"The aggregated statistics are publicly available at the URL below.": "Az összesĂ­tett statisztikĂĄk elĂ©rhetƑk az alĂĄbbi cĂ­men.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "A beĂĄllĂ­tĂĄsok elmentĂ©sre kerĂŒltek, de nem lettek aktivĂĄlva. IndĂ­tsd Ășjra a Syncthing-et, hogy aktivĂĄld Ƒket.",
"The device ID cannot be blank.": "Az eszköz azonosĂ­tĂł nem lehet ĂŒres.",
"The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "A beĂĄllĂ­tĂĄsok elmentĂ©sre kerĂŒltek, de nem lettek aktivĂĄlva. Újra kell indĂ­tani a Syncthing-et az aktivĂĄlĂĄsukhoz.",
"The device ID cannot be blank.": "Az eszközazonosĂ­tĂł nem lehet ĂŒres.",
"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).": "Az itt megadandĂł eszközazonosĂ­tĂł a mĂĄsik eszköz MƱveletek > AzonosĂ­tĂł mutatĂĄsa cĂ­mƱ ablakĂĄban lĂĄthatĂł. SzĂłközök Ă©s kötƑjelek hasznĂĄlhatĂłk (nem szĂĄmĂ­tanak).",
"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.": "A titkosĂ­tott felhasznĂĄlĂĄsi adatok naponta kerĂŒlnek kĂŒldĂ©sre. Arra hasznĂĄljuk Ƒket hogy kövessĂŒk a kĂŒlönbözƑ platformokat, mappa mĂ©reteket Ă©s program verziĂłkat. Amennyiben az elkĂŒldĂ©sre kerĂŒlƑ adat megvĂĄltozik, ez az ablak Ășjra megjelenik.",
"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.": "A beĂ­rt eszköz azonosĂ­tĂł nem valĂłdi. Az azonosĂ­tĂł 52 vagy 56 karakter hosszĂș, szĂĄmokbĂłl Ă©s betƱkbƑl ĂĄll, opcionĂĄlisan szĂłközöket Ă©s kötƑjeleket tartalmaz.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "Az elsƑ parancssori paramĂ©ter a mappa elĂ©rĂ©si Ăștja, a mĂĄsodik a relatĂ­v elĂ©rĂ©si Ășt a mappĂĄban.",
"The folder ID cannot be blank.": "A mappa azonosĂ­tĂł nem lehet ĂŒres.",
"The folder ID must be unique.": "A mappa azonosĂ­tĂł egyedi kell legyen",
"The folder path cannot be blank.": "Az elĂ©rĂ©si Ășt nem lehet ĂŒres",
"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.": "A titkosĂ­tott felhasznĂĄlĂĄsi adatok naponta kerĂŒlnek kĂŒldĂ©sre. Arra hasznĂĄljuk Ƒket, hogy kövessĂŒk a kĂŒlönbözƑ platformokat, mappamĂ©reteket Ă©s programverziĂłkat. Az elkĂŒldött adatcsomag vĂĄltozĂĄsa esetĂ©n ismĂ©telt engedĂ©lyezĂ©si kĂ©rĂ©s fog megjelenni.",
"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.": "A megadott eszközazonosĂ­tĂł nem tƱnik Ă©rvĂ©nyesnek. Az azonosĂ­tĂł 52 vagy 56 karakterbƑl kell ĂĄlljon, betƱket Ă©s szĂĄmokat tartalmazhat., opcionĂĄlisan szĂłközöket Ă©s kötƑjeleket.",
"The first command line parameter is the folder path and the second parameter is the relative path in the folder.": "Az elsƑ parancssori paramĂ©ter a mappa elĂ©rĂ©si Ăștvonala, a mĂĄsodik a relatĂ­v elĂ©rĂ©si Ășt a mappĂĄban.",
"The folder ID cannot be blank.": "A mappaazonosĂ­tĂł nem lehet ĂŒres.",
"The folder ID must be unique.": "A mappaazonosĂ­tĂł egyedi kell legyen.",
"The folder path cannot be blank.": "Az elĂ©rĂ©si Ăștvonal nem lehet ĂŒres.",
"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.": "A következƑ intervallumokat hasznĂĄljuk: egy rĂ©gi verziĂłt ƑrzĂŒnk meg az elsƑ ĂłrĂĄban minden 30 mĂĄsodpercben, az elsƑ nap minden ĂłrĂĄban, az elsƑ 30 napban minden nap, egĂ©szen addig amĂ­g el nem Ă©rjĂŒk a maximĂĄlisan megtarthatĂł verziĂłk szĂĄmĂĄt minden hĂ©ten.",
"The following items could not be synchronized.": "A következƑ elemek nem szinkronizĂĄlhatĂłak.",
"The maximum age must be a number and cannot be blank.": "A maximĂĄlis kornak szĂĄmnak kell lenni Ă©s nem lehet ĂŒres",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "A verziók megtartåsånak maximålis ideje (napokban, ha 0-t adsz meg örökre megmaradnak).",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "A minimĂĄlis szabad terĂŒlet szĂĄzalĂ©kos, nem-negatĂ­v Ă©rtĂ©ke 0 Ă©s 100 között",
"The maximum age must be a number and cannot be blank.": "A maximĂĄlis kornak szĂĄmnak kell lenni Ă©s nem lehet ĂŒres.",
"The maximum time to keep a version (in days, set to 0 to keep versions forever).": "A verziók megtartåsånak maximålis ideje (napokban, 0-t megadva örökre megmaradnak).",
"The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "A minimĂĄlis szabad terĂŒlet szĂĄzalĂ©kos, nem-negatĂ­v Ă©rtĂ©ke 0 Ă©s 100 között.",
"The number of days must be a number and cannot be blank.": "A napok szĂĄma szĂĄm kell legyen Ă©s nem lehet ĂŒres.",
"The number of days to keep files in the trash can. Zero means forever.": "A napok szåma ameddig a fåjlok meg lesznek tartva a szemetesben. A 0 azt jelenti örökre.",
"The number of old versions to keep, per file.": "A megtartott régi verziók szåma, fåjlonként.",
"The number of versions must be a number and cannot be blank.": "A megtartott verziĂłk szĂĄma nem lehet ĂŒres",
"The path cannot be blank.": "ElĂ©rĂ©si Ășt nem lehet ĂŒres.",
"The rate limit must be a non-negative number (0: no limit)": "Az arĂĄny limitnek pozitĂ­v szĂĄmnak kell lennie (0: nincs limit)",
"The rescan interval must be a non-negative number of seconds.": "Az åtnézési intervallum nullånål nagyobb måsodperc érték kell legyen",
"The number of days to keep files in the trash can. Zero means forever.": "A napok szåma, ameddig a fåjlok meg lesznek tartva a szemetesben. A 0 azt jelenti, hogy örökre.",
"The number of old versions to keep, per file.": "A megtartott régi verziók szåma fåjlonként.",
"The number of versions must be a number and cannot be blank.": "A megtartott verziĂłk szĂĄma nem lehet ĂŒres.",
"The path cannot be blank.": "Az elĂ©rĂ©si Ăștvonal nem lehet ĂŒres.",
"The rate limit must be a non-negative number (0: no limit)": "A sebességlimitnek pozitív szåmnak kell lennie (0: nincs limit)",
"The rescan interval must be a non-negative number of seconds.": "Az åtnézési intervallum nullånål nagyobb måsodperc érték kell legyen.",
"They are retried automatically and will be synced when the error is resolved.": "A hiba javĂ­tĂĄsa utĂĄn automatikusan Ășjra megprĂłbĂĄlja a szinkronizĂĄlĂĄst.",
"This Device": "Ez az eszköz",
"This can easily give hackers access to read and change any files on your computer.": "Így a hekkerek könnyedĂ©n hozzĂĄfĂ©rĂ©st szerezhetnek a gĂ©peden tĂĄrolt fĂĄjlok olvasĂĄsĂĄhoz Ă©s mĂłdosĂ­tĂĄsĂĄhoz.",
"This is a major version upgrade.": "Ez egy fƑverziĂł frissĂ­tĂ©s.",
"This can easily give hackers access to read and change any files on your computer.": "Így a hekkerek könnyedĂ©n hozzĂĄfĂ©rĂ©st szerezhetnek a gĂ©pen tĂĄrolt fĂĄjlok olvasĂĄsĂĄhoz Ă©s mĂłdosĂ­tĂĄsĂĄhoz.",
"This is a major version upgrade.": "Ez egy fƑverziĂł-frissĂ­tĂ©s.",
"This setting controls the free space required on the home (i.e., index database) disk.": "Ez e beĂĄllĂ­tĂĄs szabĂĄlyozza a szĂŒksĂ©ges szabad helyet a fƑ (pl: index, adatbĂĄzis) lemezen.",
"Time": "IdƑ",
"Trash Can File Versioning": "Szemetes fåjl verziókövetés",
"Trash Can File Versioning": "Szemetes fåjlverzió-követés",
"Type": "TĂ­pus",
"Unknown": "Ismeretlen",
"Unshared": "Nincs megosztva",
@@ -230,27 +257,31 @@
"Up to Date": "Friss",
"Updated": "FrissĂ­tve",
"Upgrade": "Frissítés",
"Upgrade To {%version%}": "Frissítés a {{version}} verzióra",
"Upgrade To {%version%}": "Frissítés a verzióra: {{version}}",
"Upgrading": "Frissítés",
"Upload Rate": "Feltöltési sebesség",
"Uptime": "ÜzemidƑ",
"Use HTTPS for GUI": "HTTPS hasznĂĄlata a felĂŒlethez",
"Usage reporting is always enabled for candidate releases.": "Az elƑzetes kiadĂĄsokban a hasznĂĄlati jelentĂ©s mindig engedĂ©lyezett.",
"Use HTTPS for GUI": "HTTPS hasznĂĄlata a grafikus felĂŒlethez",
"Version": "VerziĂł",
"Versions Path": "VerziĂłk Ăștvonala",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "A rĂ©gi verziĂłk automatikusan törlƑdnek, amennyiben öregebbek mint a maximum kor, vagy mĂĄr több van belƑlĂŒk mint az adott idƑszakban megtarthatĂł maximum.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Figyelem, ez az Ăștvonal egy meglĂ©vƑ mappa szĂŒlƑ könyvtĂĄra \"{{otherFolder}}\".",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Figyelem, ez az Ăștvonal egy meglĂ©vƑ mappa szĂŒlƑ könyvtĂĄra \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Figyelem, ez az Ăștvonal egy meglĂ©vƑ mappa alkönyvtĂĄra \"{{otherFolder}}\".",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Figyelem, ez az Ăștvonal egy meglĂ©vƑ mappa alkönyvtĂĄra \"{{otherFolderLabel}}\" ({{otherFolder}}).",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Amikor Ășj eszközt adsz hozzĂĄ, tartsd Ă©szben, hogy a mĂĄsik oldalon ezt az eszközt is hozzĂĄ kell adni.",
"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.": "Amikor Ășj mappĂĄt adsz hozzĂĄ, tartsd Ă©szben, hogy a mappa azonosĂ­tĂł arra valĂł hogy összekösd a mappĂĄkat az eszközeiden. Az azonosĂ­tĂł kisbetƱ-nagybetƱ Ă©rzĂ©keny Ă©s pontosan egyeznie kell az eszközökön.",
"Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "A rĂ©gi verziĂłk automatikusan törlƑdnek, amennyiben öregebbek, mint a maximum kor, vagy mĂĄr több van belƑlĂŒk, mint az adott idƑszakban megtarthatĂł maximum.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "Figyelem, ez az Ăștvonal a meglĂ©vƑ „{{otherFolder}}” mappa szĂŒlƑmappĂĄja.",
"Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Figyelem, ez az Ăștvonal a meglĂ©vƑ „{{otherFolderLabel}}” ({{otherFolder}}) mappa szĂŒlƑmappĂĄja.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "Figyelem, ez az Ăștvonal a meglĂ©vƑ „{{otherFolder}}” mappa almappĂĄja.",
"Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "Figyelem, ez az Ăștvonal a meglĂ©vƑ „{{otherFolderLabel}}” ({{otherFolder}}) mappa almappĂĄja.",
"When adding a new device, keep in mind that this device must be added on the other side too.": "Új eszköz hozzĂĄadĂĄsakor nem szabad elfeledkezni arrĂłl, hogy a mĂĄsik oldalon ezt az eszközt is hozzĂĄ kell adni.",
"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.": "Új eszköz hozzĂĄadĂĄsakor Ă©szben kell tartani, hogy a mappaazonosĂ­tĂł arra valĂł, hogy összekösse a mappĂĄkat az eszközökön. Az azonosĂ­tĂł kisbetƱ-nagybetƱ Ă©rzĂ©keny Ă©s pontosan egyeznie kell az eszközökön.",
"Yes": "Igen",
"You must keep at least one version.": "LegalĂĄbb egy verziĂłt meg kell tartanod.",
"You can also select one of these nearby devices:": "Az alĂĄbbi közelben lĂ©vƑ eszközök közĂŒl lehet vĂĄlasztani:",
"You can change your choice at any time in the Settings dialog.": "A beĂĄllĂ­tĂĄsoknĂĄl bĂĄrmikor mĂłdosĂ­thatod a vĂĄlasztĂĄsodat.",
"You can read more about the two release channels at the link below.": "A két kiadåsi csatornåról az alåbbi linken olvashatsz tovåbbi informåciókat.",
"You must keep at least one version.": "LegalĂĄbb egy verziĂłt meg kell tartani.",
"days": "nap",
"directories": "könyvtårak",
"files": "fĂĄjlok",
"directories": "mappa",
"files": "fĂĄjl",
"full documentation": "teljes dokumentĂĄciĂł",
"items": "elem",
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} meg szeretné osztani a \"{{folder}}\" nevƱ mappåt.",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} szeretné megosztani \"{{folderlabel}}\" ({{folder}}) mappåt."
"{%device%} wants to share folder \"{%folder%}\".": "{{device}} szeretnĂ© megosztani a mappĂĄt: „{{folder}}”.",
"{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} szeretnĂ© megosztani a mappĂĄt: „{{folderlabel}}” ({{folder}})."
}

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