Browse Source

Docs & translation update

Jakob Borg 10 years ago
parent
commit
32c1a9bc45
42 changed files with 1682 additions and 107 deletions
  1. 1 0
      gui/assets/lang/lang-bg.json
  2. 1 0
      gui/assets/lang/lang-ca.json
  3. 1 0
      gui/assets/lang/[email protected]
  4. 2 1
      gui/assets/lang/lang-cs.json
  5. 2 1
      gui/assets/lang/lang-de.json
  6. 1 0
      gui/assets/lang/lang-el.json
  7. 1 0
      gui/assets/lang/lang-en-GB.json
  8. 1 0
      gui/assets/lang/lang-es-ES.json
  9. 1 0
      gui/assets/lang/lang-es.json
  10. 1 0
      gui/assets/lang/lang-fi.json
  11. 1 0
      gui/assets/lang/lang-fr-CA.json
  12. 1 0
      gui/assets/lang/lang-fr.json
  13. 2 1
      gui/assets/lang/lang-hu.json
  14. 25 24
      gui/assets/lang/lang-it.json
  15. 1 0
      gui/assets/lang/lang-ja.json
  16. 1 0
      gui/assets/lang/lang-ko-KR.json
  17. 15 14
      gui/assets/lang/lang-lt.json
  18. 1 0
      gui/assets/lang/lang-nb.json
  19. 1 0
      gui/assets/lang/lang-nl.json
  20. 1 0
      gui/assets/lang/lang-nn.json
  21. 13 12
      gui/assets/lang/lang-pl.json
  22. 2 1
      gui/assets/lang/lang-pt-BR.json
  23. 1 0
      gui/assets/lang/lang-pt-PT.json
  24. 1 0
      gui/assets/lang/lang-ro-RO.json
  25. 1 0
      gui/assets/lang/lang-ru.json
  26. 33 32
      gui/assets/lang/lang-sv.json
  27. 2 1
      gui/assets/lang/lang-uk.json
  28. 1 0
      gui/assets/lang/lang-zh-CN.json
  29. 1 0
      gui/assets/lang/lang-zh-TW.json
  30. 1 1
      lib/auto/gui.files.go
  31. 1357 0
      man/syncthing-bep.7
  32. 4 4
      man/syncthing-config.5
  33. 2 2
      man/syncthing-device-ids.7
  34. 3 3
      man/syncthing-event-api.7
  35. 3 3
      man/syncthing-faq.7
  36. 189 0
      man/syncthing-localdisco.7
  37. 1 1
      man/syncthing-networking.7
  38. 2 2
      man/syncthing-rest-api.7
  39. 1 1
      man/syncthing-security.7
  40. 1 1
      man/syncthing-stignore.5
  41. 1 1
      man/syncthing-versioning.7
  42. 1 1
      man/syncthing.1

+ 1 - 0
gui/assets/lang/lang-bg.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Устройство {{device}} ({{address}}) желае да се свърже. Добави ново устройство?",
     "Devices": "Устройства",
     "Disconnected": "Прекрати Връзката",
+    "Discovery": "Откриване",
     "Documentation": "Документация",
     "Download Rate": "Скорост на Теглене",
     "Downloaded": "Изтеглен",

+ 1 - 0
gui/assets/lang/lang-ca.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "El dispositiu {{device}} ({{address}}) vol conectar-se. Afegir nou dispositiu?",
     "Devices": "Dispositius",
     "Disconnected": "Desconnectat",
+    "Discovery": "Discovery",
     "Documentation": "Documentació",
     "Download Rate": "Tasca de descarrega",
     "Downloaded": "Descarregat",

+ 1 - 0
gui/assets/lang/[email protected]

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "El dispositiu {{device}} ({{address}}) vol connectar-se. Afegir nou dispositiu?",
     "Devices": "Dispositius",
     "Disconnected": "Desconnectat",
+    "Discovery": "Discovery",
     "Documentation": "Documentació",
     "Download Rate": "Velocitat de descàrrega",
     "Downloaded": "Descarregat",

+ 2 - 1
gui/assets/lang/lang-cs.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Přístroj {{device}} ({{address}}) žádá o připojení. Chcete ho přidat?",
     "Devices": "Přístroje",
     "Disconnected": "Odpojen",
+    "Discovery": "Oznamování",
     "Documentation": "Dokumentace",
     "Download Rate": "Rychlost stahování",
     "Downloaded": "Staženo",
@@ -79,7 +80,7 @@
     "Ignore Patterns": "Ignorované vzory",
     "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 složek a učinit Syncthing nefunkční.",
+    "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í.",
     "Introducer": "Zavaděč",
     "Inversion of the given condition (i.e. do not exclude)": "Prohození zadané podmínky (např. nevynechat)",
     "Keep Versions": "Ponechat verze",

+ 2 - 1
gui/assets/lang/lang-de.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Gerät {{device}} ({{address}}) möchte sich verbinden. Gerät hinzufügen?",
     "Devices": "Geräte",
     "Disconnected": "Getrennt",
+    "Discovery": "Gerätesuche",
     "Documentation": "Dokumentation",
     "Download Rate": "Download-Rate",
     "Downloaded": "Heruntergeladen",
@@ -148,7 +149,7 @@
     "Short identifier for the folder. Must be the same on all cluster devices.": "Kurze ID für das Verzeichnis. Muss auf allen Verbunds-Geräten gleich sein.",
     "Show ID": "ID anzeigen",
     "Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Wird anstatt der Geräte ID angezeigt. Wird als optionaler Gerätename an die anderen Clients im Cluster weitergegeben.",
-    "Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Wird anstatt der Geräte ID im Verbunds-Status angezeigt.Wird auf den Namen aktualisiert, den das Gerät angibt, wenn nichts eingetragen wird.",
+    "Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Wird auf diesem Gerät als Gerätename angezeigt und an die anderen Geräte im Geräte-Verbund weitergegeben. Wenn kein Gerätename anegegeben wird, wird der Name des entfernten Gerätes genommen.",
     "Shutdown": "Herunterfahren",
     "Shutdown Complete": "Vollständig Heruntergefahren",
     "Simple File Versioning": "Einfache Dateiversionierung",

+ 1 - 0
gui/assets/lang/lang-el.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Η συσκευή {{device}} ({{address}}) επιθυμεί να συνδεθεί. Προσθήκη της νέας συσκευής1",
     "Devices": "Συσκευές",
     "Disconnected": "Αποσυνδεδεμένος",
+    "Discovery": "Discovery",
     "Documentation": "Τεκμηρίωση",
     "Download Rate": "Ταχύτητα λήψης",
     "Downloaded": "Έχει ληφθεί",

+ 1 - 0
gui/assets/lang/lang-en-GB.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Device {{device}} ({{address}}) wants to connect. Add new device?",
     "Devices": "Devices",
     "Disconnected": "Disconnected",
+    "Discovery": "Discovery",
     "Documentation": "Documentation",
     "Download Rate": "Download Rate",
     "Downloaded": "Downloaded",

+ 1 - 0
gui/assets/lang/lang-es-ES.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "El dispositivo {{device}} ({{address}}) quiere conectarse. ¿Añadir nuevo dispositivo?",
     "Devices": "Dispositivos",
     "Disconnected": "Desconectado",
+    "Discovery": "Discovery",
     "Documentation": "Documentación",
     "Download Rate": "Velocidad de descarga",
     "Downloaded": "Descargado",

+ 1 - 0
gui/assets/lang/lang-es.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "El dispositivo {{device}} ({{address}}) se quiere conectar. ¿Agregar nuevo dispositivo?",
     "Devices": "Dispositivos",
     "Disconnected": "Desconectado",
+    "Discovery": "Discovery",
     "Documentation": "Documentación",
     "Download Rate": "Tasa de descarga",
     "Downloaded": "Descargado",

+ 1 - 0
gui/assets/lang/lang-fi.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Laite {{device}} ({{address}}) haluaa yhdistää. Lisää uusi laite?",
     "Devices": "Laitteet",
     "Disconnected": "Yhteys katkaistu",
+    "Discovery": "Discovery",
     "Documentation": "Dokumentaatio",
     "Download Rate": "Latausmäärä",
     "Downloaded": "Ladattu",

+ 1 - 0
gui/assets/lang/lang-fr-CA.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "L'appareil {{device}} ({{address}}) veut se connecter. Voulez-vous ajouter cette appareil ?",
     "Devices": "Appareil",
     "Disconnected": "Déconnecté",
+    "Discovery": "Discovery",
     "Documentation": "Documentation",
     "Download Rate": "Débit de réception",
     "Downloaded": "Téléchargé",

+ 1 - 0
gui/assets/lang/lang-fr.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "L'appareil {{device}} ({{address}}) veut se connecter. Voulez-vous ajouter cette appareil ?",
     "Devices": "Appareil",
     "Disconnected": "Déconnecté",
+    "Discovery": "Discovery",
     "Documentation": "Documentation",
     "Download Rate": "Débit de réception",
     "Downloaded": "Téléchargé",

+ 2 - 1
gui/assets/lang/lang-hu.json

@@ -31,7 +31,7 @@
     "Connection Error": "Kapcsolódási hiba",
     "Copied from elsewhere": "Másolva máshonnan",
     "Copied from original": "Másolva az eredetiről",
-    "Copyright © 2015 the following Contributors:": "Copyright © 2015 az alábbi Közreműködők",
+    "Copyright © 2015 the following Contributors:": "Copyright © 2015 az alábbi Közreműködők:",
     "Delete": "Törlés",
     "Deleted": "Törölve",
     "Device ID": "Eszköz azonosító",
@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "{{device}} ({{address}}) csatlakozni szeretne. Hozzáadod az új eszközt?",
     "Devices": "Eszközök",
     "Disconnected": "Kapcsolat bontva",
+    "Discovery": "Felfedezés",
     "Documentation": "Dokumentáció",
     "Download Rate": "Letöltési sebesség",
     "Downloaded": "Letöltve",

+ 25 - 24
gui/assets/lang/lang-it.json

@@ -10,8 +10,8 @@
     "Add new folder?": "Aggiungere una nuova cartella?",
     "Address": "Indirizzo",
     "Addresses": "Indirizzi",
-    "Advanced": "Advanced",
-    "Advanced Configuration": "Advanced Configuration",
+    "Advanced": "Avanzato",
+    "Advanced Configuration": "Configurazione avanzata",
     "All Data": "Tutti i Dati",
     "Allow Anonymous Usage Reporting?": "Abilitare Statistiche Anonime di Utilizzo?",
     "Alphabetic": "Alfabetico",
@@ -19,7 +19,7 @@
     "Anonymous Usage Reporting": "Statistiche Anonime di Utilizzo",
     "Any devices configured on an introducer device will be added to this device as well.": "Qualsiasi dispositivo configurato in un introduttore verrà aggiunto anche a questo dispositivo.",
     "Automatic upgrades": "Aggiornamenti automatici",
-    "Be careful!": "Be careful!",
+    "Be careful!": "Fai attenzione!",
     "Bugs": "Bug",
     "CPU Utilization": "Utilizzo CPU",
     "Changelog": "Changelog",
@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Il dispositivo {{device}} ({{address}}) chiede di connettersi. Aggiungere il nuovo dispositivo?",
     "Devices": "Dispositivi",
     "Disconnected": "Disconnesso",
+    "Discovery": "Individuazione",
     "Documentation": "Documentazione",
     "Download Rate": "Velocità Download",
     "Downloaded": "Scaricato",
@@ -49,23 +50,23 @@
     "Edit Folder": "Modifica Cartella",
     "Editing": "Modifica di",
     "Enable UPnP": "Attiva UPnP",
-    "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 comma separated  (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Inserisci indirizzi separati da virgola (\"tcp://ip:porta\", \"tcp://host:porta\")  oppure \"dynamic\" per effettuare il rilevamento automatico dell'indirizzo.",
     "Enter ignore patterns, one per line.": "Inserisci gli schemi di esclusione, uno per riga.",
     "Error": "Errore",
     "External File Versioning": "Controllo Versione Esterno",
-    "Failed Items": "Failed Items",
+    "Failed Items": "Elementi errati",
     "File Pull Order": "Ordine di prelievo dei file",
     "File Versioning": "Controllo Versione dei File",
     "File permission bits are ignored when looking for changes. Use on FAT file systems.": "Il software evita i bit dei permessi dei file durante il controllo delle modifiche. Utilizzato nei filesystem FAT.",
     "Files are moved to .stversions folder when replaced or deleted by Syncthing.": "I file sono spostati nella certella .stversions quando vengono sostituiti o cancellati da Syncthing.",
     "Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "I file sostituiti o eliminati da Syncthing vengono datati e spostati in una cartella .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.": "I file sono protetti dalle modifiche effettuate negli altri dispositivi, ma le modifiche effettuate in questo dispositivo verranno inviate anche al resto del cluster.",
-    "Folder": "Folder",
+    "Folder": "Cartella",
     "Folder ID": "ID Cartella",
     "Folder Master": "Cartella Principale",
     "Folder Path": "Percorso Cartella",
     "Folders": "Cartelle",
-    "GUI": "GUI",
+    "GUI": "Interfaccia grafica utente",
     "GUI Authentication Password": "Password di Autenticazione dell'Utente",
     "GUI Authentication User": "Utente dell'Interfaccia Grafica",
     "GUI Listen Addresses": "Indirizzi dell'Interfaccia Grafica",
@@ -74,12 +75,12 @@
     "Global Discovery Server": "Server di Ricerca Globale",
     "Global State": "Stato Globale",
     "Help": "Aiuto",
-    "Home page": "Home page",
+    "Home page": "Pagina home",
     "Ignore": "Ignora",
     "Ignore Patterns": "Schemi Esclusione File",
     "Ignore Permissions": "Ignora Permessi",
     "Incoming Rate Limit (KiB/s)": "Limite Velocità in Ingresso (KiB/s)",
-    "Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Incorrect configuration may damage your folder contents and render Syncthing inoperable.",
+    "Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Una configurazione incorretta potrebbe danneggiare il contenuto delle cartelle e rendere Syncthing inoperativo.",
     "Introducer": "Introduttore",
     "Inversion of the given condition (i.e. do not exclude)": "Inversione della condizione indicata (ad es. non escludere)",
     "Keep Versions": "Versioni Mantenute",
@@ -93,7 +94,7 @@
     "Major Upgrade": "Aggiornamento principale",
     "Maximum Age": "Durata Massima",
     "Metadata Only": "Solo i Metadati",
-    "Minimum Free Disk Space": "Minimum Free Disk Space",
+    "Minimum Free Disk Space": "Minimo spazio libero su disco",
     "Move to top of queue": "Posiziona in cima alla coda",
     "Multi level wildcard (matches multiple directory levels)": "Metacarattere multi-livello (corrisponde alle cartelle e alle sotto-cartelle)",
     "Never": "Mai",
@@ -106,15 +107,15 @@
     "OK": "OK",
     "Off": "Disattiva",
     "Oldest First": "Prima il meno recente",
-    "Options": "Options",
-    "Out of Sync": "Out of Sync",
+    "Options": "Opzioni",
+    "Out of Sync": "Non sincronizzato",
     "Out of Sync Items": "Elementi Non Sincronizzati",
     "Outgoing Rate Limit (KiB/s)": "Limite Velocità in Uscita (KiB/s)",
     "Override Changes": "Ignora Modifiche",
     "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": "Percorso della cartella nel computer locale. Verrà creata se non esiste già. Il carattere tilde (~) può essere utilizzato come scorciatoia per",
     "Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Percorso di salvataggio delle versioni (lasciare vuoto per utilizzare la cartella predefinita .stversions in questa cartella).",
-    "Pause": "Pause",
-    "Paused": "Paused",
+    "Pause": "Pausa",
+    "Paused": "In pausa",
     "Please consult the release notes before performing a major upgrade.": "Si prega di consultare le note di rilascio prima di eseguire un aggiornamento principale.",
     "Please wait": "Attendere prego",
     "Preview": "Anteprima",
@@ -122,17 +123,17 @@
     "Quick guide to supported patterns": "Guida veloce agli schemi supportati",
     "RAM Utilization": "Utilizzo RAM",
     "Random": "Casuale",
-    "Relayed via": "Relayed via",
-    "Relays": "Relays",
+    "Relayed via": "Reindirizzato tramite",
+    "Relays": "Servers di reindirizzamento",
     "Release Notes": "Note di rilascio",
-    "Remove": "Remove",
+    "Remove": "Rimuovi",
     "Rescan": "Riscansiona",
     "Rescan All": "Riscansiona Tutto",
     "Rescan Interval": "Intervallo Scansione",
     "Restart": "Riavvia",
     "Restart Needed": "Riavvio Necessario",
     "Restarting": "Riavvio",
-    "Resume": "Resume",
+    "Resume": "Riprendi",
     "Reused": "Riutilizzato",
     "Save": "Salva",
     "Scanning": "Scansione in corso",
@@ -157,7 +158,7 @@
     "Source Code": "Codice Sorgente",
     "Staggered File Versioning": "Controllo Versione Cadenzato",
     "Start Browser": "Avvia Browser",
-    "Statistics": "Statistics",
+    "Statistics": "Statistiche",
     "Stopped": "Fermato",
     "Support": "Supporto",
     "Sync Protocol Listen Addresses": "Indirizzi del Protocollo di Sincronizzazione",
@@ -180,18 +181,18 @@
     "The folder ID must be unique.": "L'ID della cartella dev'essere unico.",
     "The folder path cannot be blank.": "Il percorso della cartella non può essere vuoto.",
     "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.": "Vengono utilizzati i seguenti intervalli temporali: per la prima ora viene mantenuta una versione ogni 30 secondi, per il primo giorno viene mantenuta una versione ogni ora, per i primi 30 giorni viene mantenuta una versione al giorno, successivamente viene mantenuta una versione ogni settimana fino al periodo massimo impostato.",
-    "The following items could not be synchronized.": "The following items could not be synchronized.",
+    "The following items could not be synchronized.": "Non è stato possibile sincronizzare i seguenti elementi",
     "The maximum age must be a number and cannot be blank.": "La durata massima dev'essere un numero e non può essere vuoto.",
     "The maximum time to keep a version (in days, set to 0 to keep versions forever).": "La durata massima di una versione (in giorni, imposta a 0 per mantenere le versioni per sempre).",
-    "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).",
+    "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "Lo spazio libero minimo su disco deve essere un numero non negativo tra 0 e 100 (inclusi)",
     "The number of days must be a number and cannot be blank.": "Il numero di giorni deve essere un numero e non può essere vuoto.",
     "The number of days to keep files in the trash can. Zero means forever.": "Il numero di giorni per conservare i file nel cestino. Zero significa per sempre.",
     "The number of old versions to keep, per file.": "Il numero di vecchie versioni da mantenere, per file.",
     "The number of versions must be a number and cannot be blank.": "Il numero di versioni dev'essere un numero e non può essere vuoto.",
     "The path cannot be blank.": "Il percorso non può essere vuoto.",
-    "The rate limit must be a non-negative number (0: no limit)": "The rate limit must be a non-negative number (0: no limit)",
+    "The rate limit must be a non-negative number (0: no limit)": "Il limite di banda deve essere un numero non negativo (da 0 a infinito)",
     "The rescan interval must be a non-negative number of seconds.": "L'intervallo di scansione deve essere un numero superiore a zero secondi.",
-    "They are retried automatically and will be synced when the error is resolved.": "They are retried automatically and will be synced when the error is resolved.",
+    "They are retried automatically and will be synced when the error is resolved.": "Verranno effettuati tentativi in automatico e verranno sincronizzati quando l'errore sarà risolto.",
     "This is a major version upgrade.": "Questo è un aggiornamento di versione principale",
     "Trash Can File Versioning": "Controllo Versione con Cestino",
     "Unknown": "Sconosciuto",
@@ -212,7 +213,7 @@
     "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.": "Quando aggiungi una nuova cartella, ricordati che gli ID vengono utilizzati per collegare le cartelle nei dispositivi. Distinguono maiuscole e minuscole e devono corrispondere esattamente su tutti i dispositivi.",
     "Yes": "Sì",
     "You must keep at least one version.": "È necessario mantenere almeno una versione.",
-    "days": "days",
+    "days": "giorni",
     "full documentation": "documentazione completa",
     "items": "elementi",
     "{%device%} wants to share folder \"{%folder%}\".": "{{device}} vuole condividere la cartella \"{{folder}}\"."

+ 1 - 0
gui/assets/lang/lang-ja.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "デバイス {{device}} ({{address}}) が接続を求めています。新しいデバイスとして追加しますか?",
     "Devices": "デバイス",
     "Disconnected": "切断中",
+    "Discovery": "Discovery",
     "Documentation": "マニュアル",
     "Download Rate": "ダウンロード速度",
     "Downloaded": "ダウンロード済",

+ 1 - 0
gui/assets/lang/lang-ko-KR.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "다른 기기 {{device}} ({{address}}) 에서 접속을 요청했습니다. 새 장치를 추가하시겠습니까?",
     "Devices": "기기",
     "Disconnected": "연결 끊김",
+    "Discovery": "Discovery",
     "Documentation": "문서",
     "Download Rate": "다운로드 속도",
     "Downloaded": "다운로드됨",

+ 15 - 14
gui/assets/lang/lang-lt.json

@@ -10,8 +10,8 @@
     "Add new folder?": "Pridėti naują aplanką?",
     "Address": "Adresas",
     "Addresses": "Adresai",
-    "Advanced": "Advanced",
-    "Advanced Configuration": "Advanced Configuration",
+    "Advanced": "Pažangus",
+    "Advanced Configuration": "Pažangus nustatymai",
     "All Data": "Visiems duomenims",
     "Allow Anonymous Usage Reporting?": "Siųsti anonimišką vartojimo ataskaitą?",
     "Alphabetic": "Abėcėlės tvarka",
@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Įrenginys {{device}} ({{address}}) nori prisijungti. Pridėti naują įrenginį?",
     "Devices": "Įrenginiai",
     "Disconnected": "Atsijungęs",
+    "Discovery": "Lokacija",
     "Documentation": "Aprašymas",
     "Download Rate": "Parsisiuntimo greitis",
     "Downloaded": "Parsisiųstas",
@@ -53,19 +54,19 @@
     "Enter ignore patterns, one per line.": "Suveskite nepaisomus šablonus, kiekvieną naujoje eilutėje.",
     "Error": "Klaida",
     "External File Versioning": "Išorinis versijų valdymas",
-    "Failed Items": "Failed Items",
+    "Failed Items": "Nepavykę siuntimai",
     "File Pull Order": "Failų siuntimo tvarka",
     "File Versioning": "Versijų valdymas",
     "File permission bits are ignored when looking for changes. Use on FAT file systems.": "Ieškant pakeitimų, į failų leidimų bitus yra nekreipiama dėmesio. Naudoti FAT failų sistemose.",
     "Files are moved to .stversions folder when replaced or deleted by Syncthing.": "Failai perkeliami į .stversions aplanką kai tampa pakeisti arba ištrinti.",
     "Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Programai Syncthing pakeičiant ar ištrinant failus, jie yra perkeliami į datomis pažymėtas versijas, aplanke .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.": "Failai apsaugoti nuo pakeitimų atliktų kituose įrenginiuose, bet pakeitimai šiame įrenginyje bus nusiųsti kitiems.",
-    "Folder": "Folder",
+    "Folder": "Aplankas",
     "Folder ID": "Aplanko ID",
     "Folder Master": "Aplanko vadovas",
     "Folder Path": "Kelias iki apkanko",
     "Folders": "Aplankai",
-    "GUI": "GUI",
+    "GUI": "Valdymo skydelis",
     "GUI Authentication Password": "Valdymo skydelio slaptažodis",
     "GUI Authentication User": "Valdymo skydelio vartotojo vardas",
     "GUI Listen Addresses": "Valdymo skydelio adresas",
@@ -74,7 +75,7 @@
     "Global Discovery Server": "Visuotinio matomumo serveris",
     "Global State": "Visuotinė būsena",
     "Help": "Pagalba",
-    "Home page": "Home page",
+    "Home page": "Pagrindinis puslapis",
     "Ignore": "Ignoruoti",
     "Ignore Patterns": "Nepaisyti šablonų",
     "Ignore Permissions": "Nepaisyti failų prieigos leidimų",
@@ -113,8 +114,8 @@
     "Override Changes": "Perrašyti pakeitimus",
     "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": "Kelias iki aplanko šiame kompiuteryje. Bus sukurtas, jei neegzistuoja. Tildės simbolis (~) gali būti naudojamas kaip trumpinys",
     "Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Kelias, kur bus saugomos versijos (palikite tuščią numatytam .stversions aplankui).",
-    "Pause": "Pause",
-    "Paused": "Paused",
+    "Pause": "Sustabdyti",
+    "Paused": "Sustabdyta",
     "Please consult the release notes before performing a major upgrade.": "Peržvelkite laidos informaciją prieš atlikdami stambų atnaujinimą.",
     "Please wait": "Prašome palaukti",
     "Preview": "Peržiūra",
@@ -122,8 +123,8 @@
     "Quick guide to supported patterns": "Trumpas leistinų šablonų vadovas",
     "RAM Utilization": "Atminties naudojimas",
     "Random": "Atsitiktinė",
-    "Relayed via": "Relayed via",
-    "Relays": "Relays",
+    "Relayed via": "Retransliuojama per",
+    "Relays": "Retransliatoriai",
     "Release Notes": "Laidos Informacija",
     "Remove": "Pašalinti",
     "Rescan": "Nuskaityti iš naujo",
@@ -132,7 +133,7 @@
     "Restart": "Perleisti",
     "Restart Needed": "Reikalingas perleidimas",
     "Restarting": "Persileidžia",
-    "Resume": "Resume",
+    "Resume": "Pratęsti",
     "Reused": "Pakartotinas",
     "Save": "Išsaugoti",
     "Scanning": "Skenuojama",
@@ -180,7 +181,7 @@
     "The folder ID must be unique.": "Aplanko ID turi būti unikalus.",
     "The folder path cannot be blank.": "Kelias iki aplanko negali būti tuščias.",
     "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.": "Šie pertraukų nustatymai naudojami: pirmą valandą versijos laikomos 30 sekundžių, pirmą dieną versijos laikomos valandą, pirmas 30 dienų versijos laikomos parą, kol nebus viršytas nustatytas maksimalus amžius.",
-    "The following items could not be synchronized.": "The following items could not be synchronized.",
+    "The following items could not be synchronized.": "Nepavyko parsiųsti šių failų",
     "The maximum age must be a number and cannot be blank.": "Maksimalus amžius  turi būti skaitmuo ir negali būti tuščias laukelis.",
     "The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Maksimalus laikas kurį bus saugojama versija (dienomis, nustatykite 0 norėdami saugoti amžinai).",
     "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).",
@@ -191,7 +192,7 @@
     "The path cannot be blank.": "Kelias negali būti tuščias.",
     "The rate limit must be a non-negative number (0: no limit)": "Srauto maksimalus greitis privalo būti ne neigiamas skaičius (0: nėra apribojimo)",
     "The rescan interval must be a non-negative number of seconds.": "Nuskaitymo dažnis negali būti neigiamas skaičius.",
-    "They are retried automatically and will be synced when the error is resolved.": "They are retried automatically and will be synced when the error is resolved.",
+    "They are retried automatically and will be synced when the error is resolved.": "Failus bus automatiškai badoma parsiųsti dar kartą kai išspręsite klaidas",
     "This is a major version upgrade.": "Tai yra stambus atnaujinimas.",
     "Trash Can File Versioning": "Šiukšliadėžės versijų valdymas",
     "Unknown": "Nežinoma",
@@ -212,7 +213,7 @@
     "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.": "Kai įvedate naują aplanką neužmirškite, kad jis bus naudojamas visuose įrenginiuose. Svarbu visur įvesti visiškai tokį pat aplanko vardą neužmirštant apie didžiąsias ir mažąsias raides.",
     "Yes": "Taip",
     "You must keep at least one version.": "Būtina saugoti bent vieną versiją.",
-    "days": "days",
+    "days": "dienos",
     "full documentation": "pilna dokumentacija",
     "items": "įrašai",
     "{%device%} wants to share folder \"{%folder%}\".": "{{device}} nori dalintis aplanku \"{{folder}}\""

+ 1 - 0
gui/assets/lang/lang-nb.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Enhet {{device}} ({{address}}) ønsker å koble seg til. Legg til ny enhet?",
     "Devices": "Enheter",
     "Disconnected": "Frakoblet",
+    "Discovery": "Discovery",
     "Documentation": "Dokumentasjon",
     "Download Rate": "Nedlastingsrate",
     "Downloaded": "Lastet ned",

+ 1 - 0
gui/assets/lang/lang-nl.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Apparaat {{device}} ({{address}}) wil verbinding maken. Dit apparaat toevoegen?",
     "Devices": "Apparaten",
     "Disconnected": "Niet verbonden",
+    "Discovery": "Zoeken",
     "Documentation": "Documentatie",
     "Download Rate": "Downloadsnelheid",
     "Downloaded": "Gedownload",

+ 1 - 0
gui/assets/lang/lang-nn.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Eininga {{device}} ({{address}}) vil kopla seg til. Vil du leggja ho til?",
     "Devices": "Einingar",
     "Disconnected": "Fråkopla",
+    "Discovery": "Discovery",
     "Documentation": "Dokumentasjon",
     "Download Rate": "Nedlastingsfart",
     "Downloaded": "Lasta ned",

+ 13 - 12
gui/assets/lang/lang-pl.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Urządzenie {{device}} ({{address}}) chce się połączyć. Zezwolić?",
     "Devices": "Urządzenia",
     "Disconnected": "Rozłączony",
+    "Discovery": "Discovery",
     "Documentation": "Dokumentacja",
     "Download Rate": "Prędkość pobierania",
     "Downloaded": "Pobrane",
@@ -49,7 +50,7 @@
     "Edit Folder": "Edytuj folder",
     "Editing": "Edytowanie",
     "Enable UPnP": "Włącz UPnP",
-    "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 comma separated  (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Wpisz oddzielone przecinkiem adresy (\"tcp://ip:port\", \"tcp://host:port\") lub \"dynamic\" by przeprowadzić automatyczne odnalezienie adresu.",
     "Enter ignore patterns, one per line.": "Wprowadz wzorce ignorowania, jeden w każdej linii.",
     "Error": "Błąd",
     "External File Versioning": "Zewnętrzne wersjonowanie pliku",
@@ -93,7 +94,7 @@
     "Major Upgrade": "Ważna aktualizacja",
     "Maximum Age": "Maksymalny wiek",
     "Metadata Only": "Tylko metadane",
-    "Minimum Free Disk Space": "Minimum Free Disk Space",
+    "Minimum Free Disk Space": "Minimum wolnego miejsca na dysku",
     "Move to top of queue": "Przenieś na początek kolejki",
     "Multi level wildcard (matches multiple directory levels)": "Wieloznaczność na poziomie katalogów i plików (uwzględnia nazwy folderów i plików)",
     "Never": "Nigdy",
@@ -107,14 +108,14 @@
     "Off": "Wyłącz",
     "Oldest First": "Najstarsze na początku",
     "Options": "Opcje",
-    "Out of Sync": "Utracono synchronizację",
+    "Out of Sync": "Niezsynchronizowane",
     "Out of Sync Items": "Niezsynchronizowane pliki",
     "Outgoing Rate Limit (KiB/s)": "Ograniczenie prędkości wysyłania (KiB/s)",
     "Override Changes": "Nadpisz zmiany",
     "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": "Ścieżka do lokalnego folderu. Zostanie utworzona jeżeli nie istnieje.\nZnak tyldy (~) może zostać użyty jako skrót do",
     "Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Ścieżka gdzie będą przechowywane wersje (pozostaw puste dla domyślnego folderu .stversions)",
-    "Pause": "Pause",
-    "Paused": "Paused",
+    "Pause": "Zatrzymaj",
+    "Paused": "Zatrzymany",
     "Please consult the release notes before performing a major upgrade.": "Zaleca się przeanalizowanie \"release notes\" przed przeprowadzeniem znaczącej aktualizacji.",
     "Please wait": "Proszę czekać",
     "Preview": "Podgląd",
@@ -122,17 +123,17 @@
     "Quick guide to supported patterns": "Krótki przewodnik po obsługiwanych wzorcach",
     "RAM Utilization": "Użycie pamięci RAM",
     "Random": "Losowo",
-    "Relayed via": "Relayed via",
-    "Relays": "Relays",
+    "Relayed via": "Przekazane przez",
+    "Relays": "Przekaźnik",
     "Release Notes": "Informacje o wydaniu",
-    "Remove": "Remove",
+    "Remove": "Usuń",
     "Rescan": "Skanuj ponownie",
     "Rescan All": "Skanuj wszystko ponownie",
     "Rescan Interval": "Interwał skanowania",
     "Restart": "Uruchom ponownie",
     "Restart Needed": "Wymagane ponowne uruchomienie",
     "Restarting": "Uruchamianie ponowne",
-    "Resume": "Resume",
+    "Resume": "Wznów",
     "Reused": "Ponownie użyte",
     "Save": "Zapisz",
     "Scanning": "Skanowanie",
@@ -183,13 +184,13 @@
     "The following items could not be synchronized.": "Następujące elementy nie mogły zostać zsynchronizowane.",
     "The maximum age must be a number and cannot be blank.": "Maksymalny wiek musi być liczbą i nie może być pusty.",
     "The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Maksymalny czas zachowania wersji (w dniach, ustaw 0 aby zachować na zawsze)",
-    "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).",
+    "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "Procent minimalnej ilości wolnego miejsca na dysku musi być nieujemną liczbą od 0 do 100 (włącznie).",
     "The number of days must be a number and cannot be blank.": "Ilość dni musi być dodatnia.",
     "The number of days to keep files in the trash can. Zero means forever.": "Liczba dni przez które pliki trzymane będą w koszu. Zero oznacza brak ograniczeń.",
     "The number of old versions to keep, per file.": "Liczba wersji pliku do zachowania.",
     "The number of versions must be a number and cannot be blank.": "Liczba wersji musi być liczbą i nie może być pusta.",
     "The path cannot be blank.": "Ścieżka nie może być pusta.",
-    "The rate limit must be a non-negative number (0: no limit)": "The rate limit must be a non-negative number (0: no limit)",
+    "The rate limit must be a non-negative number (0: no limit)": "Ograniczenie prędkości powinno być nieujemną liczbą całkowitą (0: brak ograniczeń)",
     "The rescan interval must be a non-negative number of seconds.": "Interwał skanowania musi być niezerową liczbą sekund.",
     "They are retried automatically and will be synced when the error is resolved.": "Ponowne próby zachodzą automatycznie, synchronizacja nastąpi po usunięciu usterki.",
     "This is a major version upgrade.": "To jest ważna aktualizacja",
@@ -212,7 +213,7 @@
     "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.": "Przy dodawaniu nowego folderu, pamiętaj, że ID użyte jest do łączenia folderów pomiędzy urządzeniami. Wielkość liter ciągu ma znaczenie musi zgadzać się na wszystkich urządzeniach.",
     "Yes": "Tak",
     "You must keep at least one version.": "Musisz posiadać przynajmniej jedną wersję",
-    "days": "days",
+    "days": "dni",
     "full documentation": "pełna dokumentacja",
     "items": "pozycji",
     "{%device%} wants to share folder \"{%folder%}\".": "{{device}} chce udostępnić folder \"{{folder}}\""

+ 2 - 1
gui/assets/lang/lang-pt-BR.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "O dispositivo {{device}} ({{address}}) quer se conectar. Adicionar novo dispositivo?",
     "Devices": "Dispositivos",
     "Disconnected": "Desconectado",
+    "Discovery": "Descoberta",
     "Documentation": "Documentação",
     "Download Rate": "Velocidade de recepção",
     "Downloaded": "Recebido",
@@ -197,7 +198,7 @@
     "Unknown": "Desconhecida",
     "Unshared": "Não compartilhada",
     "Unused": "Não utilizado",
-    "Up to Date": "Sincronizada",
+    "Up to Date": "Em sincronia",
     "Updated": "Atualizado",
     "Upgrade": "Atualização",
     "Upgrade To {%version%}": "Atualizar para {{version}}",

+ 1 - 0
gui/assets/lang/lang-pt-PT.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "O dispositivo {{device}} ({{address}}) quer conectar-se. Adiciono este novo dispositivo?",
     "Devices": "Dispositivos",
     "Disconnected": "Desconectado",
+    "Discovery": "Busca",
     "Documentation": "Documentação",
     "Download Rate": "Velocidade de recepção",
     "Downloaded": "Recebido",

+ 1 - 0
gui/assets/lang/lang-ro-RO.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Dispozitivul{{dispoztiv}}({{adresă}})vrea sa se conecteze.Adaug un dispozitiv nou?",
     "Devices": "Dispozitiv",
     "Disconnected": "Deconectat",
+    "Discovery": "Discovery",
     "Documentation": "Documentaţie",
     "Download Rate": "Viteză de Descărcare",
     "Downloaded": "Descărcat",

+ 1 - 0
gui/assets/lang/lang-ru.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Устройство {{device}} ({{address}}) хочет подключиться. Добавить новое устройство?",
     "Devices": "Устройства",
     "Disconnected": "Нет соединения",
+    "Discovery": "Обнаружение",
     "Documentation": "Документация",
     "Download Rate": "Скорость загрузки",
     "Downloaded": "Загружено",

+ 33 - 32
gui/assets/lang/lang-sv.json

@@ -1,5 +1,5 @@
 {
-    "A negative number of days doesn't make sense.": "A negative number of days doesn't make sense.",
+    "A negative number of days doesn't make sense.": "Negativt antal dagar är inte troligt.",
     "A new major version may not be compatible with previous versions.": "En ny huvudversion kan eventuellt vara inkompatibel med tidigare versioner.",
     "API Key": "API-nyckel",
     "About": "Om",
@@ -10,8 +10,8 @@
     "Add new folder?": "Lägg till katalog?",
     "Address": "Adress",
     "Addresses": "Adresser",
-    "Advanced": "Advanced",
-    "Advanced Configuration": "Advanced Configuration",
+    "Advanced": "Avancerat",
+    "Advanced Configuration": "Avancerad konfiguration",
     "All Data": "All data",
     "Allow Anonymous Usage Reporting?": "Tillåt anonym användarstatistik?",
     "Alphabetic": "Alfabetisk",
@@ -19,11 +19,11 @@
     "Anonymous Usage Reporting": "Anonym användarstatistik",
     "Any devices configured on an introducer device will be added to this device as well.": "Enheter konfigurerade på en introduktörsenhet kommer också att läggas till den här enheten.",
     "Automatic upgrades": "Automatisk uppgradering",
-    "Be careful!": "Be careful!",
+    "Be careful!": "Var aktsam!",
     "Bugs": "Buggar",
     "CPU Utilization": "CPU-användning",
     "Changelog": "Changelog",
-    "Clean out after": "Clean out after",
+    "Clean out after": "Rensa efteråt",
     "Close": "Stäng",
     "Command": "Kommando",
     "Comment, when used at the start of a line": "Kommentar, vid början av en rad.",
@@ -33,13 +33,14 @@
     "Copied from original": "Oförändrat",
     "Copyright © 2015 the following Contributors:": "Copyright © 2015 följande medverkande:",
     "Delete": "Radera",
-    "Deleted": "Deleted",
+    "Deleted": "Borttaget",
     "Device ID": "Enhets-ID",
     "Device Identification": "Enhetsidentifikation",
     "Device Name": "Enhetsnamn",
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Enheten {{device}} ({{address}}) vill ansluta. Lägg till ny enhet?",
     "Devices": "Enheter",
     "Disconnected": "Ej ansluten",
+    "Discovery": "Uppslagning",
     "Documentation": "Dokumentation",
     "Download Rate": "Nedladdningshastighet",
     "Downloaded": "Nerladdat",
@@ -49,18 +50,18 @@
     "Edit Folder": "Redigera katalog",
     "Editing": "Redigerar",
     "Enable UPnP": "Använd UPnP",
-    "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 comma separated  (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "Ange kommaseparerade (\"tcp://ip:port\", \"tcp://host:port\")-adresser eller ordet \"dynamic\" för att använda automatisk uppslagning.",
     "Enter ignore patterns, one per line.": "Ange filmönster, ett per rad.",
     "Error": "Fel",
     "External File Versioning": "Extern versionshantering",
-    "Failed Items": "Failed Items",
+    "Failed Items": "Misslyckade filer",
     "File Pull Order": "Hämtningsprioritering av filer",
     "File Versioning": "Versionshantering",
     "File permission bits are ignored when looking for changes. Use on FAT file systems.": "Filrättigheter ignoreras vid sökning efter förändringar. Används på FAT-filsystem.",
-    "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 .stversions folder when replaced or deleted by Syncthing.": "Filer flyttas till katalogen .stversions om de ersätts eller raderas av Syncthing.",
     "Files are moved to date stamped versions in a .stversions folder when replaced or deleted by Syncthing.": "Filer flyttas till datummärkta versioner i en .stversions-mapp när de ersatts eller raderats av 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 skyddas från ändringar gjorda på andra enheter, men ändringar som görs på den här noden skickas till de andra klustermedlemmarna.",
-    "Folder": "Folder",
+    "Folder": "Katalog",
     "Folder ID": "Katalog-ID",
     "Folder Master": "Huvudlagring",
     "Folder Path": "Sökväg",
@@ -74,12 +75,12 @@
     "Global Discovery Server": "Global uppslagningsserver",
     "Global State": "Global status",
     "Help": "Hjälp",
-    "Home page": "Home page",
+    "Home page": "Hemsida",
     "Ignore": "Ignorera",
     "Ignore Patterns": "Ignorerade filmönster",
     "Ignore Permissions": "Ignorera filrättigheter",
     "Incoming Rate Limit (KiB/s)": "Max nedladdningshastighet (KiB/s)",
-    "Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Incorrect configuration may damage your folder contents and render Syncthing inoperable.",
+    "Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Inkorrekt konfiguration kan skada innehållet i katalogen and få Syncthing att sluta fungera.",
     "Introducer": "introduktör",
     "Inversion of the given condition (i.e. do not exclude)": "Vänder på villkoret, d.v.s. exkluderar inte.",
     "Keep Versions": "Behåll versioner",
@@ -89,11 +90,11 @@
     "Later": "Senare",
     "Local Discovery": "Lokal uppslagning",
     "Local State": "Lokal status",
-    "Local State (Total)": "Local State (Total)",
+    "Local State (Total)": "Lokal status (Total)",
     "Major Upgrade": "Stor uppgradering",
     "Maximum Age": "Högsta åldersgräns",
     "Metadata Only": "Endast metadata",
-    "Minimum Free Disk Space": "Minimum Free Disk Space",
+    "Minimum Free Disk Space": "Minimum ledigt diskutrymme",
     "Move to top of queue": "Flytta till överst i kön",
     "Multi level wildcard (matches multiple directory levels)": "Jokertecken som representerar noll eller fler godtyckliga tecken, även över kataloggränser.",
     "Never": "Aldrig",
@@ -106,15 +107,15 @@
     "OK": "OK",
     "Off": "Av",
     "Oldest First": "Äldst först",
-    "Options": "Options",
-    "Out of Sync": "Out of Sync",
+    "Options": "Alternativ",
+    "Out of Sync": "Osynkad",
     "Out of Sync Items": "Osynkade poster",
     "Outgoing Rate Limit (KiB/s)": "Max uppladdningshastighet (KiB/s)",
     "Override Changes": "Skriv över ändringar",
     "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": "Sökväg till katalogen på din dator. Kommer att skapas om det inte finns. Tecknet tilde (~) kan användas som en genväg för",
     "Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Sökväg där versioner sparas (lämna tomt för att använda .stversions i den ordinarie katalogen).",
-    "Pause": "Pause",
-    "Paused": "Paused",
+    "Pause": "Paus",
+    "Paused": "Pausad",
     "Please consult the release notes before performing a major upgrade.": "Läs igenom versionsnyheterna innan den stora uppgraderingen.",
     "Please wait": "Var god vänta",
     "Preview": "Förhandsgranska",
@@ -122,17 +123,17 @@
     "Quick guide to supported patterns": "Snabb guide till filmönster som stöds",
     "RAM Utilization": "Minnesanvändning",
     "Random": "Slumpmässig",
-    "Relayed via": "Relayed via",
-    "Relays": "Relays",
+    "Relayed via": "Vidarbefordras via",
+    "Relays": "Vidarbefordringar",
     "Release Notes": "versionsnyheter",
-    "Remove": "Remove",
+    "Remove": "Ta bort",
     "Rescan": "Uppdatera",
     "Rescan All": "Uppdatera alla",
     "Rescan Interval": "Uppdateringsintervall",
     "Restart": "Starta om",
     "Restart Needed": "Omstart behövs",
     "Restarting": "Startar om",
-    "Resume": "Resume",
+    "Resume": "Återuppta",
     "Reused": "Återanvänt",
     "Save": "Spara",
     "Scanning": "Uppdaterar",
@@ -157,7 +158,7 @@
     "Source Code": "Källkod",
     "Staggered File Versioning": "Versionshantering i intervall",
     "Start Browser": "Starta browser",
-    "Statistics": "Statistics",
+    "Statistics": "Statistik",
     "Stopped": "Stoppad",
     "Support": "Support",
     "Sync Protocol Listen Addresses": "Address för inkommande anslutningar",
@@ -180,25 +181,25 @@
     "The folder ID must be unique.": "Katalog-ID:t måste vara unikt.",
     "The folder path cannot be blank.": "Ange en sökväg.",
     "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.": "De följande intervallen används: varje 30 sekunder under den första timmen; varje timme under den första dagen; varje dag för de första 30 dagarna; varje vecka tills den maximala åldersgränsen uppnås.",
-    "The following items could not be synchronized.": "The following items could not be synchronized.",
+    "The following items could not be synchronized.": "Följande filer kunde inte synkroniseras.",
     "The maximum age must be a number and cannot be blank.": "Åldersgränsen måste vara ett tal och kan inte lämnas tomt.",
     "The maximum time to keep a version (in days, set to 0 to keep versions forever).": "Den längsta tiden att behålla en version (i dagar, sätt till 0 för att behålla versioner för evigt).",
-    "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "The minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).",
-    "The number of days must be a number and cannot be blank.": "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 minimum free disk space percentage must be a non-negative number between 0 and 100 (inclusive).": "Minimum ledigt diskutrymme i procent måste vara en icke negativ siffra mellan 0 och 100 (inklusive).",
+    "The number of days must be a number and cannot be blank.": "Antalet dagar måste vara en siffra och får inte vara tomt.",
+    "The number of days to keep files in the trash can. Zero means forever.": "Antal dagar som filer ligger kvar i papperskorgen. Noll betyder för alltid.",
     "The number of old versions to keep, per file.": "Antalet gamla versioner som ska behållas, per fil.",
     "The number of versions must be a number and cannot be blank.": "Antalet versioner måste vara ett nummer och kan inte lämnas tomt.",
     "The path cannot be blank.": "Ange en sökväg",
-    "The rate limit must be a non-negative number (0: no limit)": "The rate limit must be a non-negative number (0: no limit)",
+    "The rate limit must be a non-negative number (0: no limit)": "Frekvensgränsen måste vara ett icke-negativt tal (0: ingen gräns)",
     "The rescan interval must be a non-negative number of seconds.": "Förnyelseintervallet måste vara ett positivt antal sekunder",
-    "They are retried automatically and will be synced when the error is resolved.": "They are retried automatically and will be synced when the error is resolved.",
+    "They are retried automatically and will be synced when the error is resolved.": "De omprövas automatiskt och kommer att synkroniseras när felet är löst.",
     "This is a major version upgrade.": "Det här är en stor uppgradering.",
-    "Trash Can File Versioning": "Trash Can File Versioning",
+    "Trash Can File Versioning": "Versionshantering på filer i papperskorgen",
     "Unknown": "Okänt",
     "Unshared": "Inte delad",
     "Unused": "Oanvänd",
     "Up to Date": "Helt uppdaterad",
-    "Updated": "Updated",
+    "Updated": "Uppdaterad",
     "Upgrade": "Uppgradering",
     "Upgrade To {%version%}": "Uppgradera till {{version}}",
     "Upgrading": "Uppgraderar",
@@ -212,7 +213,7 @@
     "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 du lägger till ny katalog, tänk på att katalog-ID:t knyter ihop katalogen mellan olika noder. De måste vara exakt desamma mellan noder och stora eller små bokstäver har betydelse.",
     "Yes": "Ja",
     "You must keep at least one version.": "Du måste behålla åtminstone en version.",
-    "days": "days",
+    "days": "dagar",
     "full documentation": "fullständig dokumentation",
     "items": "poster",
     "{%device%} wants to share folder \"{%folder%}\".": "{{device}} vill dela katalogen \"{{folder}}\"."

+ 2 - 1
gui/assets/lang/lang-uk.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "Пристрій {{device}} ({{address}}) намагається під’єднатися. Додати новий пристрій?",
     "Devices": "Пристрої",
     "Disconnected": "З’єднання відсутнє",
+    "Discovery": "Discovery",
     "Documentation": "Документація",
     "Download Rate": "Швидкість завантаження",
     "Downloaded": "Завантажено",
@@ -212,7 +213,7 @@
     "When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "Коли додаєте нову директорію, пам’ятайте, що ID цієї директорії використовується для того, щоб зв’язувати директорії разом між вузлами. Назви є чутливими до регістра та повинні співпадати точно між усіма вузлами.",
     "Yes": "Так",
     "You must keep at least one version.": "Ви повинні зберігати щонайменше одну версію.",
-    "days": "days",
+    "days": "днів",
     "full documentation": "повна документація",
     "items": "елементи",
     "{%device%} wants to share folder \"{%folder%}\".": "{{device}} хоче поділитися директорією \"{{folder}}\"."

+ 1 - 0
gui/assets/lang/lang-zh-CN.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "设备:{{device}} 地址:({{address}}) 请求连接。是否添加新设备?",
     "Devices": "设备",
     "Disconnected": "连接已断开",
+    "Discovery": "Discovery",
     "Documentation": "文档",
     "Download Rate": "下载速度",
     "Downloaded": "已下载",

+ 1 - 0
gui/assets/lang/lang-zh-TW.json

@@ -40,6 +40,7 @@
     "Device {%device%} ({%address%}) wants to connect. Add new device?": "裝置 {{device}} ({{address}}) 想要連線。要新增裝置嗎?",
     "Devices": "裝置",
     "Disconnected": "斷線",
+    "Discovery": "Discovery",
     "Documentation": "說明文件",
     "Download Rate": "下載速率",
     "Downloaded": "已下載",

File diff suppressed because it is too large
+ 1 - 1
lib/auto/gui.files.go


+ 1357 - 0
man/syncthing-bep.7

@@ -0,0 +1,1357 @@
+.\" Man page generated from reStructuredText.
+.
+.TH "SYNCTHING-BEP" "7" "October 20, 2015" "v0.11" "Syncthing"
+.SH NAME
+syncthing-bep \- Block Exchange Protocol v1
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH INTRODUCTION AND DEFINITIONS
+.sp
+BEP is used between two or more \fIdevices\fP thus forming a \fIcluster\fP\&. Each
+device has one or more \fIfolders\fP of files described by the \fIlocal
+model\fP, containing metadata and block hashes. The local model is sent to
+the other devices in the cluster. The union of all files in the local
+models, with files selected for highest change version, forms the
+\fIglobal model\fP\&. Each device strives to get its folders in sync with the
+global model by requesting missing or outdated blocks from the other
+devices in the cluster.
+.sp
+File data is described and transferred in units of \fIblocks\fP, each being
+128 KiB (131072 bytes) in size.
+.sp
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+document are to be interpreted as described in RFC 2119.
+.SH TRANSPORT AND AUTHENTICATION
+.sp
+BEP is deployed as the highest level in a protocol stack, with the lower
+level protocols providing encryption and authentication.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
+|   Block Exchange Protocol   |
+|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
+| Encryption & Auth (TLS 1.2) |
+|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
+|             TCP             |
+|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
+v             ...             v
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+The encryption and authentication layer SHALL use TLS 1.2 or a higher
+revision. A strong cipher suite SHALL be used, with "strong cipher
+suite" being defined as being without known weaknesses and providing
+Perfect Forward Secrecy (PFS). Examples of strong cipher suites are
+given at the end of this document. This is not to be taken as an
+exhaustive list of allowed cipher suites but represents best practices
+at the time of writing.
+.sp
+The exact nature of the authentication is up to the application, however
+it SHALL be based on the TLS certificate presented at the start of the
+connection. Possibilities include certificates signed by a common
+trusted CA, preshared certificates, preshared certificate fingerprints
+or certificate pinning combined with some out of band first
+verification. The reference implementation uses preshared certificate
+fingerprints (SHA\-256) referred to as "Device IDs".
+.sp
+There is no required order or synchronization among BEP messages except
+as noted per message type \- any message type may be sent at any time and
+the sender need not await a response to one message before sending
+another. Responses MUST however be sent in the same order as the
+requests are received.
+.sp
+The underlying transport protocol MUST be TCP.
+.SH MESSAGES
+.sp
+Every message starts with one 32 bit word indicating the message
+version, type and ID, followed by the length of the message. The header
+is in network byte order, i.e. big endian.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|  Ver  |       Message ID      |      Type     |   Reserved  |C|
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                            Length                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+For BEP v1 the Version field is set to zero. Future versions with
+incompatible message formats will increment the Version field. A message
+with an unknown version is a protocol error and MUST result in the
+connection being terminated. A client supporting multiple versions MAY
+retry with a different protocol version upon disconnection.
+.sp
+The Message ID is set to a unique value for each transmitted request
+message. In response messages it is set to the Message ID of the
+corresponding request message. The uniqueness requirement implies that
+no more than 4096 messages may be outstanding at any given moment. The
+ordering requirement implies that a response to a given message ID also
+means that all preceding messages have been received, specifically those
+which do not otherwise demand a response. Hence their message ID:s may
+be reused.
+.sp
+The Type field indicates the type of data following the message header
+and is one of the integers defined below. A message of an unknown type
+is a protocol error and MUST result in the connection being terminated.
+.sp
+The Compression bit "C" indicates the compression used for the message.
+.sp
+For C=1:
+.INDENT 0.0
+.IP \(bu 2
+The Length field contains the length, in bytes, of the compressed
+message data plus a four byte uncompressed length field.
+.IP \(bu 2
+The compressed message data is preceeded by a 32 bit field denoting
+the length of the uncompressed message.
+.IP \(bu 2
+The message data is compressed using the LZ4 format and algorithm
+described in \fI\%http://www.lz4.org/\fP\&.
+.UNINDENT
+.sp
+For C=0:
+.INDENT 0.0
+.IP \(bu 2
+The Length field contains the length, in bytes, of the uncompressed
+message data.
+.IP \(bu 2
+The message is not compressed.
+.UNINDENT
+.sp
+All data within the message (post decompression, if compression is in
+use) MUST be in XDR (RFC 1014) encoding. All fields shorter than 32 bits
+and all variable length data MUST be padded to a multiple of 32 bits.
+The actual data types in use by BEP, in XDR naming convention, are the
+following:
+.INDENT 0.0
+.TP
+.B (unsigned) int
+(unsigned) 32 bit integer
+.TP
+.B (unsigned) hyper
+(unsigned) 64 bit integer
+.TP
+.B opaque<>
+variable length opaque data
+.TP
+.B string<>
+variable length string
+.UNINDENT
+.sp
+The transmitted length of string and opaque data is the length of actual
+data, excluding any added padding. The encoding of opaque<> and string<>
+are identical, the distinction being solely one of interpretation.
+Opaque data should not be interpreted but can be compared bytewise to
+other opaque data. All strings MUST use the Unicode UTF\-8 encoding,
+normalization form C.
+.SS Cluster Config (Type = 0)
+.sp
+This informational message provides information about the cluster
+configuration as it pertains to the current connection. A Cluster Config
+message MUST be the first message sent on a BEP connection. Additional
+Cluster Config messages MUST NOT be sent after the initial exchange.
+.SS Graphical Representation
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+ClusterConfigMessage Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                     Length of ClientName                      |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                 ClientName (variable length)                  \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                    Length of ClientVersion                    |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                ClientVersion (variable length)                \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Folders                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Folder Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Options                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Option Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+Folder Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                         Length of ID                          |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                     ID (variable length)                      \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Devices                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Device Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Flags                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Options                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Option Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+Device Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                         Length of ID                          |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                     ID (variable length)                      \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                                                               |
++                  Max Local Version (64 bits)                  +
+|                                                               |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Flags                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Options                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Option Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+Option Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                         Length of Key                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                     Key (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Length of Value                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                    Value (variable length)                    \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Fields
+.sp
+The ClientName and ClientVersion fields identify the implementation. The
+values SHOULD be simple strings identifying the implementation name, as
+a user would expect to see it, and the version string in the same
+manner. An example ClientName is "syncthing" and an example
+ClientVersion is "v0.7.2". The ClientVersion field SHOULD follow the
+patterns laid out in the \fI\%Semantic Versioning\fP <\fBhttp://semver.org/\fP>
+standard.
+.sp
+The Folders field lists all folders that will be synchronized over the
+current connection. Each folder has a list of participating Devices,
+Flags and Options. Currently no flags are defined so the field MUST be
+set to all zeroes. The Options field is implementation specific and
+described below.
+.sp
+The Device ID is a 32 byte number that uniquely identifies the device.
+For instance, the reference implementation uses the SHA\-256 of the
+device X.509 certificate.
+.sp
+Each device has an associated Flags field to indicate the sharing mode
+of that device for the folder in question. See the discussion on Sharing
+Modes. The Device Flags field contains the following single bit flags:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|          Reserved         |Pri|          Reserved       |I|R|T|
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.INDENT 0.0
+.TP
+.B Bit 31 ("T", Trusted)
+is set for devices that participate in trusted
+mode.
+.TP
+.B Bit 30 ("R", Read Only)
+is set for devices that participate in read
+only mode.
+.TP
+.B Bit 29 ("I", Introducer)
+is set for devices that are trusted as
+cluster introducers.
+.TP
+.B Bits 16 through 28
+are reserved and MUST be set to zero.
+.TP
+.B Bits 14\-15 ("Pri)
+indicate the device\(aqs upload priority for this
+folder. Possible values are:
+.INDENT 7.0
+.TP
+.B 00
+The default. Normal priority.
+.TP
+.B 01
+High priority. Other devices SHOULD favour requesting files
+from this device over devices with normal or low priority.
+.TP
+.B 10
+Low priority. Other devices SHOULD avoid requesting files from
+this device when they are available from other devices.
+.TP
+.B 11
+Sharing disabled. Other devices SHOULD NOT request files from
+this device.
+.UNINDENT
+.TP
+.B Bits 0 through 14
+are reserved and MUST be set to zero.
+.UNINDENT
+.sp
+Exactly one of the T and R bits MUST be set.
+.sp
+The per device Max Local Version field contains the highest local file
+version number of the files already known to be in the index sent by
+this device. If nothing is known about the index of a given device, this
+field MUST be set to zero. When receiving a Cluster Config message with
+a non\-zero Max Local Version for the local device ID, a device MAY elect
+to send an Index Update message containing only files with higher local
+version numbers in place of the initial Index message.
+.sp
+The Options field contain option values to be used in an implementation
+specific manner. The options list is conceptually a map of Key => Value
+items, although it is transmitted in the form of a list of (Key, Value)
+pairs, both of string type. Key ID:s are implementation specific. An
+implementation MUST ignore unknown keys. An implementation MAY impose
+limits on the length keys and values. The options list may be used to
+inform devices of relevant local configuration options such as rate
+limiting or make recommendations about request parallelism, device
+priorities, etc. An empty options list is valid for devices not having
+any such information to share. Devices MAY NOT make any assumptions
+about peers acting in a specific manner as a result of sent options.
+.SS XDR
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+struct ClusterConfigMessage {
+    string ClientName<>;
+    string ClientVersion<>;
+    Folder Folders<>;
+    Option Options<>;
+}
+
+struct Folder {
+    string ID<64>;
+    Device Devices<>;
+    unsigned int Flags;
+    Option Options<64>;
+}
+
+struct Device {
+    opaque ID<32>;
+    hyper MaxLocalVersion;
+    unsigned int Flags;
+    Option Options<64>;
+}
+
+struct Option {
+    string Key<>;
+    string Value<>;
+}
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Index (Type = 1) and Index Update (Type = 6)
+.sp
+The Index and Index Update messages define the contents of the senders
+folder. An Index message represents the full contents of the folder and
+thus supersedes any previous index. An Index Update amends an existing
+index with new information, not affecting any entries not included in
+the message. An Index Update MAY NOT be sent unless preceded by an
+Index, unless a non\-zero Max Local Version has been announced for the
+given folder by the peer device.
+.SS Graphical Representation
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+IndexMessage Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Length of Folder                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                   Folder (variable length)                    \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Number of Files                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e               Zero or more FileInfo Structures                \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Flags                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Options                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Option Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+FileInfo Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Length of Name                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                    Name (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Flags                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                                                               |
++                      Modified (64 bits)                       +
+|                                                               |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                       Vector Structure                        \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                                                               |
++                    Local Version (64 bits)                    +
+|                                                               |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Blocks                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e               Zero or more BlockInfo Structures               \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+Vector Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                      Number of Counters                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Counter Structures                \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+Counter Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                                                               |
++                          ID (64 bits)                         +
+|                                                               |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                                                               |
++                        Value (64 bits)                        +
+|                                                               |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+
+BlockInfo Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Size                              |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Length of Hash                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                    Hash (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Fields
+.sp
+The Folder field identifies the folder that the index message pertains
+to. For single folder implementations the device MUST use the string
+"default".
+.sp
+The Name is the file name path relative to the folder root. Like all
+strings in BEP, the Name is always in UTF\-8 NFC regardless of operating
+system or file system specific conventions. The Name field uses the
+slash character ("/") as path separator, regardless of the
+implementation\(aqs operating system conventions. The combination of Folder
+and Name uniquely identifies each file in a cluster.
+.sp
+The Version field is a version vector describing the updates performed
+to file by all members in the cluster. Each counter in the version
+vector is an ID\-Value tuple. The ID is used the first 64 bits of the
+device ID. The Value is a simple incrementing counter, starting at zero.
+The combination of Folder, Name and Version uniquely identifies the
+contents of a file at a given point in time.
+.sp
+The Local Version field is the value of a device local monotonic clock
+at the time of last local database update to a file. The clock ticks on
+every local database update.
+.sp
+The Flags field (per FileInfo) is made up of the following single bit
+flags:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|              Reserved       |U|S|P|I|D|   Unix Perm. & Mode   |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.INDENT 0.0
+.TP
+.B The lower 12 bits
+hold the common Unix permission and mode bits. An
+implementation MAY ignore or interpret these as is suitable on the
+host operating system.
+.TP
+.B Bit 19 ("D")
+is set when the file has been deleted. The block list
+SHALL be of length zero and the modification time indicates the time
+of deletion or, if the time of deletion is not reliably determinable,
+the last known modification time.
+.TP
+.B Bit 18 ("I")
+is set when the file is invalid and unavailable for
+synchronization. A peer MAY set this bit to indicate that it can
+temporarily not serve data for the file.
+.TP
+.B Bit 17 ("P")
+is set when there is no permission information for the
+file. This is the case when it originates on a non\-permission\-
+supporting file system. Changes to only permission bits SHOULD be
+disregarded on files with this bit set. The permissions bits MUST be
+set to the octal value 0666.
+.TP
+.B Bit 16 ("S")
+is set when the file is a symbolic link. The block list
+SHALL be of one or more blocks since the target of the symlink is
+stored within the blocks of the file.
+.TP
+.B Bit 15 ("U")
+is set when the symbolic links target does not exist. On
+systems where symbolic links have types, this bit being means that
+the default file symlink SHALL be used. If this bit is unset bit 19
+will decide the type of symlink to be created.
+.TP
+.B Bit 0 through 14
+are reserved for future use and SHALL be set to
+zero.
+.UNINDENT
+.sp
+The hash algorithm is implied by the Hash length. Currently, the hash
+MUST be 32 bytes long and computed by SHA256.
+.sp
+The Modified time is expressed as the number of seconds since the Unix
+Epoch (1970\-01\-01 00:00:00 UTC).
+.sp
+In the rare occasion that a file is simultaneously and independently
+modified by two devices in the same cluster and thus end up on the same
+Version number after modification, the Modified field is used as a tie
+breaker (higher being better), followed by the hash values of the file
+blocks (lower being better).
+.sp
+The Blocks list contains the size and hash for each block in the file.
+Each block represents a 128 KiB slice of the file, except for the last
+block which may represent a smaller amount of data.
+.sp
+The Flags field (in IndexMessage) is reserved for future use and MUST
+currently be set to zero. The Options list is implementation defined and
+as described in the ClusterConfig message section.
+.SS XDR
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+struct IndexMessage {
+    string Folder<>;
+    FileInfo Files<>;
+    unsigned int Flags;
+    Option Options<64>;
+}
+
+struct FileInfo {
+    string Name<8192>;
+    unsigned int Flags;
+    hyper Modified;
+    Vector Version;
+    hyper LocalVersion;
+    BlockInfo Blocks<>;
+}
+
+struct Vector {
+    Counter Counters<>
+}
+
+struct Counter {
+    unsigned hyper ID
+    unsigned hyper Value
+}
+
+struct BlockInfo {
+    unsigned int Size;
+    opaque Hash<>;
+}
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Request (Type = 2)
+.sp
+The Request message expresses the desire to receive a data block
+corresponding to a part of a certain file in the peer\(aqs folder.
+.SS Graphical Representation
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+RequestMessage Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Length of Folder                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                   Folder (variable length)                    \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Length of Name                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                    Name (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                                                               |
++                       Offset (64 bits)                        +
+|                                                               |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Size                              |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Length of Hash                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                    Hash (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Flags                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Options                       |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Option Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Fields
+.sp
+The Folder and Name fields are as documented for the Index message. The
+Offset and Size fields specify the region of the file to be transferred.
+This SHOULD equate to exactly one block as seen in an Index message.
+.sp
+The Hash field MAY be set to the expected hash value of the block, or
+may be left empty (zero length). If set, the other device SHOULD ensure
+that the transmitted block matches the requested hash. The other device
+MAY reuse a block from a different file and offset having the same size
+and hash, if one exists.
+.sp
+The Flags field is reserved for future use and MUST currently be set to
+zero. The Options list is implementation defined and as described in the
+ClusterConfig message section.
+.SS XDR
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+struct RequestMessage {
+    string Folder<64>;
+    string Name<8192>;
+    hyper Offset;
+    int Size;
+    opaque Hash<64>;
+    unsigned int Flags;
+    Option Options<64>;
+}
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Response (Type = 3)
+.sp
+The Response message is sent in response to a Request message.
+.SS Graphical Representation
+.sp
+ResponseMessage Structure:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                        Length of Data                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                    Data (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Code                              |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Fields
+.sp
+The Data field contains either a full 128 KiB block, a shorter block in
+the case of the last block in a file, or is empty (zero length) if the
+requested block is not available.
+.sp
+The Code field contains an error code describing the reason a Request
+could not be fulfilled, in the case where a zero length Data was
+returned. The following values are defined:
+.INDENT 0.0
+.TP
+.B 0
+No Error (Data should be present)
+.TP
+.B 1
+Generic Error
+.TP
+.B 2
+No Such File (the requested file does not exist, or the offset is
+outside the acceptable range for the file)
+.TP
+.B 3
+Invalid (file exists but has invalid bit set or is otherwise
+unavailable)
+.UNINDENT
+.SS XDR
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+struct ResponseMessage {
+    opaque Data<>;
+    int Code;
+}
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Ping (Type = 4)
+.sp
+The Ping message is used to determine that a connection is alive, and to
+keep connections alive through state tracking network elements such as
+firewalls and NAT gateways. The Ping message has no contents.
+.SS Pong (Type = 5)
+.sp
+The Pong message is sent in response to a Ping. The Pong message has no
+contents, but copies the Message ID from the Ping.
+.SS Close (Type = 7)
+.sp
+The Close message MAY be sent to indicate that the connection will be
+torn down due to an error condition. A Close message MUST NOT be
+followed by further messages.
+.SS Graphical Representation
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+CloseMessage Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Length of Reason                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                   Reason (variable length)                    \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Code                              |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Fields
+.sp
+The Reason field contains a human description of the error condition,
+suitable for consumption by a human. The Code field is for a machine
+readable error code. Codes are reserved for future use and MUST
+currently be set to zero.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+struct CloseMessage {
+    string Reason<1024>;
+    int Code;
+}
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SH SHARING MODES
+.SS Trusted
+.sp
+Trusted mode is the default sharing mode. Updates are exchanged in both
+directions.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
++\-\-\-\-\-\-\-\-\-\-\-\-+     Updates      /\-\-\-\-\-\-\-\-\-\e
+|            |  \-\-\-\-\-\-\-\-\-\-\->   /           \e
+|   Device   |                 |  Cluster  |
+|            |  <\-\-\-\-\-\-\-\-\-\-\-   \e           /
++\-\-\-\-\-\-\-\-\-\-\-\-+     Updates      \e\-\-\-\-\-\-\-\-\-/
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SS Read Only
+.sp
+In read only mode, a device does not synchronize the local folder to the
+cluster, but publishes changes to its local folder contents as usual.
+The local folder can be seen as a "master copy" that is never affected
+by the actions of other cluster devices.
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
++\-\-\-\-\-\-\-\-\-\-\-\-+     Updates      /\-\-\-\-\-\-\-\-\-\e
+|            |  \-\-\-\-\-\-\-\-\-\-\->   /           \e
+|   Device   |                 |  Cluster  |
+|            |                 \e           /
++\-\-\-\-\-\-\-\-\-\-\-\-+                  \e\-\-\-\-\-\-\-\-\-/
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.SH MESSAGE LIMITS
+.sp
+An implementation MAY impose reasonable limits on the length of messages
+and message fields to aid robustness in the face of corruption or broken
+implementations. These limits, if imposed, SHOULD NOT be more
+restrictive than the following. An implementation should strive to keep
+messages short and to the point, favouring more and smaller messages
+over fewer and larger. For example, favour a smaller Index message
+followed by one or more Index Update messages rather than sending a very
+large Index message.
+.TS
+center;
+|l|l|l|.
+_
+T{
+Message Type
+T}	T{
+Field
+T}	T{
+Limit
+T}
+_
+T{
+\fBAll Messages\fP
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Total length
+T}	T{
+64 MiB
+T}
+_
+T{
+\fBIndex and Index Update Messages\fP
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Folder
+T}	T{
+64 bytes
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Number of Files
+T}	T{
+1.000.000
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Name
+T}	T{
+8192 bytes
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Number of Blocks
+T}	T{
+1.000.000
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Hash
+T}	T{
+64 bytes
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Number of Counters
+T}	T{
+1.000.000
+T}
+_
+T{
+\fBRequest Messages\fP
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Folder
+T}	T{
+64 bytes
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Name
+T}	T{
+8192 bytes
+T}
+_
+T{
+\fBResponse Messages\fP
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Data
+T}	T{
+256 KiB
+T}
+_
+T{
+\fBCluster Config Message\fP
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Number of Folders
+T}	T{
+1.000.000
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Number of Devices
+T}	T{
+1.000.000
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Number of Options
+T}	T{
+64
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Key
+T}	T{
+64 bytes
+T}
+_
+T{
+.nf
+
+.fi
+T}	T{
+Value
+T}	T{
+1024 bytes
+T}
+_
+.TE
+.SH EXAMPLE EXCHANGE
+.TS
+center;
+|l|l|l|.
+_
+T{
+#
+T}	T{
+A
+T}	T{
+B
+T}
+_
+T{
+1
+T}	T{
+ClusterConfiguration\->
+T}	T{
+<\-ClusterConfiguration
+T}
+_
+T{
+2
+T}	T{
+Index\->
+T}	T{
+<\-Index
+T}
+_
+T{
+3
+T}	T{
+IndexUpdate\->
+T}	T{
+<\-IndexUpdate
+T}
+_
+T{
+4
+T}	T{
+IndexUpdate\->
+T}	T{
+T}
+_
+T{
+5
+T}	T{
+Request\->
+T}	T{
+T}
+_
+T{
+6
+T}	T{
+Request\->
+T}	T{
+T}
+_
+T{
+7
+T}	T{
+Request\->
+T}	T{
+T}
+_
+T{
+8
+T}	T{
+Request\->
+T}	T{
+T}
+_
+T{
+9
+T}	T{
+T}	T{
+<\-Response
+T}
+_
+T{
+10
+T}	T{
+T}	T{
+<\-Response
+T}
+_
+T{
+11
+T}	T{
+T}	T{
+<\-Response
+T}
+_
+T{
+12
+T}	T{
+T}	T{
+<\-Response
+T}
+_
+T{
+13
+T}	T{
+Index Update\->
+T}	T{
+T}
+_
+T{
+\&...
+T}	T{
+T}	T{
+T}
+_
+T{
+14
+T}	T{
+T}	T{
+<\-Ping
+T}
+_
+T{
+15
+T}	T{
+Ping\->
+T}	T{
+T}
+_
+.TE
+.sp
+The connection is established and at 1. both peers send
+ClusterConfiguration messages and then Index records. The Index records
+are received and both peers recompute their knowledge of the data in the
+cluster. In this example, peer A has four missing or outdated blocks. At
+2 through 5 peer A sends requests for these blocks. The requests are
+received by peer B, who retrieves the data from the folder and transmits
+Response records (6 through 9). Device A updates their folder contents
+and transmits an Index Update message (10). Both peers enter idle state
+after 10. At some later time 11, peer A determines that it has not seen
+data from B for some time and sends a Ping request. A response is sent
+at 12.
+.SH EXAMPLES OF STRONG CIPHER SUITES
+.TS
+center;
+|l|l|l|.
+_
+T{
+ID
+T}	T{
+Name
+T}	T{
+Description
+T}
+_
+T{
+0x009F
+T}	T{
+DHE\-RSA\-AES256\-GCM\-SHA384
+T}	T{
+TLSv1.2 DH RSA AESGCM(256) AEAD
+T}
+_
+T{
+0x006B
+T}	T{
+DHE\-RSA\-AES256\-SHA256
+T}	T{
+TLSv1.2 DH RSA AES(256) SHA256
+T}
+_
+T{
+0xC030
+T}	T{
+ECDHE\-RSA\-AES256\-GCM\-SHA384
+T}	T{
+TLSv1.2 ECDH RSA AESGCM(256) AEAD
+T}
+_
+T{
+0xC028
+T}	T{
+ECDHE\-RSA\-AES256\-SHA384
+T}	T{
+TLSv1.2 ECDH RSA AES(256) SHA384
+T}
+_
+T{
+0x009E
+T}	T{
+DHE\-RSA\-AES128\-GCM\-SHA256
+T}	T{
+TLSv1.2 DH RSA AESGCM(128) AEAD
+T}
+_
+T{
+0x0067
+T}	T{
+DHE\-RSA\-AES128\-SHA256
+T}	T{
+TLSv1.2 DH RSA AES(128) SHA256
+T}
+_
+T{
+0xC02F
+T}	T{
+ECDHE\-RSA\-AES128\-GCM\-SHA256
+T}	T{
+TLSv1.2 ECDH RSA AESGCM(128) AEAD
+T}
+_
+T{
+0xC027
+T}	T{
+ECDHE\-RSA\-AES128\-SHA256
+T}	T{
+TLSv1.2 ECDH RSA AES(128) SHA256
+T}
+_
+.TE
+.SH AUTHOR
+The Syncthing Authors
+.SH COPYRIGHT
+2015, The Syncthing Authors
+.\" Generated by docutils manpage writer.
+.

+ 4 - 4
man/syncthing-config.5

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-CONFIG" "5" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-CONFIG" "5" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-config \- Syncthing Configuration
 .
@@ -75,7 +75,7 @@ site request forgery).
 .UNINDENT
 .SH CONFIG FILE FORMAT
 .sp
-The following is shows the default configuration file:
+The following shows the default configuration file:
 .INDENT 0.0
 .INDENT 3.5
 .sp
@@ -166,7 +166,7 @@ element:
 The folder ID, must be unique. (mandatory)
 .TP
 .B path
-The oath to the directory where the folder is stored on this
+The path to the directory where the folder is stored on this
 device; not sent to other devices. (mandatory)
 .TP
 .B ro
@@ -417,7 +417,7 @@ are \fBudp4://\fP (UDP over IPv4), \fBudp6://\fP (UDP over IPv6) and
 .TP
 .B globalAnnounceEnabled
 Whether to announce this device to the global announce (discovery) server,
-and also use it to look up other device.
+and also use it to look up other devices.
 .TP
 .B localAnnounceEnabled
 Whether to send announcements to the local LAN, also use such

+ 2 - 2
man/syncthing-device-ids.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-DEVICE-IDS" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-DEVICE-IDS" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-device-ids \- Understanding Device IDs
 .
@@ -252,7 +252,7 @@ requires already having the public key to verify.
 .IP \(bu 2
 Announcements to the global announce server could be done using TLS,
 so the server calculates the device ID based on the certificate
-instead of trusting to the device to tell the truth.
+instead of trusting the device to tell the truth.
 .IP \(bu 2
 The user could statically configure IP or host name for the devices.
 .IP \(bu 2

+ 3 - 3
man/syncthing-event-api.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-EVENT-API" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-EVENT-API" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-event-api \- Event API
 .
@@ -306,9 +306,9 @@ Where block size is 128KB.
 .sp
 Files/folders appearing in the event data imply that the download has
 been started for that file/folder, where disappearing implies that the
-downloads has been finished or failed for that file/folder. There is
+downloads have been finished or failed for that file/folder. There is
 always a last event emitted with no data, which implies all downloads
-being finished/failed.
+have finished/failed.
 .SS FolderCompletion
 .sp
 The \fBFolderCompletion\fP event is emitted when the local or remote

+ 3 - 3
man/syncthing-faq.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-FAQ" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-FAQ" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-faq \- Frequently Asked Questions
 .
@@ -164,7 +164,7 @@ enable versioning, but we encourage the use of other tools to keep your data
 safe from your (or our) mistakes.
 .SS Why is there no iOS client?
 .sp
-Alternative implementation Syncthing (using the Syncthing protocol) are being
+An alternative implementation of Syncthing (using the Syncthing protocol) is being
 developed at this point in time to enable iOS support. Additionally, it seems
 that the next version of Go will support the darwin\-arm architecture such that
 we can compile the mainstream code for the iOS platform.
@@ -260,7 +260,7 @@ bugs.
 .sp
 Syncthing logs to stdout by default. On Windows Syncthing by default also
 creates \fBsyncthing.log\fP in Syncthing\(aqs home directory (check \fB\-help\fP to see
-where that is). Command line option \fB\-logfile\fP can be used to specify user\-defined logfile.
+where that is). Command line option \fB\-logfile\fP can be used to specify a user\-defined logfile.
 .SS How do I upgrade Syncthing?
 .INDENT 0.0
 .IP \(bu 2

+ 189 - 0
man/syncthing-localdisco.7

@@ -0,0 +1,189 @@
+.\" Man page generated from reStructuredText.
+.
+.TH "SYNCTHING-LOCALDISCO" "7" "October 20, 2015" "v0.11" "Syncthing"
+.SH NAME
+syncthing-localdisco \- Local Discovery Protocol v3
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH MODE OF OPERATION
+.sp
+Each participating device periodically sends an Announcement packet. It also
+keeps a table of the announcements it has seen. There is no way to solicit a
+reply; the only message type is Announcement.
+.sp
+On multihomed hosts the announcement packets should be sent on each interface
+on which Syncthing will accept connections.
+.sp
+For IPv4, the Announcement packet is broadcast either to the link\-specific
+broadcast address, or to the generic link\-local broadcast address
+\fB255.255.255.255\fP, with destination port 21027.
+.sp
+For IPv6, the Announcement packet is multicast to the transient link\-local
+multicast address \fB[ff12::8384]\fP, with destination port 21027.
+.sp
+It is recommended that local discovery Announcement packets be sent on a 30 to
+60 second interval, possibly with immediate transmissions when a previously
+unknown device is discovered.
+.SH DEVICE ID
+.sp
+The device ID is the SHA\-256 (32 bytes) of the device X.509 certificate. See
+device\-ids in the Syncthing documentation.
+.SH ANNOUNCEMENT PACKET
+.sp
+The Announcement packet has the following structure:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+Announce Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                             Magic                             |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                       Device Structure                        \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                    Number of Extra Devices                    |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Device Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+Device Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                         Length of ID                          |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                     ID (variable length)                      \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                      Number of Addresses                      |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                Zero or more Address Structures                \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                       Number of Relays                        |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                 Zero or more Relay Structures                 \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+Address Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                         Length of URL                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                     URL (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+
+Relay Structure:
+
+ 0                   1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                         Length of URL                         |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+/                                                               /
+\e                     URL (variable length)                     \e
+/                                                               /
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+|                            Latency                            |
++\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+The corresponding XDR representation is as follows (see
+\fI\%RFC4506\fP <\fBhttp://tools.ietf.org/html/rfc4506\fP> for the XDR format):
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+struct Announcement {
+    unsigned int Magic;
+    Device This;
+    Device Extra<>;
+}
+
+struct Device {
+    opaque ID<32>;
+    Address Addresses<16>;
+    Relay Relays<16>;
+}
+
+struct Address {
+    string URL<2083>;
+}
+
+struct Relay {
+    string URL<2083>;
+    int Latency;
+}
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+The first Device structure contains information about the sending
+device. The following zero or more Extra devices contain information
+about other devices known to the sending device.
+.sp
+In the \fBDevice\fP structure, field \fBDeviceID\fP is the SHA\-256 (32
+bytes) of the device X.509 certificate, as explained in section \fIDevice
+ID\fP\&.
+.sp
+For each \fBAddress\fP and \fBRelay\fP the \fBURL\fP field contains the actual
+target address. Direct connections (the \fBAddress\fP list) will
+typically have the \fBtcp://\fP scheme. Relay connections will typically use the
+\fBrelay://\fP scheme.
+.sp
+The \fBLatency\fP field contains the approximate latency for a TCP handshake
+(i.e. three packet round trips) between the other device and the relay, in
+milliseconds.
+.SH AUTHOR
+The Syncthing Authors
+.SH COPYRIGHT
+2015, The Syncthing Authors
+.\" Generated by docutils manpage writer.
+.

+ 1 - 1
man/syncthing-networking.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-NETWORKING" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-NETWORKING" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-networking \- Firewall Setup
 .

+ 2 - 2
man/syncthing-rest-api.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-REST-API" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-REST-API" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-rest-api \- REST API
 .
@@ -352,7 +352,7 @@ This is an expensive call, increasing CPU and RAM usage on the device. Use spari
 .SS GET /rest/db/completion
 .sp
 Returns the completion percentage (0 to 100) for a given device and
-folder.Takes \fBdevice\fP and \fBfolder\fP parameters.
+folder. Takes \fBdevice\fP and \fBfolder\fP parameters.
 .INDENT 0.0
 .INDENT 3.5
 .sp

+ 1 - 1
man/syncthing-security.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-SECURITY" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-SECURITY" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-security \- Security Principles
 .

+ 1 - 1
man/syncthing-stignore.5

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING-STIGNORE" "5" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING-STIGNORE" "5" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing-stignore \- Prevent files from being synchronized to other nodes
 .

+ 1 - 1
man/syncthing-versioning.7

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "TODO" "7" "September 23, 2015" "v0.11" "Syncthing"
+.TH "TODO" "7" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 Todo \- Keep automatic backups of deleted files by other nodes
 .

+ 1 - 1
man/syncthing.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "SYNCTHING" "1" "September 23, 2015" "v0.11" "Syncthing"
+.TH "SYNCTHING" "1" "October 20, 2015" "v0.11" "Syncthing"
 .SH NAME
 syncthing \- Syncthing
 .

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