1
0
mirror of https://github.com/chylex/Nextcloud-Desktop.git synced 2026-04-04 12:11:33 +02:00

Compare commits

...

146 Commits

Author SHA1 Message Date
Daniel Molkentin
69f2b2da7c Bump version to 1.8.2 final 2015-06-08 14:10:08 +02:00
Daniel Molkentin
4000993200 Finish 1.8.2 ChangeLog 2015-06-08 14:06:57 +02:00
Olivier Goffart
2c6c21d753 AccountState: do not change the state when we stay connected
This would cause a full sync every 30 seconds.
2015-06-08 12:14:37 +02:00
Jenkins for ownCloud
34384e3613 [tx-robot] updated from transifex 2015-06-08 02:18:37 -04:00
Jenkins for ownCloud
a42856ef84 [tx-robot] updated from transifex 2015-06-07 02:18:54 -04:00
Jenkins for ownCloud
e7f01b9a95 [tx-robot] updated from transifex 2015-06-07 01:15:27 -04:00
Klaas Freitag
fc2ceb88fb Rename thread to SyncEngine Thread to avoid confusion about Neon. 2015-06-06 10:49:47 +02:00
Jenkins for ownCloud
36f62f7fd4 [tx-robot] updated from transifex 2015-06-06 02:18:54 -04:00
Christian Kamm
ee08b3759d SyncScheduling: Avoid new resyncs on local mkdir.
(cherry picked from commit bacf6166c1)
2015-06-05 10:27:28 +02:00
Klaas Freitag
c73110e3c7 Added changes between beta1 and rc1 to Changelog. 2015-06-05 09:39:56 +02:00
Klaas Freitag
9ced5fb9a3 Set version postfix to RC1 2015-06-05 09:26:22 +02:00
Daniel Molkentin
f9659d80c9 Revert "NSIS: depend on nsProcess instead of Processes NSIS plugin"
This reverts commit e1a36b53dc.
2015-06-05 09:17:46 +02:00
Daniel Molkentin
553e831121 Revert "Adjust to new version of NSIS UAC"
This reverts commit 1d600ceecc.
2015-06-05 09:17:39 +02:00
Daniel Molkentin
e9ff471e1c Revert "NSIS: Star Trek taught me: "Reversing the polarity will fix it". It's true."
This reverts commit 0f7773ff99.
2015-06-05 09:16:14 +02:00
Daniel Molkentin
eb6d29a223 Revert "NSIS: Fix NSIS error handling"
This reverts commit 3df26ef189.
2015-06-05 09:15:14 +02:00
Daniel Molkentin
3df26ef189 NSIS: Fix NSIS error handling 2015-06-05 08:45:23 +02:00
Jenkins for ownCloud
25767bee0b [tx-robot] updated from transifex 2015-06-05 02:18:54 -04:00
Daniel Molkentin
0f7773ff99 NSIS: Star Trek taught me: "Reversing the polarity will fix it". It's true. 2015-06-04 12:53:42 +02:00
Christian Kamm
2ed329e025 Improve reporting of server error messages. #3220
In particular the 'unsupported client version' error message
is now visible to the user when trying to connect to a
server that no longer supports the current client version.
2015-06-04 10:07:24 +02:00
Christian Kamm
e04882cc7c Discovery: Ignore folders with any 503. #3113 2015-06-04 09:24:53 +02:00
Jenkins for ownCloud
40818920d1 [tx-robot] updated from transifex 2015-06-04 02:18:53 -04:00
Daniel Molkentin
1bec652822 Merge pull request #3303 from owncloud/new_nsis_modules
NSIS installer module updates
2015-06-03 21:05:47 +02:00
Christian Kamm
4c10f1e40c Wizard: Show server error message if possible. #3220 2015-06-03 16:33:09 +02:00
Klaas Freitag
53154bcd1e Merge pull request #3301 from owncloud/fix_3283
Abort the request and reset the QNAM if user does not ACK a new cert.
2015-06-03 10:22:13 +02:00
Daniel Molkentin
1d600ceecc Adjust to new version of NSIS UAC 2015-06-03 08:21:10 +02:00
Daniel Molkentin
e1a36b53dc NSIS: depend on nsProcess instead of Processes NSIS plugin
The Processes plugin is no longer maintained, and OBS
compiles an up-to-date version of nsProcess for us.
2015-06-03 08:21:10 +02:00
Jenkins for ownCloud
5f91abd7c6 [tx-robot] updated from transifex 2015-06-03 02:18:34 -04:00
Klaas Freitag
75b38d1a2f Abort the request and reset the QNAM if user does not ACK a new cert.
This is supposed to fix bug #3283
2015-06-02 12:21:49 +02:00
Jenkins for ownCloud
7f597e5dd2 [tx-robot] updated from transifex 2015-06-01 02:18:41 -04:00
Jenkins for ownCloud
e3be1a176d [tx-robot] updated from transifex 2015-05-30 02:18:51 -04:00
Daniel Molkentin
b1658cb1cf Merge pull request #3291 from RealRancor/backport_3004_2978_1.8
Backport #3004 and #2978 to 1.8
2015-05-28 17:22:06 +02:00
RealRancor
6ba3324035 Backport #3004 and #2978 to 1.8 2015-05-28 17:11:03 +02:00
Daniel Molkentin
e2a26f0eaf Merge pull request #3289 from RealRancor/backport_3279_1.8
Backport #3279 to 1.8
2015-05-28 17:03:27 +02:00
RealRancor
8cfb17bca6 Backport #3279 to 1.8 2015-05-28 17:00:59 +02:00
Jenkins for ownCloud
211e5ec82e [tx-robot] updated from transifex 2015-05-28 02:18:51 -04:00
Christian Kamm
2435ba7e7d Windows: Fix unit test build. 2015-05-27 14:59:28 +02:00
Jenkins for ownCloud
be77e4f57e [tx-robot] updated from transifex 2015-05-27 02:18:51 -04:00
Jenkins for ownCloud
f344b42aa9 [tx-robot] updated from transifex 2015-05-26 02:19:54 -04:00
Jenkins for ownCloud
90f4a20a50 [tx-robot] updated from transifex 2015-05-26 01:15:28 -04:00
Daniel Molkentin
793130a533 Win32: Make Setup/Update Mutex theme-unique (2/2)
Fixes #3272
2015-05-25 21:54:03 +02:00
Vidar Tysse
1ddb162338 Adding Norwegian translation to Client 2015-05-25 21:50:33 +02:00
Daniel Molkentin
070d9d3147 NSIS Installer: Fix Basque, Galician, Slovak, Turkish
Not sure when this broke, but those languages could never have worked...
2015-05-25 21:48:21 +02:00
Daniel Molkentin
9b73308edd NSIS: Add Norwegian (Bokmål) translation 2015-05-25 21:41:23 +02:00
Daniel Molkentin
b46a8239e2 NSIS installer tx: Sort/de-whitespace translation file config 2015-05-25 19:45:02 +02:00
Jenkins for ownCloud
e9d0f5a022 [tx-robot] updated from transifex 2015-05-25 02:18:46 -04:00
Jenkins for ownCloud
5721d8eb64 [tx-robot] updated from transifex 2015-05-24 02:18:48 -04:00
Daniel Molkentin
e708c145fa Win32: Make Setup/Update Mutex theme-unique
Fixes #3272
2015-05-23 09:40:31 +02:00
Jenkins for ownCloud
713beeb2a5 [tx-robot] updated from transifex 2015-05-23 02:18:53 -04:00
Klaas Freitag
6c46713701 include qtconcurrentrun header rather than QtConcurrent for Qt4 2015-05-22 14:46:29 +02:00
Olivier Goffart
3754e6c781 Disable the curruption workaround on mac and windows
The binaries we ship have a patched Qt
2015-05-22 14:19:44 +02:00
Klaas Freitag
6401b1cfc3 Updated Changelog and set version to 1.8.2 beta1 2015-05-22 12:25:40 +02:00
Olivier Goffart
6b9e123816 Merge remote-tracking branch 'origin/checksum_1.8' into 1.8 2015-05-22 10:32:37 +02:00
Olivier Goffart
fb2295fcec Merge branch 'recall' into 1.8 2015-05-22 10:32:26 +02:00
Christian Kamm
0af2f7e5ed ConValidator: Always run with new credentials. #3266 2015-05-22 09:38:44 +02:00
Christian Kamm
1c84d01584 Windows: Fix build of tests. 2015-05-22 09:17:24 +02:00
Olivier Goffart
3fcce08a22 recall: move the recall code in a namespace 2015-05-21 16:23:54 +02:00
Olivier Goffart
289800c1ba Recall: make it work even if it is not in the root directory 2015-05-21 16:06:53 +02:00
Olivier Goffart
49fb37fefc t_recall.pl: add a test for the recall feature 2015-05-21 16:06:53 +02:00
Olivier Goffart
9a02a0f3a8 Recall feature: Fix some style issues 2015-05-21 16:06:52 +02:00
Jakub Moscicki
4e79093f84 recall file prototype 2015-05-21 16:06:52 +02:00
Klaas Freitag
d2fff2c3e3 Theme: Allow to change the transmission checksum through theming. 2015-05-21 15:59:24 +02:00
Klaas Freitag
8f277e46d6 TransmissionChecksumming: Remove SyncFileItem dependency. 2015-05-21 15:51:48 +02:00
Klaas Freitag
c33d962712 TransmissonChecksumValidator: Add documentation. 2015-05-21 14:32:08 +02:00
Klaas Freitag
3870915118 TransmissionChecksumValidator: Reduce verbosity. 2015-05-21 14:31:39 +02:00
Klaas Freitag
b05ca526a4 In case of empty checksum type, emit validated. 2015-05-21 14:31:18 +02:00
Klaas Freitag
4e28a24af3 Let checksumType() read the config to destinguish checksum type. 2015-05-21 14:30:21 +02:00
Olivier Goffart
aebadfcda2 FolderWizard: Add missing Q_OBJECT which prevent translations from working 2015-05-21 12:53:55 +02:00
Jenkins for ownCloud
c975954a9a [tx-robot] updated from transifex 2015-05-21 02:18:50 -04:00
Klaas Freitag
dec3bd4a02 Some more minor cleanups based on the pull request review. 2015-05-20 22:44:12 +02:00
Klaas Freitag
64ce0cd7a2 Improved implementation efficiency of checksum calculation.
Based on Oliviers suggestions the file read routine now reuses
one buffer to read the entire file.

Other cleanups.
2015-05-20 21:42:08 +02:00
Klaas Freitag
34593cccb6 Remove QtConcurrent from component list for Qt4.
According to Olivier QtConcurrent was part of QtCore in Qt4.
2015-05-20 17:00:27 +02:00
Klaas Freitag
5b5a636cc1 Make TransmissionChecksumValidator child of the job for auto delete.
That way no explicit memory management is needed as the allocation
is freed when the job (parent) is deleted automatically.
2015-05-20 16:54:04 +02:00
Daniel Molkentin
5c6a6529a6 Merge pull request #3258 from binwiederhier/bugfix/issue3256-mkcol
Add 'Content-Length: 0' header to MKCOL request; fixes #3256
2015-05-20 15:48:33 +02:00
Philipp Heckel
68fa190cf7 Add 'Content-Length: 0' header 2015-05-20 14:40:20 +01:00
Olivier Goffart
d148464efe SyncJournalDb::updateErrorBlacklistEntry: lock the mutext at the beginning
The mutex need to be locked before checkConnect, that's what all the other functions are doing
2015-05-20 15:30:19 +02:00
Olivier Goffart
6a7f2089e8 tests: Make them more verbose in case of failures 2015-05-20 14:34:11 +02:00
Klaas Freitag
17fe4c3b29 PropagateUpload: Fix typo in warn message. 2015-05-20 12:30:00 +02:00
Klaas Freitag
dd6c97abb6 Propagator: Added a log that tells if transmission checksumming is used. 2015-05-20 12:27:54 +02:00
Klaas Freitag
ddfe3fa7ab TransmissionChecksum: Fix identation. 2015-05-20 10:49:18 +02:00
Klaas Freitag
1f7274c2f2 TransmissionChecksum: Removed "pseudo" thread worker functions
Removed the Worker postfix from the method names to reflect their non
threaded character, they moved into a thread in the Validator class.

Thanks ckamm for review.
2015-05-20 10:45:20 +02:00
Klaas Freitag
4d87f30434 Transmission checksum: Adopt unit test to latest changes. 2015-05-19 17:09:40 +02:00
Klaas Freitag
8b371c42b7 Propagate Download: Handle malformed checksum header as error.
Plus some cleanup, bool ok was not needed actually.
2015-05-19 17:09:40 +02:00
Klaas Freitag
c7f759fedf Propagator: Use the TransmissionChecksumValidator class. 2015-05-19 17:09:40 +02:00
Klaas Freitag
830daa40d1 Add a class TransmissionChecksumValidator, incl. unit test.
This does all needed to manage checksums that go with http headers
ensuring that the transmission was correct.
2015-05-19 17:09:40 +02:00
Klaas Freitag
f016d25b4c Propagate downloads: Handle checksum transmission header.
Read a checksum from the HTTP header, and if its there, compare the
downloaded tmp file against it. In case of corruption, schedule a
redownload.
2015-05-19 17:09:40 +02:00
Klaas Freitag
e18fd62f34 Propagator: checksum constants go to propatorjobs header.
So they can be used from both up- and download propagator jobs.
2015-05-19 17:09:40 +02:00
Klaas Freitag
3701fbcbfe PropagateUpload: Add checksum calculation if required by config.
If the config file has an transmissionChecksum entry, a checksum
is added to the PUT requests in a header.
2015-05-19 17:09:39 +02:00
Klaas Freitag
823f9fa0d1 Checksum Calculation: Add unit test. 2015-05-19 17:09:39 +02:00
Klaas Freitag
67d38bc87b Filesystem Utilities: Add Checksum calculation methods. 2015-05-19 17:09:39 +02:00
Klaas Freitag
b36ff1ed1d Changelog: Add User Agent string. 2015-05-19 17:09:39 +02:00
Klaas Freitag
ec83295b99 Branding: Append the appName short to the user agent string. 2015-05-19 17:09:39 +02:00
Klaas Freitag
e36252a845 Theme: (minor) remove some more mirall's 2015-05-19 17:09:39 +02:00
Klaas Freitag
d0d8de9f2f MirallConfigFile: Add an option of transmission checksumming. 2015-05-19 17:09:39 +02:00
Daniel Molkentin
9693048f78 Find & use QtConcurrent 2015-05-19 17:09:39 +02:00
Klaas Freitag
101d2268ff SyncFileItem class: Add member _checksum 2015-05-19 17:09:39 +02:00
Klaas Freitag
2fcad760b9 StopWatch: return the duration from the stop() command. 2015-05-19 17:09:39 +02:00
Jenkins for ownCloud
52eb6c95cf [tx-robot] updated from transifex 2015-05-19 02:18:46 -04:00
Jenkins for ownCloud
35169e3de4 [tx-robot] updated from transifex 2015-05-18 02:18:48 -04:00
Jenkins for ownCloud
650b201b33 [tx-robot] updated from transifex 2015-05-16 02:18:48 -04:00
Olivier Goffart
f595fc2f9c Fix opening external links for some labels
Issue #3135
2015-05-15 18:44:19 +02:00
Markus Goetz
06c889630c AccountState: Run only a single validator, allow error message overriding #3236 #3153 2015-05-15 12:27:35 +02:00
Jenkins for ownCloud
d6dbabfbc4 [tx-robot] updated from transifex 2015-05-15 02:18:51 -04:00
Jenkins for ownCloud
bcae146444 [tx-robot] updated from transifex 2015-05-14 02:18:47 -04:00
Markus Goetz
8a39748654 SyncJournalDB: Don't use NULL value
Olivier says we should try to not be the same as the possible value
for not existing entries.
2015-05-13 14:57:14 +02:00
Markus Goetz
3556ed416c SyncJournalDB: Simplify code 2015-05-13 13:15:53 +02:00
Markus Goetz
e5e2ce2b22 SyncEngine: Force re-read of folder Etags for upgrades from 1.8.0 and 1.8.1
This is a better fix than the previous one for the local-files-missing bug
because it does not depend on the sync run to run fully through.
2015-05-13 12:54:49 +02:00
Markus Goetz
39d103adf7 OwnSql: Fix numRowsAffected() 2015-05-13 12:54:03 +02:00
Markus Goetz
afd1406e61 Update VERSION.cmake to 1.8.2 2015-05-13 12:52:13 +02:00
Jenkins for ownCloud
a4c411af99 [tx-robot] updated from transifex 2015-05-13 02:18:48 -04:00
Markus Goetz
bcc896fb6e Qt4: Fix test 2015-05-12 22:55:54 +02:00
Olivier Goffart
76166c6252 SyncEngine: Fix comment
A comment should descibe the code, and not a patch.
2015-05-12 17:53:02 +02:00
Olivier Goffart
dd5a49bc78 Application: Disable to workaround of QLockFile bug for Qt versions that are fixed 2015-05-12 17:26:32 +02:00
Markus Goetz
cdfafa2180 Propagator: Mention name of conflict file (for debugging) 2015-05-12 17:11:21 +02:00
Markus Goetz
6b16e18eb8 tx.pl: Use HTTP Keep-Alive 2015-05-12 17:11:21 +02:00
Olivier Goffart
c2dacd03a5 BandwidthManager: fix warnings
Unused variables
2015-05-12 16:35:27 +02:00
Olivier Goffart
505dba5b23 csync walk tree: Try to find the 'other_node' in the source directory in case of renames
This fixes t2.pl
2015-05-12 16:32:00 +02:00
Jenkins for ownCloud
af5a7063c9 [tx-robot] updated from transifex 2015-05-12 02:18:49 -04:00
Markus Goetz
9e7779a476 Bandwidth Manager: Comment out qDebug
We have not received any grave bug reports for it, not needed anymore.
2015-05-11 16:07:34 +02:00
Markus Goetz
625e61516f Propagator: Limit length of temporary file name #2789 (fixup)
Fix 22c35c4d15
2015-05-11 15:42:35 +02:00
Klaas Freitag
41614ec851 Application: ifdef lock file issue as it only happens on Qt>5.1
However, the fix breaks Qt4 compile, so it needs to be ifdefed.
Not viel hilft viel.
2015-05-11 13:35:04 +02:00
Jenkins for ownCloud
4d3a0ed250 [tx-robot] updated from transifex 2015-05-11 02:18:44 -04:00
Jenkins for ownCloud
cac15988f0 [tx-robot] updated from transifex 2015-05-10 02:18:49 -04:00
Jenkins for ownCloud
1e131f4732 [tx-robot] updated from transifex 2015-05-09 02:18:53 -04:00
Markus Goetz
22c35c4d15 Propagator: Limit length of temporary file name #2789 2015-05-08 16:42:03 +02:00
Christian Kamm
9507bb4be6 ShareDialog: Password ui fixes. #3189
* Change the textedit-empty text to be just "Password"
* Hide the 'Copy link' button when the share isn't created yet
* Show the checked and disabled 'Password required' checkbox
  when a password is required.
2015-05-08 14:53:38 +02:00
Christian Kamm
e1c370a9a2 Fix startup hang by removing QSettings lock file. #3175
In some situations the .lock file would stay around and
cause subsequent starts of the client to get stuck before
showing the ui.
2015-05-08 14:02:44 +02:00
Christian Kamm
b9eafaaf24 Wizard: Allow SSL cert dialog to show twice. #3168
Normally we never ask twice for the same url, but in the setup wizard
it makes sense to do so.
2015-05-08 12:32:14 +02:00
Christian Kamm
909368025f ProtocolWidget: Fix rename message. #3210
For remote renames that are replicated locally the _file member is
overwritten by the target file name when the new entry is added to
the metadata table. Using _originalFile here guarantees that
the affected local file is mentioned.
2015-05-08 11:33:34 +02:00
Jenkins for ownCloud
15bfa46023 [tx-robot] updated from transifex 2015-05-08 02:18:56 -04:00
Markus Goetz
0359c775e0 Discovery: Test better, treat invalid hrefs as error #3176 2015-05-07 17:19:48 +02:00
Jocelyn Turcotte
1053153ec4 Fix the Qt4 build
Following a6500d8068
Qt4's moc doesn't expand macros and wouldn't evaluate QT_VERSION_CHECK.
2015-05-07 14:49:01 +02:00
Christian Kamm
79ac61684c Propagator: Overwrite local data only if unchanged. #3156 2015-05-07 14:43:33 +02:00
Christian Kamm
441eca86c4 ShareDialog: Improve error reporting for share API fails.
This would have made debugging #3204 and #3136 easier.
2015-05-07 14:16:13 +02:00
Markus Goetz
f07d3d069e Updater on OS X: Only allow if in /Applications #2931 2015-05-07 13:04:25 +02:00
Markus Goetz
e300e3c744 Wizard: Fix lock icon #1447 2015-05-07 13:04:25 +02:00
Klaas Freitag
b9df8290c9 Merge pull request #3208 from owncloud/dev/gcc5
Compile with GCC 5 - thanks for the pr
2015-05-07 09:52:36 +02:00
Christian Kamm
73e2254a80 AccountState: Treat *any* 503 as a temporary error. #3113 2015-05-07 09:21:52 +02:00
Jenkins for ownCloud
352c2957b2 [tx-robot] updated from transifex 2015-05-07 02:18:55 -04:00
Hefee
23b6426dfa Compile with GCC 5
this fixes the error and makes complete oCC compile with GCC 5.
error: ISO C does not support '__FUNCTION__' predefined identifier
[-Wpedantic]

According to the porting guide:
The fix is either to use the standard predefined identifier __func__
(since C99), or to use the __extension__ keyword.
2015-05-07 01:15:55 +02:00
Jocelyn Turcotte
9ef8658122 shell_integration on OSX: Avoid too many RETRIEVE_FILE_STATUS following UPDATE_VIEW #3122
Do not request the status of all entries in the cache. Instead force Finder
to request the ones that it deems necessary by keeping the old statuses
in a separate dictionary which are only used while the new status arrives.
2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
0a67719f2f shell_integration on OSX: Do not fill the cache with unsolicited statuses #3122 2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
04d820f9cf shell_integration on OSX: Remove dead code
removeIcons isn't called and clearFileNameCacheForPath was always
called with a "nil" path.

Remove the return value of askForIcon which was always 0, and use
that value explicitly at the only call site.

Remove the "-1" code path in iconByPath since setIcons prevents
-1 from getting into _fileNamesCache in all cases.
2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
931dd59844 Don't hardcode the source directory in deploy.sh 2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
a6500d8068 Work around the Qt PUT corruption bug with Qt < 5.4.2 #2425
Since QNonContiguousByteDeviceThreadForwardImpl::reset will
call UploadDevice::reset with a BlockingQueuedConnection, this
allows us to reset the HTTP channel along with its buffers
before they get the chance to be reused with a subsequent request.
2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
0d5d2c578d shell_integration on Windows: Avoid too many RETRIEVE_FILE_STATUS following UPDATE_VIEW #3122
Do not request the status of all entries in the cache. Instead force
explorer to request the ones that it deems necessary by keeping the old
statuses in a separate dictionary which are only used while the new status
arrives.
2015-05-06 16:48:34 +02:00
Jocelyn Turcotte
77679790db shell_integration on Windows: Don't fill the cache with unsolicited statuses #3122
Only keep the status updates if explorer is going to display it.
2015-05-06 16:48:33 +02:00
114 changed files with 9679 additions and 3995 deletions

View File

@@ -165,13 +165,13 @@ endif()
find_package(Sphinx)
find_package(PdfLatex)
find_package(SQLite3 3.8.0 REQUIRED)
# On some OS, we want to use our own, not the system sqlite
if (USE_OUR_OWN_SQLITE3)
include_directories(BEFORE ${SQLITE3_INCLUDE_DIR})
endif()
find_package(ZLIB)
configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)

View File

@@ -1,5 +1,43 @@
ChangeLog
=========
version 1.8.2 (release 2015-06-08)
* Improve reporting of server error messages (#3220)
* Discovery: Ignore folders with any 503 (#3113)
* Wizard: Show server error message if possible (#3220)
* QNAM: Fix handling of mitm cert changes (#3283)
* Win32: Installer translations added (#3277)
* Win32: Allow concurrent OEM (un-)installers (#3272)
* Win32: Make Setup/Update Mutex theme-unique (#3272)
* HTTP: Add the branding name to the UserAgent string
* ConnectonValidator: Always run with new credentials (#3266)
* Recall Feature: Admins can trigger an upload of a file from
client to server again (#3246)
* Propagator: Add 'Content-Length: 0' header to MKCOL request (#3256)
* Switch on checksum verification through branding or config
* Add ability for checksum verification of up and download
* Fix opening external links for some labels (#3135)
* AccountState: Run only a single validator, allow error message
overriding (#3236, #3153)
* SyncJournalDB: Minor fixes and simplificatons
* SyncEngine: Force re-read of folder Etags for upgrades from
1.8.0 and 1.8.1
* Propagator: Limit length of temporary file name (#2789)
* ShareDialog: Password ui fixes (#3189)
* Fix startup hang by removing QSettings lock file (#3175)
* Wizard: Allow SSL cert dialog to show twice (#3168)
* ProtocolWidget: Fix rename message (#3210)
* Discovery: Test better, treat invalid hrefs as error (#3176)
* Propagator: Overwrite local data only if unchanged (#3156)
* ShareDialog: Improve error reporting for share API fails
* OSX Updater: Only allow updates only if in /Applications (#2931)
* Wizard: Fix lock icon (#1447)
* Fix compilation with GCC 5
* Treat any 503 error as temporary (#3113)
* Work around for the Qt PUT corruption bug (#2425)
* OSX Shell integration: Optimizations
* Windows Shell integration: Optimizations
.. more than 250 commits since 1.8.1
version 1.8.1 (release 2015-05-07)
* Make "operation canceled" error a soft error
* Do not throw an error for files that are scheduled to be removed,

View File

@@ -1,6 +1,6 @@
set( MIRALL_VERSION_MAJOR 1 )
set( MIRALL_VERSION_MINOR 8 )
set( MIRALL_VERSION_PATCH 1 )
set( MIRALL_VERSION_PATCH 2 )
set( MIRALL_SOVERSION 0 )
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )

View File

@@ -10,24 +10,25 @@ minimum_perc = 5
# simple one-to-one language mappings
trans.ca = pofiles/ca.po
trans.el = pofiles/el.po
trans.es = pofiles/es.po
trans.es_AR = pofiles/es_AR.po
trans.eu = pofiles/eu.po
trans.fa = pofiles/fa.po
trans.fr = pofiles/fr.po
trans.gl = pofiles/gl.po
trans.it = pofiles/it.po
trans.nl = pofiles/nl.po
trans.pl = pofiles/pl.po
trans.pt_BR = pofiles/pt_BR.po
trans.ru = pofiles/ru.po
trans.el = pofiles/el.po
trans.es_AR = pofiles/es_AR.po
trans.es = pofiles/es.po
trans.eu = pofiles/eu.po
trans.fa = pofiles/fa.po
trans.fr = pofiles/fr.po
trans.gl = pofiles/gl.po
trans.it = pofiles/it.po
trans.nb_NO = pofiles/nb_NO.po
trans.nl = pofiles/nl.po
trans.pl = pofiles/pl.po
trans.pt_BR = pofiles/pt_BR.po
trans.ru = pofiles/ru.po
trans.sl = pofiles/sl.po
trans.sv = pofiles/sv.po
trans.tr = pofiles/tr.po
trans.uk = pofiles/uk.po
trans.zh_TW = pofiles/zh_TW.po
trans.zh_CN = pofiles/zh_CN.po
trans.uk = pofiles/uk.po
trans.zh_CN = pofiles/zh_CN.po
trans.zh_TW = pofiles/zh_TW.po
# special handling below
@@ -35,14 +36,13 @@ trans.zh_CN = pofiles/zh_CN.po
trans.de_DE = pofiles/de.po
# choose one of the given translations on transifex as default
trans.pt_PT = pofiles/pt.po
trans.pt_PT = pofiles/pt.po
# choose a special language as more generic default
trans.cs_CZ = pofiles/cs.po
trans.et_EE = pofiles/et.po
trans.fi_FI = pofiles/fi.po
trans.ja_JP = pofiles/ja.po
trans.hu_HU = pofiles/hu.po
trans.sk_SK = pofiles/sk.po
trans.th_TH = pofiles/th.po
trans.cs_CZ = pofiles/cs.po
trans.et_EE = pofiles/et.po
trans.fi_FI = pofiles/fi.po
trans.hu_HU = pofiles/hu.po
trans.ja_JP = pofiles/ja.po
trans.sk_SK = pofiles/sk.po
trans.th_TH = pofiles/th.po

View File

@@ -0,0 +1,46 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Vis versjonsmerknader"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Fant ${APPLICATION_EXECUTABLE}-prosess(er) som må stoppes.$\nVil du at installasjonsprogrammet skal stoppe dem for deg?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Terminerer ${APPLICATION_EXECUTABLE}-prosesser."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Fant ikke prosess som skulle termineres!"
StrCpy $PageReinstall_NEW_Field_1 "En eldre versjon av ${APPLICATION_NAME} er installert på systemet ditt. Det anbefales at du avnistallerer den versjonen før installering av ny versjon. Velg hva du vil gjøre og klikk Neste for å fortsette."
StrCpy $PageReinstall_NEW_Field_2 "Avinstaller før installering"
StrCpy $PageReinstall_NEW_Field_3 "Ikke avinstaller"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Allerede installert"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Velg hvordan du vil installere ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "En nyere versjon av ${APPLICATION_NAME} er allerede installert! Det anbefales ikke at du installerer en eldre versjon. Hvis du virkelig ønsker å installere denne eldre versjonen, er det bedre å avinstallere gjeldende versjon først. Velg hva du vil gjøre og klikk Neste for å fortsette."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} er allerede installert.\nVelg hva du vil gjøre og klikk Neste for å fortsette."
StrCpy $PageReinstall_SAME_Field_2 "Legg til/installer komponenter på nytt"
StrCpy $PageReinstall_SAME_Field_3 "Avinstaller ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstaller ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Velg hva slags vedlikehold som skal utføres."
StrCpy $SEC_APPLICATION_DETAILS "Installerer ${APPLICATION_NAME} grunnleggende."
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrering med Windows Utforsker"
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installerer integrering med Windows Utforsker"
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Snarvei i Start-menyen"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Legger til snarvei for ${APPLICATION_NAME} i Start-menyen."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Snarvei på skrivebordet"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Oppretter snarveier på skrivebordet"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Snarvei i Hurtigstart"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Oppretter snarvei i Hurtigstart"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} grunnleggende."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME}-snarvei."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Skrivebordssnarvei for ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Hurtigstart-snarvei for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Fjern ${APPLICATION_NAME} sin datamappe fra datamaskinen."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Ønsker du å slette ${APPLICATION_NAME} sin datamappe?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Ikke kryss av dersom du vil beholde datamappen for senere bruk. Kryss av for å slette mappen."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Ja, slett denne datamappen."
StrCpy $UNINSTALLER_FILE_Detail "Skriver Avinstallasjonsprogram."
StrCpy $UNINSTALLER_REGISTRY_Detail "Skriver registernøkler for installasjonsprogrammet"
StrCpy $UNINSTALLER_FINISHED_Detail "Ferdig"
StrCpy $UNINSTALL_MESSAGEBOX "Det ser ikke ut som ${APPLICATION_NAME} er installert i mappe '$INSTDIR'.$\n$\nFortsett likevel (ikke anbefalt)?"
StrCpy $UNINSTALL_ABORT "Avinstallering avbrutt av bruker"
StrCpy $INIT_NO_QUICK_LAUNCH "Hurtigstart-snarvei (I/T)"
StrCpy $INIT_NO_DESKTOP "Snarvei på skrivebordet (skriver over eksisterende)"
StrCpy $UAC_ERROR_ELEVATE "Klarte ikke å heve tilgangsnivå. Feil: "
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dette installasjonsprogrammet krever administrasjonstilgang. Prøv igjen"
StrCpy $INIT_INSTALLER_RUNNING "Installasjonsprogrammet kjører allerede."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Avinstallasjonsprogrammet krever administrasjonstilgang. Prøv igjen"
StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallasjonsprogrammet kjører allerede."
StrCpy $SectionGroup_Shortcuts "Snarveier"

View File

@@ -0,0 +1,46 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "แสดงบันทึกประจำรุ่น"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "พบว่ากระบวนการ ${APPLICATION_EXECUTABLE} จะต้องหยุดทำงาน\nคุณต้องการติดตั้งเพื่อหยุดการทำงานเหล่านี้ของคุณ?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "ฆ่ากระบวนการทำงาน ${APPLICATION_EXECUTABLE}"
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "ไม่พบการฆ่ากระบวนการ!"
StrCpy $PageReinstall_NEW_Field_1 "รุ่นเก่าของ ${APPLICATION_NAME} มีการติดตั้งในระบบของคุณ ขอแนะนำให้คุณถอนการติดตั้งรุ่นปัจจุบันออกก่อน เลือกการดำเนินการที่คุณต้องการที่จะดำเนินการและคลิกถัดไปเพื่อดำเนินการต่อ"
StrCpy $PageReinstall_NEW_Field_2 "ถอนการติดตั้งก่อนการติดตั้ง"
StrCpy $PageReinstall_NEW_Field_3 "อย่าถอนการติดตั้ง"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "ติดตั้งแล้ว"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "เลือกวิธีที่คุณต้องการติดตั้ง ${APPLICATION_NAME}"
StrCpy $PageReinstall_OLD_Field_1 "รุ่นใหม่ของ ${APPLICATION_NAME} ถูกติดตั้งแล้ว! เราไม่แนะนำให้คุณติดตั้งรุ่นเก่า ถ้าคุณอยากจะติดตั้งรุ่นเก่าก็สามารถสอนการติดตั้งได้"
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ได้ถูกติดตั้งแล้ว เลือกการดำเนินการที่คุณต้องการที่จะดำเนินการและคลิกถัดไปเพื่อดำเนินการต่อ"
StrCpy $PageReinstall_SAME_Field_2 "ส่วนประกอบ เพิ่ม/ติดตั้งใหม่ "
StrCpy $PageReinstall_SAME_Field_3 "ถอนการติดตั้ง ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "ถอนการติดตั้ง ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "เลือกตัวเลือกการบำรุงรักษาเพื่อดำเนินการ"
StrCpy $SEC_APPLICATION_DETAILS "กำลังติดตั้งข้อมูลที่เป็นเป็นของ ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "บูรณาการสำหรับ Windows Explorer"
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "บูรณาการกำลังติดตั้งสำหรับ Windows Explorer"
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "โปรแกรมทางลัดเมนูเริ่มต้น"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "เพิ่มทางลัดสำหรับ ${APPLICATION_NAME} ที่เมนูเริ่มต้น"
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "ทางลัดพื้นโต๊ะ"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "สร้างทางลัดบนเดสก์ทอป"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "ทางลัดเร่งด่วน"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "สร้างทางลัดเร่งด่วน"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} ที่จำเป็น"
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "ทางลัด ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "ทางลัดบนเดสก์ทอปสำหรับ ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "ทางลัดเร่งด่วนสำหรับ ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "ลบ ${APPLICATION_NAME} ของโฟลเดอร์ข้อมูลจากคอมพิวเตอร์ของคุณ"
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "คุณต้องการลบ ${APPLICATION_NAME} ของโฟลเดอร์ข้อมูล?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "ปล่อยให้ตรวจสอบสำหรับใช้โฟลเดอร์ข้อมูลในภายหลังหรือตรวจสอบเพื่อลบโฟลเดอร์ข้อมูล"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "ใช่ลบโฟลเดอร์ข้อมูลนี้"
StrCpy $UNINSTALLER_FILE_Detail "กำลังถอนการติดตั้ง"
StrCpy $UNINSTALLER_REGISTRY_Detail "กำลังติดตั้งรหัสรีจิสทรี"
StrCpy $UNINSTALLER_FINISHED_Detail "เสร็จสิ้น"
StrCpy $UNINSTALL_MESSAGEBOX "มันจะไม่ปรากฏ ${APPLICATION_NAME} ที่มีการติดตั้งในไดเรกทอรี '$INSTDIR' ดำเนินการต่อไป (ไม่แนะนำ)?"
StrCpy $UNINSTALL_ABORT "ถอนการติดตั้งถูกยกเลิกโดยผู้ใช้"
StrCpy $INIT_NO_QUICK_LAUNCH "ทางลัดเร่งด่วน (N/A)"
StrCpy $INIT_NO_DESKTOP "ทางลัดเดสก์ทอป (จะเขียนทับหากมีอยู่แล้ว)"
StrCpy $UAC_ERROR_ELEVATE "ไม่สามารถที่จะยกระดับข้อผิดพลาด:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "การติดตั้งนี้จะต้องมีการเข้าถึงผู้ดูแลระบบ กรุณาลองอีกครั้ง"
StrCpy $INIT_INSTALLER_RUNNING "กำลังทำการติดตั้ง"
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "การถอนการติดตั้งนี้จะต้องมีการเข้าถึงส่วนผู้ดูแลระบบ กรุณาลองอีกครั้ง"
StrCpy $INIT_UNINSTALLER_RUNNING "กำลังทำการถอนการติดตั้ง"
StrCpy $SectionGroup_Shortcuts "ทางลัด"

View File

@@ -67,7 +67,7 @@ localeToName = {
"mg" : "Malagasy",
"ms" : "Malay",
"mn" : "Mongolian",
"nb" : "Norwegian",
"nb_NO" : "Norwegian",
"nn" : "NorwegianNynorsk",
"ps" : "Pashto",
"pl" : "Polish",

View File

@@ -44,5 +44,6 @@ iconv -t CP1252 -o Finnish.nsh Finnish.nsh
iconv -t CP932 -o Japanese.nsh Japanese.nsh
iconv -t CP1250 -o Slovak.nsh Slovak.nsh
iconv -t CP1254 -o Turkish.nsh Turkish.nsh
iconv -t CP1252 -o Norwegian.nsh Norwegian.nsh

View File

@@ -8,13 +8,15 @@
!insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Ukrainian"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Norwegian"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Thai"
!insertmacro MUI_LANGUAGE "Finnish"
!insertmacro MUI_LANGUAGE "Basque"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "German"

2
binary

Submodule binary updated: 1fb9ddfa9a...8b72648a93

View File

@@ -175,10 +175,11 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VERSION}"
StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0
StrCmp $LANGUAGE ${LANG_GREEK} Greek 0
StrCmp $LANGUAGE ${LANG_GREEK} Basque 0
StrCmp $LANGUAGE ${LANG_GREEK} Galician 0
StrCmp $LANGUAGE ${LANG_GREEK} Slovak 0
StrCmp $LANGUAGE ${LANG_GREEK} Turkish 0
StrCmp $LANGUAGE ${LANG_BASQUE} Basque 0
StrCmp $LANGUAGE ${LANG_GALICIAN} Galician 0
StrCmp $LANGUAGE ${LANG_SLOVAC} Slovak 0
StrCmp $LANGUAGE ${LANG_TURKISH} Turkish 0
StrCmp $LANGUAGE ${LANG_NORWEGIAN} Norwegian 0
StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
German:
!include "${source_path}/admin/win/nsi/l10n\German.nsh"
@@ -221,6 +222,9 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VERSION}"
Goto EndLanguageCmp
Brazilian:
!include "${source_path}/admin/win/nsi/l10n\PortugueseBR.nsh"
Goto EndLanguageCmp
Norwegian:
!include "${source_path}/admin/win/nsi/l10n\Norwegian.nsh"
EndLanguageCmp:
FunctionEnd
@@ -777,7 +781,7 @@ Function .onInit
goto UAC_Elevate
;Prevent multiple instances.
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "owncloudInstaller") i .r1 ?e'
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Installer") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_INSTALLER_RUNNING
@@ -842,7 +846,7 @@ Function un.onInit
goto UAC_Elevate
;Prevent multiple instances.
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "owncloudUninstaller") i .r1 ?e'
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Uninstaller") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_UNINSTALLER_RUNNING

View File

@@ -17,6 +17,7 @@ if( Qt5Core_FOUND )
message(STATUS "Found Qt5 core, checking for further dependencies...")
find_package(Qt5Network REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Qt5Concurrent REQUIRED)
if(NOT TOKEN_AUTH_ONLY)
find_package(Qt5WebKitWidgets REQUIRED)
find_package(Qt5WebKit REQUIRED)

View File

@@ -19,6 +19,8 @@
#cmakedefine APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@"
#cmakedefine APPLICATION_UPDATE_URL "@APPLICATION_UPDATE_URL@"
#cmakedefine ZLIB_FOUND @ZLIB_FOUND@
#cmakedefine SYSCONFDIR "@SYSCONFDIR@"
#cmakedefine DATADIR "@DATADIR@"

View File

@@ -386,6 +386,20 @@ static int _csync_treewalk_visitor(void *obj, void *data) {
SAFE_FREE(renamed_path);
}
if (!other_node) {
/* Check the source path as well. */
int len;
uint64_t h = 0;
char *renamed_path = csync_rename_adjust_path_source(ctx, cur->path);
if (!c_streq(renamed_path, cur->path)) {
len = strlen( renamed_path );
h = c_jhash64((uint8_t *) renamed_path, len, 0);
other_node = c_rbtree_find(other_tree, &h);
}
SAFE_FREE(renamed_path);
}
if (obj == NULL || data == NULL) {
ctx->status_code = CSYNC_STATUS_PARAM_ERROR;
return -1;

View File

@@ -233,6 +233,7 @@ CSYNC_EXCLUDE_TYPE csync_excluded_no_ctx(c_strlist_t *excludes, const char *path
}
// check the strlen and ignore the file if its name is longer than 254 chars.
// whenever changing this also check createDownloadTmpFileName
if (strlen(bname) > 254) {
match = CSYNC_FILE_EXCLUDE_LONG_FILENAME;
SAFE_FREE(bname);

View File

@@ -61,7 +61,7 @@ enum csync_log_priority_e {
};
#define CSYNC_LOG(priority, ...) \
csync_log(priority, __FUNCTION__, __VA_ARGS__)
csync_log(priority, __func__, __VA_ARGS__)
void csync_log(int verbosity,
const char *function,

View File

@@ -43,6 +43,7 @@ struct csync_rename_s {
}
std::map<std::string, std::string> folder_renamed_to; // map from->to
std::map<std::string, std::string> folder_renamed_from; // map to->from
struct renameop {
csync_file_stat_t *st;
@@ -63,6 +64,7 @@ void csync_rename_destroy(CSYNC* ctx)
void csync_rename_record(CSYNC* ctx, const char* from, const char* to)
{
csync_rename_s::get(ctx)->folder_renamed_to[from] = to;
csync_rename_s::get(ctx)->folder_renamed_from[to] = from;
}
char* csync_rename_adjust_path(CSYNC* ctx, const char* path)
@@ -78,4 +80,18 @@ char* csync_rename_adjust_path(CSYNC* ctx, const char* path)
return c_strdup(path);
}
char* csync_rename_adjust_path_source(CSYNC* ctx, const char* path)
{
csync_rename_s* d = csync_rename_s::get(ctx);
for (std::string p = _parentDir(path); !p.empty(); p = _parentDir(p)) {
std::map< std::string, std::string >::iterator it = d->folder_renamed_from.find(p);
if (it != d->folder_renamed_from.end()) {
std::string rep = it->second + (path + p.length());
return c_strdup(rep.c_str());
}
}
return c_strdup(path);
}
}

View File

@@ -26,7 +26,10 @@
extern "C" {
#endif
/* Return the final destination path of a given patch in case of renames */
char *csync_rename_adjust_path(CSYNC *ctx, const char *path);
/* Return the source of a given path in case of renames */
char *csync_rename_adjust_path_source(CSYNC *ctx, const char *path);
void csync_rename_destroy(CSYNC *ctx);
void csync_rename_record(CSYNC *ctx, const char *from, const char *to);

View File

@@ -621,7 +621,12 @@ int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
if (asp < 0) {
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "asprintf failed!");
}
} else if(errno == ERRNO_STORAGE_UNAVAILABLE) {
}
// The server usually replies with the custom "503 Storage not available"
// if some path is temporarily unavailable. But in some cases a standard 503
// is returned too. Thus we can't distinguish the two and will treat any
// 503 as request to ignore the folder. See #3113 #2884.
else if(errno == ERRNO_STORAGE_UNAVAILABLE || errno == ERRNO_SERVICE_UNAVAILABLE) {
CSYNC_LOG(CSYNC_LOG_PRIORITY_WARN, "Storage was not available!");
if (ctx->current_fs) {
ctx->current_fs->instruction = CSYNC_INSTRUCTION_IGNORE;

View File

@@ -42,7 +42,7 @@
#define DEBUG_HBF(...) { if(transfer->log_cb) { \
char buf[1024]; \
snprintf(buf, 1024, __VA_ARGS__); \
transfer->log_cb(__FUNCTION__, buf, transfer->user_data); \
transfer->log_cb(__func__, buf, transfer->user_data); \
} }
// #endif

View File

@@ -131,7 +131,7 @@ static void check_logging(void **state)
rc = csync_set_log_callback(check_log_callback);
assert_int_equal(rc, 0);
csync_log(1, __FUNCTION__, "rc = %d", rc);
csync_log(1, __func__, "rc = %d", rc);
rc = _tstat(path, &sb);

View File

@@ -124,7 +124,8 @@ sub initTesting(;$)
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0
}
$d = HTTP::DAV->new();
my $ua = HTTP::DAV::UserAgent->new(keep_alive => 1 );
$d = HTTP::DAV->new(-useragent => $ua);
$d->credentials( -url=> $owncloud, -realm=>"ownCloud",
-user=> $user,
@@ -191,7 +192,6 @@ sub removeRemoteDir($;$)
my ($dir, $optionsRef) = @_;
my $url = testDirUrl() . $dir;
if( $optionsRef && $optionsRef->{user} && $optionsRef->{passwd} ) {
$d->credentials( -url=> $owncloud, -realm=>"ownCloud",
-user=> $optionsRef->{user},
@@ -326,11 +326,11 @@ sub assertLocalDirs( $$ )
opendir(my $dh, $dir1 ) || die;
while(readdir $dh) {
assert( -e "$dir2/$_" );
assert( -e "$dir2/$_", " $dir2/$_ do not exist" );
next if( -d "$dir1/$_"); # don't compare directory sizes.
my $s1 = -s "$dir1/$_";
my $s2 = -s "$dir2/$_";
assert( $s1 == $s2, "$dir1/$_ <-> $dir2/$_" );
assert( $s1 == $s2, "$dir1/$_ <-> $dir2/$_ size not equal ($s1 != $s2)" );
}
closedir $dh;
}
@@ -524,7 +524,9 @@ sub put_to_dir( $$;$ )
my $filename = $file;
$filename =~ s/^.*\///;
$filename =~ s/#/%23/g; # poor man's URI encoder
my $puturl = $targetUrl . $dir. $filename;
print "put_to_dir puts to $puturl\n";
unless ($d->put( -local => $file, -url => $puturl )) {
print " ### FAILED to put a single file!\n";

View File

@@ -0,0 +1,85 @@
#!/usr/bin/perl
#
# Test script for the ownCloud module of csync.
# This script requires a running ownCloud instance accessible via HTTP.
# It does quite some fancy tests and asserts the results.
#
# Copyright (C) by Olivier Goffart <ogoffart@woboq.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
use lib ".";
use File::Copy;
use ownCloud::Test;
use strict;
print "Hello, this is t_recall, a tester for the recall feature\n";
initTesting();
printInfo( "Syncing two files with the same name that differ with case" );
#create some files
my $tmpdir = "/tmp/t_recall/";
mkdir($tmpdir);
createLocalFile( $tmpdir . "file1.dat", 100 );
createLocalFile( $tmpdir . "file2.dat", 150 );
createLocalFile( $tmpdir . "file3.dat", 110 );
createLocalFile( $tmpdir . "file4.dat", 170 );
#put them in some directories
createRemoteDir( "dir" );
glob_put( "$tmpdir/*", "dir" );
csync();
assertLocalAndRemoteDir( '', 0);
printInfo( "Testing with a .sys.admin#recall#" );
system("echo 'dir/file2.dat' > ". $tmpdir . ".sys.admin\#recall\#");
system("echo 'dir/file3.dat' >> ". $tmpdir . ".sys.admin\#recall\#");
glob_put( "$tmpdir/.sys.admin\#recall\#", "" );
csync();
#test that the recall files have been created
assert( -e glob(localDir().'dir/file2_.sys.admin#recall#-*.dat' ) );
assert( -e glob(localDir().'dir/file3_.sys.admin#recall#-*.dat' ) );
#Remove the recall file
unlink(localDir() . ".sys.admin#recall#");
# 2 sync necessary for the recall to be uploaded
csync();
assertLocalAndRemoteDir( '', 0);
printInfo( "Testing with a dir/.sys.admin#recall#" );
system("echo 'file4.dat' > ". $tmpdir . ".sys.admin\#recall\#");
glob_put( "$tmpdir/.sys.admin\#recall\#", "dir" );
csync();
assert( -e glob(localDir().'dir/file4_.sys.admin#recall#-*.dat' ) );
cleanup();
system("rm -r " . $tmpdir);

View File

@@ -25,9 +25,9 @@ The process of synchronization keeps files in two separate repositories the
same. When synchronized:
- If a file is added to one repository it is copied to the other synchronized repository.
- When a file is changed in one repository, the change is propagated to any
synchronized other repositories- If a file is deleted in one repository, it
is deleted in any other.
- When a file is changed in one repository, the change is propagated to any other
synchronized repository.
- If a file is deleted in one repository, it is deleted in any other.
It is important to note that the ownCloud synchronization process does not use
a typical client/server system where the server is always master. This is a

View File

@@ -61,12 +61,12 @@ Other issues can affect synchronization of your ownCloud files:
ensure that the folder to which you are synchronizing is not shared with
other synchronization applications.
- Synchronizing the same directory with ownCloud and other
synchronization software such as Unison, rsync, Microsoft Windows Offline
Folders, or other cloud services such as DropBox or Microsoft SkyDrive is not
supported and should not be attempted. In the worst case, it is possible that
synchronizing folders or files using ownCloud and other synchronization
software or services can result in data loss.
- Synchronizing the same directory with ownCloud and other synchronization
software such as Unison, rsync, Microsoft Windows Offline Folders, or other
cloud services such as DropBox or Microsoft SkyDrive is not supported and
should not be attempted. In the worst case, it is possible that synchronizing
folders or files using ownCloud and other synchronization software or
services can result in data loss.
- If you find that only specific files are not synrchronized, the
synchronization protocol might be having an effect. Some files are
@@ -80,9 +80,13 @@ Other issues can affect synchronization of your ownCloud files:
.. note:: The data directory on the server is exclusive to ownCloud and must not be modified manually.
If you are using a different file backend on the server, you can try to exclude a bug in the
- If you are using a different file backend on the server, you can try to exclude a bug in the
backend by reverting to the built-in backend.
- If you are experiencing slow upload/download speed or similar performance issues
be aware that those could be caused by on-access virus scanning solutions, either
on the server (like the files_antivirus app) or the client.
Log Files
---------
@@ -125,9 +129,9 @@ mentioned above to save the log to a file.
.. note:: You can also open a log window for an already running session, by
restarting the client using the following command:
* Windows: ``C:\Program Files (x86)\ownCloud\owncloud.exe --logwindow``
* Mac OS X: ``/Applications/owncloud.app/Contents/MacOS/owncloud --logwindow``
* Linux: ``owncloud --logwindow``
* Windows: ``C:\Program Files (x86)\ownCloud\owncloud.exe --logwindow``
* Mac OS X: ``/Applications/owncloud.app/Contents/MacOS/owncloud --logwindow``
* Linux: ``owncloud --logwindow``
Saving Files Directly
~~~~~~~~~~~~~~~~~~~~~

View File

@@ -17,6 +17,7 @@
@interface ContentManager : NSObject
{
NSMutableDictionary* _fileNamesCache;
NSMutableDictionary* _oldFileNamesCache;
BOOL _fileIconsEnabled;
BOOL _hasChangedContent;
@@ -35,10 +36,9 @@
- (void)enableFileIcons:(BOOL)enable;
- (NSNumber*)iconByPath:(NSString*)path isDirectory:(BOOL)isDir;
- (void)removeAllIcons;
- (void)removeIcons:(NSArray*)paths;
- (void)setIcons:(NSDictionary*)iconDictionary filterByFolder:(NSString*)filterFolder;
- (void)setResultForPath:(NSString*)path result:(NSString*)result;
- (void)clearFileNameCacheForPath:(NSString*)path;
- (void)clearFileNameCache;
- (void)reFetchFileNameCacheForPath:(NSString*)path;
- (void)repaintAllWindows;

View File

@@ -30,6 +30,7 @@ static ContentManager* sharedInstance = nil;
if (self)
{
_fileNamesCache = [[NSMutableDictionary alloc] init];
_oldFileNamesCache = [[NSMutableDictionary alloc] init];
_fileIconsEnabled = TRUE;
_hasChangedContent = TRUE;
}
@@ -41,6 +42,7 @@ static ContentManager* sharedInstance = nil;
{
[self removeAllIcons];
[_fileNamesCache release];
[_oldFileNamesCache release];
sharedInstance = nil;
[super dealloc];
@@ -148,84 +150,48 @@ static ContentManager* sharedInstance = nil;
if( result == nil ) {
// start the async call
NSNumber *askState = [[RequestManager sharedInstance] askForIcon:normalizedPath isDirectory:isDir];
[_fileNamesCache setObject:askState forKey:normalizedPath];
[[RequestManager sharedInstance] askForIcon:normalizedPath isDirectory:isDir];
result = [NSNumber numberWithInt:0];
} else if( [result intValue] == -1 ) {
// the socket call is underways.
result = [NSNumber numberWithInt:0];
} else {
// there is a proper icon index
// Set 0 into the cache, meaning "don't have an icon, but already requested it"
[_fileNamesCache setObject:result forKey:normalizedPath];
}
// NSLog(@"iconByPath return value %d", [result intValue]);
if ([result intValue] == 0) {
// Show the old state while we wait for the new one
NSNumber* oldResult = [_oldFileNamesCache objectForKey:normalizedPath];
if (oldResult)
result = oldResult;
}
// NSLog(@"iconByPath return value %d", [result intValue]);
return result;
}
// called as a result of an UPDATE_VIEW message.
// it clears the entries from the hash to make it call again home to the desktop client.
- (void)clearFileNameCacheForPath:(NSString*)path
// Clears the entries from the hash to make it call again home to the desktop client.
- (void)clearFileNameCache
{
//NSLog(@"%@", NSStringFromSelector(_cmd));
NSMutableArray *keysToDelete = [NSMutableArray array];
if( path != nil ) {
for (id p in [_fileNamesCache keyEnumerator]) {
//do stuff with obj
if ( [p hasPrefix:path] ) {
[keysToDelete addObject:p];
}
}
} else {
// clear the entire fileNameCache
[_fileNamesCache release];
_fileNamesCache = [[NSMutableDictionary alloc] init];
return;
}
if( [keysToDelete count] > 0 ) {
NSLog( @"Entries to delete: %lu", (unsigned long)[keysToDelete count]);
[_fileNamesCache removeObjectsForKeys:keysToDelete];
}
[_fileNamesCache release];
_fileNamesCache = [[NSMutableDictionary alloc] init];
[_oldFileNamesCache removeAllObjects];
}
- (void)reFetchFileNameCacheForPath:(NSString*)path
{
NSLog(@"%@", NSStringFromSelector(_cmd));
//NSLog(@"%@", NSStringFromSelector(_cmd));
for (id p in [_fileNamesCache keyEnumerator]) {
if ( path && [p hasPrefix:path] ) {
[[RequestManager sharedInstance] askForIcon:p isDirectory:false]; // FIXME isDirectory parameter
//[_fileNamesCache setObject:askState forKey:p]; We don't do this since we want to keep the old icon meanwhile
//NSLog(@"%@ %@", NSStringFromSelector(_cmd), p);
}
}
// We won't request the new state if if finds the path in _fileNamesCache
// Move all entries to _oldFileNamesCache so that the get re-requested, but
// still available while we refill the cache
[_oldFileNamesCache addEntriesFromDictionary:_fileNamesCache];
[_fileNamesCache removeAllObjects];
// Ask for directory itself
if ([path hasSuffix:@"/"]) {
path = [path substringToIndex:path.length - 1];
}
[[RequestManager sharedInstance] askForIcon:path isDirectory:true];
//NSLog(@"%@ %@", NSStringFromSelector(_cmd), path);
[self repaintAllWindows];
}
- (void)removeAllIcons
{
[_fileNamesCache removeAllObjects];
[self repaintAllWindows];
}
- (void)removeIcons:(NSArray*)paths
{
for (NSString* path in paths)
{
NSString* normalizedPath = [path decomposedStringWithCanonicalMapping];
[_fileNamesCache removeObjectForKey:normalizedPath];
}
[_oldFileNamesCache removeAllObjects];
[self repaintAllWindows];
}
@@ -361,6 +327,7 @@ static ContentManager* sharedInstance = nil;
}
else
{
[_oldFileNamesCache removeObjectForKey:normalizedPath];
[_fileNamesCache setObject:iconId forKey:normalizedPath];
}
}

View File

@@ -22,6 +22,7 @@
NSMutableArray* _requestQueue;
NSMutableDictionary* _registeredPathes;
NSMutableSet* _requestedPaths;
NSString *_shareMenuTitle;
@@ -34,7 +35,7 @@
- (BOOL)isRegisteredPath:(NSString*)path isDirectory:(BOOL)isDir;
- (void)askOnSocket:(NSString*)path query:(NSString*)verb;
- (NSNumber*)askForIcon:(NSString*)path isDirectory:(BOOL)isDir;
- (void)askForIcon:(NSString*)path isDirectory:(BOOL)isDir;
- (void)menuItemClicked:(NSDictionary*)actionDictionary;
- (void)start;

View File

@@ -31,6 +31,7 @@ static RequestManager* sharedInstance = nil;
_isConnected = NO;
_registeredPathes = [[NSMutableDictionary alloc] init];
_requestedPaths = [[NSMutableSet alloc] init];
_shareMenuTitle = nil;
@@ -101,28 +102,23 @@ static RequestManager* sharedInstance = nil;
return registered;
}
- (NSNumber*)askForIcon:(NSString*)path isDirectory:(BOOL)isDir
- (void)askForIcon:(NSString*)path isDirectory:(BOOL)isDir
{
NSString *verb = @"RETRIEVE_FILE_STATUS";
NSNumber *res = [NSNumber numberWithInt:0];
if( [self isRegisteredPath:path isDirectory:isDir] ) {
[_requestedPaths addObject:path];
if( _isConnected ) {
if(isDir) {
verb = @"RETRIEVE_FOLDER_STATUS";
}
[self askOnSocket:path query:verb];
NSNumber *res_minus_one = [NSNumber numberWithInt:0];
return res_minus_one;
} else {
[_requestQueue addObject:path];
[self start]; // try again to connect
}
}
return res;
}
@@ -147,9 +143,13 @@ static RequestManager* sharedInstance = nil;
path, [chunks objectAtIndex:i+1] ];
}
}
[contentman setResultForPath:path result:[chunks objectAtIndex:1]];
// The client will broadcast all changes, do not fill the cache for paths that Finder didn't ask for.
if ([_requestedPaths containsObject:path]) {
[contentman setResultForPath:path result:[chunks objectAtIndex:1]];
}
} else if( [[chunks objectAtIndex:0] isEqualToString:@"UPDATE_VIEW"] ) {
NSString *path = [chunks objectAtIndex:1];
[_requestedPaths removeAllObjects];
[contentman reFetchFileNameCacheForPath:path];
} else if( [[chunks objectAtIndex:0 ] isEqualToString:@"REGISTER_PATH"] ) {
NSNumber *one = [NSNumber numberWithInt:1];
@@ -198,10 +198,11 @@ static RequestManager* sharedInstance = nil;
for( NSString *path in _requestQueue ) {
[self askOnSocket:path query:@"RETRIEVE_FILE_STATUS"];
}
[_requestQueue removeAllObjects];
}
ContentManager *contentman = [ContentManager sharedInstance];
[contentman clearFileNameCacheForPath:nil];
[contentman clearFileNameCache];
[contentman repaintAllWindows];
// Read for the UPDATE_VIEW requests
@@ -218,10 +219,11 @@ static RequestManager* sharedInstance = nil;
// clear the registered pathes.
[_registeredPathes release];
_registeredPathes = [[NSMutableDictionary alloc] init];
[_requestedPaths removeAllObjects];
// clear the caches in conent manager
ContentManager *contentman = [ContentManager sharedInstance];
[contentman clearFileNameCacheForPath:nil];
[contentman clearFileNameCache];
[contentman repaintAllWindows];
}

View File

@@ -1,5 +1,6 @@
#!/bin/sh
# osascript $HOME/owncloud.com/client/shell_integration/MacOSX/unload.scpt
SELFPATH=`dirname $0`
# osascript $SELFPATH/unload.scpt
sudo rm -rf /Library/ScriptingAdditions/SyncStateFinder.osax
# Klaas' machine
@@ -12,6 +13,6 @@ OSAXDIR=$HOME/Library/Developer/Xcode/DerivedData/OwnCloud-*/Build/Products/Debu
sudo killall Finder
sleep 1
osascript $HOME/owncloud.com/client/shell_integration/MacOSX/load.scpt
osascript $HOME/owncloud.com/client/shell_integration/MacOSX/check.scpt
osascript $SELFPATH/load.scpt
osascript $SELFPATH/check.scpt

View File

@@ -98,6 +98,8 @@ void RemotePathChecker::workerThreadLoop()
++it;
}
}
// Assume that we won't need this at this point, UNREGISTER_PATH is rare
_oldCache.clear();
}
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_PATH | SHCNF_FLUSHNOWAIT, responsePath.data(), NULL);
} else if (StringUtil::begins_with(response, wstring(L"STATUS:")) ||
@@ -115,13 +117,16 @@ void RemotePathChecker::workerThreadLoop()
auto responseStatus = response.substr(statusBegin+1, statusEnd - statusBegin-1);
auto responsePath = response.substr(statusEnd+1);
auto state = _StrToFileState(responseStatus);
auto erased = asked.erase(responsePath);
bool wasAsked = asked.erase(responsePath) > 0;
bool changed = false;
{ std::unique_lock<std::mutex> lock(_mutex);
auto &it = _cache[responsePath];
changed = (it != state);
it = state;
bool wasCached = _cache.find(responsePath) != _cache.end();
if (wasAsked || wasCached) {
auto &it = _cache[responsePath];
changed = (it != state);
it = state;
}
}
if (changed) {
SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH | SHCNF_FLUSHNOWAIT, responsePath.data(), NULL);
@@ -129,20 +134,25 @@ void RemotePathChecker::workerThreadLoop()
}
else if (StringUtil::begins_with(response, wstring(L"UPDATE_VIEW"))) {
std::unique_lock<std::mutex> lock(_mutex);
auto cache = _cache; // Make a copy of the cache under the mutex
// Keep the old states to continue having something to display while the new state is
// requested from the client, triggered by clearing _cache.
_oldCache.insert(_cache.cbegin(), _cache.cend());
// Swap to make a copy of the cache under the mutex and clear the one stored.
std::unordered_map<std::wstring, FileState> cache;
swap(cache, _cache);
lock.unlock();
// Request a status for all the items in the cache.
for (auto it = cache.begin(); it != cache.end(); ++it) {
if (!socket.SendMsg(wstring(L"RETRIEVE_FILE_STATUS:" + it->first + L'\n').data())) {
break;
}
}
}
// Let explorer know about the invalidated cache entries, it will re-request the ones it needs.
for (auto it = cache.begin(); it != cache.end(); ++it) {
SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH | SHCNF_FLUSHNOWAIT, it->first.data(), NULL);
}
}
}
if (socket.Event() == INVALID_HANDLE_VALUE) {
std::unique_lock<std::mutex> lock(_mutex);
_cache.clear();
_oldCache.clear();
_watchedDirectories.clear();
_connected = connected = false;
}
@@ -195,11 +205,17 @@ bool RemotePathChecker::IsMonitoredPath(const wchar_t* filePath, int* state)
return true;
}
// Re-request the status while we display what we have in _oldCache
_pending.push(filePath);
it = _oldCache.find(path);
bool foundInOldCache = it != _oldCache.end();
if (foundInOldCache)
*state = it->second;
lock.unlock();
SetEvent(_newQueries);
return false;
return foundInOldCache;
}
RemotePathChecker::FileState RemotePathChecker::_StrToFileState(const std::wstring &str)

View File

@@ -52,6 +52,7 @@ private:
std::queue<std::wstring> _pending;
std::unordered_map<std::wstring, FileState> _cache;
std::unordered_map<std::wstring, FileState> _oldCache;
std::vector<std::wstring> _watchedDirectories;
bool _connected;

View File

@@ -234,7 +234,7 @@ void AccountSettings::slotAddFolder( Folder *folder )
if( ! folder || folder->alias().isEmpty() ) return;
QStandardItem *item = new QStandardItem();
folderToModelItem( item, folder, _accountState && _accountState->isConnectedOrMaintenance());
folderToModelItem( item, folder, _accountState && _accountState->isConnectedOrTemporarilyUnavailable());
_model->appendRow( item );
// in order to update the enabled state of the "Sync now" button
connect(folder, SIGNAL(syncStateChange()), this, SLOT(slotFolderSyncStateChange()), Qt::UniqueConnection);
@@ -537,7 +537,7 @@ void AccountSettings::slotUpdateFolderState( Folder *folder )
}
if( item ) {
folderToModelItem( item, folder, _accountState->isConnectedOrMaintenance() );
folderToModelItem( item, folder, _accountState->isConnectedOrTemporarilyUnavailable() );
} else {
// the dialog is not visible.
}
@@ -794,7 +794,7 @@ void AccountSettings::slotAccountStateChanged(int state)
foreach (Folder *folder, folderMan->map().values()) {
slotUpdateFolderState(folder);
}
if (state == AccountState::Connected || state == AccountState::ServerMaintenance) {
if (state == AccountState::Connected || state == AccountState::ServiceUnavailable) {
QString user;
if (AbstractCredentials *cred = account->credentials()) {
user = cred->user();

View File

@@ -40,6 +40,9 @@
<property name="text">
<string>Connected with &lt;server&gt; as &lt;user&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
</layout>

View File

@@ -114,9 +114,10 @@ void AccountState::setState(State state)
} else if (oldState == SignedOut && _state == Disconnected) {
checkConnectivity();
}
emit stateChanged(_state);
}
// might not have changed but the underlying _connectionErrors might have
emit stateChanged(_state);
}
QString AccountState::stateString(State state)
@@ -129,8 +130,8 @@ QString AccountState::stateString(State state)
return QLatin1String("Disconnected");
case Connected:
return QLatin1String("Connected");
case ServerMaintenance:
return QLatin1String("ServerMaintenance");
case ServiceUnavailable:
return QLatin1String("ServiceUnavailable");
case NetworkError:
return QLatin1String("NetworkError");
case ConfigurationError:
@@ -158,9 +159,9 @@ bool AccountState::isConnected() const
return _state == Connected;
}
bool AccountState::isConnectedOrMaintenance() const
bool AccountState::isConnectedOrTemporarilyUnavailable() const
{
return isConnected() || _state == ServerMaintenance;
return isConnected() || _state == ServiceUnavailable;
}
QuotaInfo *AccountState::quotaInfo()
@@ -174,7 +175,12 @@ void AccountState::checkConnectivity()
return;
}
if (_connectionValidator) {
qDebug() << "ConnectionValidator already running, ignoring";
return;
}
ConnectionValidator * conValidator = new ConnectionValidator(account());
_connectionValidator = conValidator;
connect(conValidator, SIGNAL(connectionResult(ConnectionValidator::Status,QStringList)),
SLOT(slotConnectionValidatorResult(ConnectionValidator::Status,QStringList)));
if (isConnected()) {
@@ -202,6 +208,7 @@ void AccountState::slotConnectionValidatorResult(ConnectionValidator::Status sta
return;
}
auto oldStatus = _connectionStatus;
if (_connectionStatus != status) {
qDebug() << "AccountState connection status change: "
<< connectionStatusString(_connectionStatus) << "->"
@@ -213,7 +220,9 @@ void AccountState::slotConnectionValidatorResult(ConnectionValidator::Status sta
switch (status)
{
case ConnectionValidator::Connected:
setState(Connected);
if (oldStatus != ConnectionValidator::Connected) {
setState(Connected);
}
break;
case ConnectionValidator::Undefined:
case ConnectionValidator::NotConfigured:
@@ -234,8 +243,8 @@ void AccountState::slotConnectionValidatorResult(ConnectionValidator::Status sta
case ConnectionValidator::UserCanceledCredentials:
setState(SignedOut);
break;
case ConnectionValidator::ServerMaintenance:
setState(ServerMaintenance);
case ConnectionValidator::ServiceUnavailable:
setState(ServiceUnavailable);
break;
case ConnectionValidator::Timeout:
setState(NetworkError);
@@ -263,6 +272,12 @@ void AccountState::slotCredentialsFetched(AbstractCredentials* credentials)
return;
}
// When new credentials become available we always want to restart the
// connection validation, even if it's currently running.
if (_connectionValidator) {
delete _connectionValidator;
}
checkConnectivity();
}

View File

@@ -16,6 +16,7 @@
#define ACCOUNTINFO_H
#include <QByteArray>
#include <QPointer>
#include "utility.h"
#include "connectionvalidator.h"
@@ -67,9 +68,9 @@ public:
/// The account is successfully talking to the server.
Connected,
/// The account is talking to the server, but the server is in
/// maintenance mode.
ServerMaintenance,
/// There's a temporary problem with talking to the server,
/// don't bother the user too much and try again.
ServiceUnavailable,
/// Could not communicate with the server for some reason.
/// We assume this may resolve itself over time and will try
@@ -100,7 +101,7 @@ public:
void setSignedOut(bool signedOut);
bool isConnected() const;
bool isConnectedOrMaintenance() const;
bool isConnectedOrTemporarilyUnavailable() const;
QuotaInfo *quotaInfo();
@@ -128,6 +129,7 @@ private:
ConnectionStatus _connectionStatus;
QStringList _connectionErrors;
bool _waitingForNewCredentials;
QPointer<ConnectionValidator> _connectionValidator;
};
}

View File

@@ -110,6 +110,15 @@ Application::Application(int &argc, char **argv) :
if (isRunning())
return;
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0) && QT_VERSION < QT_VERSION_CHECK(5, 4, 2)
// Workaround for QTBUG-44576: Make sure a stale QSettings lock file
// is deleted. (Introduced in Qt 5.4.0 and fixed in Qt 5.4.2)
{
QString lockFilePath = ConfigFile().configFile() + QLatin1String(".lock");
QLockFile(lockFilePath).removeStaleLockFile();
}
#endif
#if defined(WITH_CRASHREPORTER)
if (ConfigFile().crashReporter())
_crashHandler.reset(new CrashReporter::Handler( QDir::tempPath(), true, CRASHREPORTER_EXECUTABLE ));
@@ -270,7 +279,7 @@ void Application::slotAccountStateChanged(int state)
folderMan->setSyncEnabled(true);
folderMan->slotScheduleAllFolders();
break;
case AccountState::ServerMaintenance:
case AccountState::ServiceUnavailable:
case AccountState::SignedOut:
case AccountState::ConfigurationError:
case AccountState::NetworkError:

View File

@@ -32,6 +32,7 @@ class SelectiveSyncTreeView;
class ownCloudInfo;
class FormatWarningsWizardPage : public QWizardPage {
Q_OBJECT
protected:
QString formatWarnings(const QStringList &warnings) const;
};

View File

@@ -221,7 +221,7 @@ void ownCloudGui::slotComputeOverallSyncStatus()
_tray->setToolTip(tr("Please sign in"));
return;
}
if (!a->isConnectedOrMaintenance()) {
if (!a->isConnectedOrTemporarilyUnavailable()) {
_tray->setIcon(Theme::instance()->folderOfflineIcon(true));
_tray->setToolTip(tr("Disconnected from server"));
return;

View File

@@ -189,6 +189,10 @@ void OwncloudSetupWizard::slotNoOwnCloudFoundAuth(QNetworkReply *reply)
.arg(Theme::instance()->appNameGUI(),
reply->url().toString(),
reply->errorString()), checkDowngradeAdvised(reply));
// Allow the credentials dialog to pop up again for the same URL.
// Maybe the user just clicked 'Cancel' by accident or changed his mind.
_ocWizard->account()->resetSslCertErrorState();
}
void OwncloudSetupWizard::slotNoOwnCloudFoundAuthTimeout(const QUrl&url)
@@ -263,11 +267,12 @@ void OwncloudSetupWizard::slotAuthError()
// Provide messages for other errors, such as invalid credentials.
} else if (reply->error() != QNetworkReply::NoError) {
errorMsg = reply->errorString();
if (!_ocWizard->account()->credentials()->stillValid(reply)) {
errorMsg = tr("Access forbidden by server. To verify that you have proper access, "
"<a href=\"%1\">click here</a> to access the service with your browser.")
.arg(_ocWizard->account()->url().toString());
} else {
errorMsg = errorMessage(reply->errorString(), reply->readAll());
}
// Something else went wrong, maybe the response was 200 but with invalid data.

View File

@@ -206,7 +206,7 @@ QTreeWidgetItem* ProtocolWidget::createCompletedTreewidgetItem(const QString& fo
const QString longTimeStr = timeString(timestamp, QLocale::LongFormat);
columns << timeStr;
columns << fixupFilename(item._file);
columns << fixupFilename(item._originalFile);
columns << folder;
// If the error string is set, it's prefered because it is a useful user message.

View File

@@ -144,6 +144,15 @@ void ShareDialog::done( int r ) {
QDialog::done(r);
}
static int getJsonReturnCode(const QVariantMap &json, QString &message)
{
//TODO proper checking
int code = json.value("ocs").toMap().value("meta").toMap().value("statuscode").toInt();
message = json.value("ocs").toMap().value("meta").toMap().value("message").toString();
return code;
}
void ShareDialog::setExpireDate(const QDate &date)
{
if( _public_share_id == 0 ) {
@@ -162,16 +171,14 @@ void ShareDialog::setExpireDate(const QDate &date)
OcsShareJob *job = new OcsShareJob("PUT", url, _account, this);
job->setPostParams(postParams);
connect(job, SIGNAL(jobFinished(QString)), this, SLOT(slotExpireSet(QString)));
connect(job, SIGNAL(jobFinished(QVariantMap)), this, SLOT(slotExpireSet(QVariantMap)));
job->start();
}
void ShareDialog::slotExpireSet(const QString &reply)
void ShareDialog::slotExpireSet(const QVariantMap &reply)
{
QString message;
int code = checkJsonReturnCode(reply, message);
qDebug() << Q_FUNC_INFO << "Status code: " << code;
int code = getJsonReturnCode(reply, message);
if (code != 100) {
displayError(code);
}
@@ -234,18 +241,15 @@ void ShareDialog::setPassword(const QString &password)
}
OcsShareJob *job = new OcsShareJob(verb, url, _account, this);
job->setPostParams(requestParams);
connect(job, SIGNAL(jobFinished(QString)), this, SLOT(slotPasswordSet(QString)));
connect(job, SIGNAL(jobFinished(QVariantMap)), this, SLOT(slotPasswordSet(QVariantMap)));
job->start();
_passwordJobRunning = true;
}
void ShareDialog::slotPasswordSet(const QString &reply)
void ShareDialog::slotPasswordSet(const QVariantMap &reply)
{
QString message;
int code = checkJsonReturnCode(reply, message);
qDebug() << Q_FUNC_INFO << "Status code: " << code;
int code = getJsonReturnCode(reply, message);
if (code != 100) {
displayError(code);
}
@@ -267,23 +271,20 @@ void ShareDialog::getShares()
params.append(qMakePair(QString::fromLatin1("path"), _sharePath));
url.setQueryItems(params);
OcsShareJob *job = new OcsShareJob("GET", url, _account, this);
connect(job, SIGNAL(jobFinished(QString)), this, SLOT(slotSharesFetched(QString)));
job->addPassStatusCode(404); // don't report error if share doesn't exist yet
connect(job, SIGNAL(jobFinished(QVariantMap)), this, SLOT(slotSharesFetched(QVariantMap)));
job->start();
}
void ShareDialog::slotSharesFetched(const QString &reply)
void ShareDialog::slotSharesFetched(const QVariantMap &reply)
{
QString message;
int code = checkJsonReturnCode(reply, message);
qDebug() << Q_FUNC_INFO << "Status code: " << code;
int code = getJsonReturnCode(reply, message);
if (code != 100 && code != 404) {
displayError(code);
}
bool success = false;
QVariantMap json = QtJson::parse(reply, success).toMap();
ShareDialog::_shares = json.value("ocs").toMap().value("data").toList();
ShareDialog::_shares = reply.value("ocs").toMap().value("data").toList();
const QString versionString = AccountManager::instance()->account()->serverVersion();
Q_FOREACH(auto share, ShareDialog::_shares) {
@@ -291,6 +292,7 @@ void ShareDialog::slotSharesFetched(const QString &reply)
if (data.value("share_type").toInt() == SHARETYPE_PUBLIC) {
_public_share_id = data.value("id").toULongLong();
_ui->pushButton_copy->show();
_ui->widget_shareLink->show();
_ui->checkBox_shareLink->setChecked(true);
@@ -384,12 +386,10 @@ void ShareDialog::setShareLink( const QString& url )
}
void ShareDialog::slotDeleteShareFetched(const QString &reply)
void ShareDialog::slotDeleteShareFetched(const QVariantMap &reply)
{
QString message;
int code = checkJsonReturnCode(reply, message);
qDebug() << Q_FUNC_INFO << "Status code: " << code;
int code = getJsonReturnCode(reply, message);
if (code != 100) {
displayError(code);
}
@@ -423,29 +423,31 @@ void ShareDialog::slotCheckBoxShareLinkClicked()
postParams.append(qMakePair(QString::fromLatin1("shareType"), QString::number(SHARETYPE_PUBLIC)));
OcsShareJob *job = new OcsShareJob("POST", url, _account, this);
job->setPostParams(postParams);
connect(job, SIGNAL(jobFinished(QString)), this, SLOT(slotCreateShareFetched(QString)));
job->addPassStatusCode(403); // "password required" is not an error
connect(job, SIGNAL(jobFinished(QVariantMap)), this, SLOT(slotCreateShareFetched(QVariantMap)));
job->start();
} else {
_pi_link->startAnimation();
QUrl url = Account::concatUrlPath(_account->url(), QString("ocs/v1.php/apps/files_sharing/api/v1/shares/%1").arg(_public_share_id));
OcsShareJob *job = new OcsShareJob("DELETE", url, _account, this);
connect(job, SIGNAL(jobFinished(QString)), this, SLOT(slotDeleteShareFetched(QString)));
connect(job, SIGNAL(jobFinished(QVariantMap)), this, SLOT(slotDeleteShareFetched(QVariantMap)));
job->start();
}
}
void ShareDialog::slotCreateShareFetched(const QString &reply)
void ShareDialog::slotCreateShareFetched(const QVariantMap &reply)
{
QString message;
int code = checkJsonReturnCode(reply, message);
int code = getJsonReturnCode(reply, message);
_pi_link->stopAnimation();
if (code == 403) {
// there needs to be a password
_ui->checkBox_password->setChecked(true);
_ui->checkBox_password->setVisible(false);
_ui->checkBox_password->setText(tr("Public sh&aring requires a password:"));
_ui->checkBox_password->setEnabled(false);
_ui->checkBox_password->setText(tr("Public sh&aring requires a password"));
_ui->lineEdit_password->setFocus();
_ui->pushButton_copy->hide();
_ui->widget_shareLink->show();
slotCheckBoxPasswordClicked();
@@ -455,9 +457,8 @@ void ShareDialog::slotCreateShareFetched(const QString &reply)
return;
}
bool success;
QVariantMap json = QtJson::parse(reply, success).toMap();
_public_share_id = json.value("ocs").toMap().values("data")[0].toMap().value("id").toULongLong();
_public_share_id = reply.value("ocs").toMap().values("data")[0].toMap().value("id").toULongLong();
_ui->pushButton_copy->show();
getShares();
}
@@ -466,7 +467,7 @@ void ShareDialog::slotCheckBoxPasswordClicked()
if (_ui->checkBox_password->checkState() == Qt::Checked) {
_ui->lineEdit_password->show();
_ui->pushButton_setPassword->show();
_ui->lineEdit_password->setPlaceholderText(tr("Choose a password for the public link"));
_ui->lineEdit_password->setPlaceholderText(tr("Password"));
_ui->lineEdit_password->setFocus();
} else {
ShareDialog::setPassword(QString());
@@ -500,22 +501,6 @@ void ShareDialog::slotPushButtonCopyLinkPressed()
clipboard->setText(_shareUrl);
}
int ShareDialog::checkJsonReturnCode(const QString &reply, QString &message)
{
bool success;
QVariantMap json = QtJson::parse(reply, success).toMap();
if (!success) {
qDebug() << Q_FUNC_INFO << "Failed to parse reply";
}
//TODO proper checking
int code = json.value("ocs").toMap().value("meta").toMap().value("statuscode").toInt();
message = json.value("ocs").toMap().value("meta").toMap().value("message").toString();
return code;
}
void ShareDialog::setShareCheckBoxTitle(bool haveShares)
{
const QString noSharesTitle(tr("&Share link"));
@@ -672,6 +657,7 @@ OcsShareJob::OcsShareJob(const QByteArray &verb, const QUrl &url, AccountPtr acc
_verb(verb),
_url(url)
{
_passStatusCodes.append(100);
setIgnoreCredentialFailure(true);
}
@@ -680,6 +666,11 @@ void OcsShareJob::setPostParams(const QList<QPair<QString, QString> >& postParam
_postParams = postParams;
}
void OcsShareJob::addPassStatusCode(int code)
{
_passStatusCodes.append(code);
}
void OcsShareJob::start()
{
QNetworkRequest req;
@@ -711,7 +702,23 @@ void OcsShareJob::start()
bool OcsShareJob::finished()
{
emit jobFinished(reply()->readAll());
const QString replyData = reply()->readAll();
bool success;
QVariantMap json = QtJson::parse(replyData, success).toMap();
if (!success) {
qDebug() << "Could not parse reply to" << _verb << _url << _postParams
<< ":" << replyData;
}
QString message;
const int statusCode = getJsonReturnCode(json, message);
if (!_passStatusCodes.contains(statusCode)) {
qDebug() << "Reply to" << _verb << _url << _postParams
<< "has unexpected status code:" << statusCode << replyData;
}
emit jobFinished(json);
return true;
}

View File

@@ -29,17 +29,19 @@ public:
explicit OcsShareJob(const QByteArray& verb, const QUrl& url, AccountPtr account, QObject* parent = 0);
void setPostParams(const QList<QPair<QString, QString> >& postParams);
void addPassStatusCode(int code);
public slots:
void start() Q_DECL_OVERRIDE;
signals:
void jobFinished(QString reply);
void jobFinished(QVariantMap reply);
private slots:
virtual bool finished() Q_DECL_OVERRIDE;
private:
QByteArray _verb;
QUrl _url;
QList<QPair<QString, QString> > _postParams;
QVector<int> _passStatusCodes;
};
@@ -62,11 +64,11 @@ public:
void getShares();
private slots:
void slotSharesFetched(const QString &reply);
void slotCreateShareFetched(const QString &reply);
void slotDeleteShareFetched(const QString &reply);
void slotPasswordSet(const QString &reply);
void slotExpireSet(const QString &reply);
void slotSharesFetched(const QVariantMap &reply);
void slotCreateShareFetched(const QVariantMap &reply);
void slotDeleteShareFetched(const QVariantMap &reply);
void slotPasswordSet(const QVariantMap &reply);
void slotExpireSet(const QVariantMap &reply);
void slotCalendarClicked(const QDate &date);
void slotCheckBoxShareLinkClicked();
void slotCheckBoxPasswordClicked();
@@ -101,7 +103,6 @@ private:
qulonglong _public_share_id;
void setPassword(const QString &password);
void setExpireDate(const QDate &date);
int checkJsonReturnCode(const QString &reply, QString &message);
QProgressIndicator *_pi_link;
QProgressIndicator *_pi_password;

View File

@@ -111,15 +111,33 @@ SparkleUpdater::~SparkleUpdater()
delete d;
}
bool autoUpdaterAllowed()
{
// See https://github.com/owncloud/client/issues/2931
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSString *expectedPath = [NSString stringWithFormat:@"/Applications/%@", [bundlePath lastPathComponent]];
if ([expectedPath isEqualTo:bundlePath]) {
return true;
}
qWarning() << "ERROR: We are not in /Applications, won't check for update!";
return false;
}
void SparkleUpdater::checkForUpdate()
{
[d->updater checkForUpdates: NSApp];
if (autoUpdaterAllowed()) {
[d->updater checkForUpdates: NSApp];
}
}
void SparkleUpdater::backgroundCheckForUpdate()
{
qDebug() << Q_FUNC_INFO << "launching background check";
[d->updater checkForUpdatesInBackground];
if (autoUpdaterAllowed()) {
[d->updater checkForUpdatesInBackground];
}
}
} // namespace OCC

View File

@@ -57,6 +57,9 @@
<property name="text">
<string>Error Label</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">

View File

@@ -61,6 +61,7 @@ OwncloudSetupPage::OwncloudSetupPage(QWidget *parent)
setupCustomization();
slotUrlChanged(QLatin1String("")); // don't jitter UI
connect(_ui.leUrl, SIGNAL(textChanged(QString)), SLOT(slotUrlChanged(QString)));
connect(_ui.leUrl, SIGNAL(editingFinished()), SLOT(slotUrlEditFinished()));
@@ -115,7 +116,7 @@ void OwncloudSetupPage::slotUrlChanged(const QString& url)
_ui.leUrl->setText(newUrl);
}
if (url.startsWith(QLatin1String("http://"))) {
if (!url.startsWith(QLatin1String("https://"))) {
_ui.urlLabel->setPixmap(QPixmap(Theme::hidpiFileName(":/client/resources/lock-http.png")));
_ui.urlLabel->setToolTip(tr("This url is NOT secure as it is not encrypted.\n"
"It is not advisable to use it."));

View File

@@ -61,6 +61,7 @@ set(libsync_SRCS
theme.cpp
utility.cpp
ownsql.cpp
transmissionchecksumvalidator.cpp
creds/dummycredentials.cpp
creds/abstractcredentials.cpp
creds/credentialsfactory.cpp
@@ -141,6 +142,11 @@ if(NEON_FOUND)
endif()
endif()
if(ZLIB_FOUND)
list(APPEND libsync_LINK_TARGETS ${ZLIB_LIBRARIES})
include_directories(${ZLIB_INCLUDE_DIRS})
endif(ZLIB_FOUND)
add_library(${synclib_NAME} SHARED ${libsync_SRCS} ${syncMoc})
GENERATE_EXPORT_HEADER( ${synclib_NAME}
BASE_NAME ${synclib_NAME}
@@ -151,9 +157,9 @@ GENERATE_EXPORT_HEADER( ${synclib_NAME}
if(TOKEN_AUTH_ONLY)
qt5_use_modules(${synclib_NAME} Network)
qt5_use_modules(${synclib_NAME} Network Concurrent)
else()
qt5_use_modules(${synclib_NAME} Widgets Network WebKitWidgets)
qt5_use_modules(${synclib_NAME} Widgets Network WebKitWidgets Concurrent)
endif()
set_target_properties( ${synclib_NAME} PROPERTIES

View File

@@ -400,6 +400,11 @@ void Account::addApprovedCerts(const QList<QSslCertificate> certs)
_approvedCerts += certs;
}
void Account::resetSslCertErrorState()
{
_treatSslErrorsAsFailure = false;
}
void Account::setSslErrorHandler(AbstractSslErrorHandler *handler)
{
_sslErrorHandler.reset(handler);
@@ -498,6 +503,11 @@ void Account::slotHandleErrors(QNetworkReply *reply , QList<QSslError> errors)
reply->ignoreSslErrors();
} else {
_treatSslErrorsAsFailure = true;
// if during normal operation, a new certificate was MITM'ed, and the user does not
// ACK it, the running request must be aborted and the QNAM must be reset, to not
// treat the new cert as granted. See bug #3283
reply->abort();
resetNetworkAccessManager();
return;
}
}

View File

@@ -132,6 +132,11 @@ public:
void setApprovedCerts(const QList<QSslCertificate> certs);
void addApprovedCerts(const QList<QSslCertificate> certs);
// Usually when a user explicitly rejects a certificate we don't
// ask again. After this call, a dialog will again be shown when
// the next unknown certificate is encountered.
void resetSslCertErrorState();
// pluggable handler
void setSslErrorHandler(AbstractSslErrorHandler *handler);

View File

@@ -90,7 +90,7 @@ BandwidthManager::~BandwidthManager()
void BandwidthManager::registerUploadDevice(UploadDevice *p)
{
qDebug() << Q_FUNC_INFO << p;
//qDebug() << Q_FUNC_INFO << p;
_absoluteUploadDeviceList.append(p);
_relativeUploadDeviceList.append(p);
QObject::connect(p, SIGNAL(destroyed(QObject*)), this, SLOT(unregisterUploadDevice(QObject*)));
@@ -117,7 +117,7 @@ void BandwidthManager::unregisterUploadDevice(QObject *o)
void BandwidthManager::unregisterUploadDevice(UploadDevice* p)
{
qDebug() << Q_FUNC_INFO << p;
//qDebug() << Q_FUNC_INFO << p;
_absoluteUploadDeviceList.removeAll(p);
_relativeUploadDeviceList.removeAll(p);
if (p == _relativeLimitCurrentMeasuredDevice) {
@@ -128,7 +128,7 @@ void BandwidthManager::unregisterUploadDevice(UploadDevice* p)
void BandwidthManager::registerDownloadJob(GETFileJob* j)
{
qDebug() << Q_FUNC_INFO << j;
//qDebug() << Q_FUNC_INFO << j;
_downloadJobList.append(j);
QObject::connect(j, SIGNAL(destroyed(QObject*)), this, SLOT(unregisterDownloadJob(QObject*)));
@@ -176,19 +176,19 @@ void BandwidthManager::relativeUploadMeasuringTimerExpired()
return;
}
qDebug() << Q_FUNC_INFO << _relativeUploadDeviceList.count() << "Starting Delay";
// qDebug() << Q_FUNC_INFO << _relativeUploadDeviceList.count() << "Starting Delay";
qint64 relativeLimitProgressMeasured = (_relativeLimitCurrentMeasuredDevice->_readWithProgress
+ _relativeLimitCurrentMeasuredDevice->_read) / 2;
qint64 relativeLimitProgressDifference = relativeLimitProgressMeasured - _relativeUploadLimitProgressAtMeasuringRestart;
qDebug() << Q_FUNC_INFO << _relativeUploadLimitProgressAtMeasuringRestart
<< relativeLimitProgressMeasured << relativeLimitProgressDifference;
// qDebug() << Q_FUNC_INFO << _relativeUploadLimitProgressAtMeasuringRestart
// << relativeLimitProgressMeasured << relativeLimitProgressDifference;
qint64 speedkBPerSec = (relativeLimitProgressDifference / relativeLimitMeasuringTimerIntervalMsec*1000.0) / 1024.0;
qDebug() << Q_FUNC_INFO << relativeLimitProgressDifference/1024 <<"kB =>" << speedkBPerSec << "kB/sec on full speed ("
<< _relativeLimitCurrentMeasuredDevice->_readWithProgress << _relativeLimitCurrentMeasuredDevice->_read
<< qAbs(_relativeLimitCurrentMeasuredDevice->_readWithProgress
- _relativeLimitCurrentMeasuredDevice->_read) << ")";
// qint64 speedkBPerSec = (relativeLimitProgressDifference / relativeLimitMeasuringTimerIntervalMsec*1000.0) / 1024.0;
// qDebug() << Q_FUNC_INFO << relativeLimitProgressDifference/1024 <<"kB =>" << speedkBPerSec << "kB/sec on full speed ("
// << _relativeLimitCurrentMeasuredDevice->_readWithProgress << _relativeLimitCurrentMeasuredDevice->_read
// << qAbs(_relativeLimitCurrentMeasuredDevice->_readWithProgress
// - _relativeLimitCurrentMeasuredDevice->_read) << ")";
qint64 uploadLimitPercent = -_currentUploadLimit;
// don't use too extreme values
@@ -197,9 +197,9 @@ void BandwidthManager::relativeUploadMeasuringTimerExpired()
qint64 wholeTimeMsec = (100.0 / uploadLimitPercent) * relativeLimitMeasuringTimerIntervalMsec;
qint64 waitTimeMsec = wholeTimeMsec - relativeLimitMeasuringTimerIntervalMsec;
qint64 realWaitTimeMsec = waitTimeMsec + wholeTimeMsec;
qDebug() << Q_FUNC_INFO << waitTimeMsec << " - "<< realWaitTimeMsec <<
" msec for " << uploadLimitPercent << "%";
qDebug() << Q_FUNC_INFO << "XXXX" << uploadLimitPercent << relativeLimitMeasuringTimerIntervalMsec;
// qDebug() << Q_FUNC_INFO << waitTimeMsec << " - "<< realWaitTimeMsec <<
// " msec for " << uploadLimitPercent << "%";
// qDebug() << Q_FUNC_INFO << "XXXX" << uploadLimitPercent << relativeLimitMeasuringTimerIntervalMsec;
// We want to wait twice as long since we want to give all
// devices the same quota we used now since we don't want
@@ -209,12 +209,12 @@ void BandwidthManager::relativeUploadMeasuringTimerExpired()
int deviceCount = _relativeUploadDeviceList.count();
qint64 quotaPerDevice = relativeLimitProgressDifference * (uploadLimitPercent / 100.0) / deviceCount + 1.0;
qDebug() << Q_FUNC_INFO << "YYYY" << relativeLimitProgressDifference << uploadLimitPercent << deviceCount;
// qDebug() << Q_FUNC_INFO << "YYYY" << relativeLimitProgressDifference << uploadLimitPercent << deviceCount;
Q_FOREACH(UploadDevice *ud, _relativeUploadDeviceList) {
ud->setBandwidthLimited(true);
ud->setChoked(false);
ud->giveBandwidthQuota(quotaPerDevice);
qDebug() << Q_FUNC_INFO << "Gave" << quotaPerDevice/1024.0 << "kB to" << ud;
// qDebug() << Q_FUNC_INFO << "Gave" << quotaPerDevice/1024.0 << "kB to" << ud;
}
_relativeLimitCurrentMeasuredDevice = 0;
}
@@ -232,7 +232,7 @@ void BandwidthManager::relativeUploadDelayTimerExpired()
return;
}
qDebug() << Q_FUNC_INFO << _relativeUploadDeviceList.count() << "Starting measuring";
// qDebug() << Q_FUNC_INFO << _relativeUploadDeviceList.count() << "Starting measuring";
// Take first device and then append it again (= we round robin all devices)
_relativeLimitCurrentMeasuredDevice = _relativeUploadDeviceList.takeFirst();
@@ -270,16 +270,16 @@ void BandwidthManager::relativeDownloadMeasuringTimerExpired()
return;
}
qDebug() << Q_FUNC_INFO << _downloadJobList.count() << "Starting Delay";
// qDebug() << Q_FUNC_INFO << _downloadJobList.count() << "Starting Delay";
qint64 relativeLimitProgressMeasured = _relativeLimitCurrentMeasuredJob->currentDownloadPosition();
qint64 relativeLimitProgressDifference = relativeLimitProgressMeasured - _relativeDownloadLimitProgressAtMeasuringRestart;
qDebug() << Q_FUNC_INFO << _relativeDownloadLimitProgressAtMeasuringRestart
<< relativeLimitProgressMeasured << relativeLimitProgressDifference;
qint64 speedkBPerSec = (relativeLimitProgressDifference / relativeLimitMeasuringTimerIntervalMsec*1000.0) / 1024.0;
qDebug() << Q_FUNC_INFO << relativeLimitProgressDifference/1024 <<"kB =>" << speedkBPerSec << "kB/sec on full speed ("
<< _relativeLimitCurrentMeasuredJob->currentDownloadPosition() ;
// qint64 speedkBPerSec = (relativeLimitProgressDifference / relativeLimitMeasuringTimerIntervalMsec*1000.0) / 1024.0;
// qDebug() << Q_FUNC_INFO << relativeLimitProgressDifference/1024 <<"kB =>" << speedkBPerSec << "kB/sec on full speed ("
// << _relativeLimitCurrentMeasuredJob->currentDownloadPosition() ;
qint64 downloadLimitPercent = -_currentDownloadLimit;
// don't use too extreme values
@@ -288,9 +288,9 @@ void BandwidthManager::relativeDownloadMeasuringTimerExpired()
qint64 wholeTimeMsec = (100.0 / downloadLimitPercent) * relativeLimitMeasuringTimerIntervalMsec;
qint64 waitTimeMsec = wholeTimeMsec - relativeLimitMeasuringTimerIntervalMsec;
qint64 realWaitTimeMsec = waitTimeMsec + wholeTimeMsec;
qDebug() << Q_FUNC_INFO << waitTimeMsec << " - "<< realWaitTimeMsec <<
" msec for " << downloadLimitPercent << "%";
qDebug() << Q_FUNC_INFO << "XXXX" << downloadLimitPercent << relativeLimitMeasuringTimerIntervalMsec;
// qDebug() << Q_FUNC_INFO << waitTimeMsec << " - "<< realWaitTimeMsec <<
// " msec for " << downloadLimitPercent << "%";
// qDebug() << Q_FUNC_INFO << "XXXX" << downloadLimitPercent << relativeLimitMeasuringTimerIntervalMsec;
// We want to wait twice as long since we want to give all
// devices the same quota we used now since we don't want
@@ -305,12 +305,12 @@ void BandwidthManager::relativeDownloadMeasuringTimerExpired()
// quota -= 20*1024;
// }
qint64 quotaPerJob = quota / jobCount + 1.0;
qDebug() << Q_FUNC_INFO << "YYYY" << relativeLimitProgressDifference << downloadLimitPercent << jobCount;
// qDebug() << Q_FUNC_INFO << "YYYY" << relativeLimitProgressDifference << downloadLimitPercent << jobCount;
Q_FOREACH(GETFileJob *gfj, _downloadJobList) {
gfj->setBandwidthLimited(true);
gfj->setChoked(false);
gfj->giveBandwidthQuota(quotaPerJob);
qDebug() << Q_FUNC_INFO << "Gave" << quotaPerJob/1024.0 << "kB to" << gfj;
// qDebug() << Q_FUNC_INFO << "Gave" << quotaPerJob/1024.0 << "kB to" << gfj;
}
_relativeLimitCurrentMeasuredDevice = 0;
}
@@ -329,7 +329,7 @@ void BandwidthManager::relativeDownloadDelayTimerExpired()
return;
}
qDebug() << Q_FUNC_INFO << _downloadJobList.count() << "Starting measuring";
// qDebug() << Q_FUNC_INFO << _downloadJobList.count() << "Starting measuring";
// Take first device and then append it again (= we round robin all devices)
_relativeLimitCurrentMeasuredJob = _downloadJobList.takeFirst();
@@ -393,18 +393,18 @@ void BandwidthManager::absoluteLimitTimerExpired()
{
if (usingAbsoluteUploadLimit() && _absoluteUploadDeviceList.count() > 0) {
qint64 quotaPerDevice = _currentUploadLimit / qMax(1, _absoluteUploadDeviceList.count());
qDebug() << Q_FUNC_INFO << quotaPerDevice << _absoluteUploadDeviceList.count() << _currentUploadLimit;
// qDebug() << Q_FUNC_INFO << quotaPerDevice << _absoluteUploadDeviceList.count() << _currentUploadLimit;
Q_FOREACH(UploadDevice *device, _absoluteUploadDeviceList) {
device->giveBandwidthQuota(quotaPerDevice);
qDebug() << Q_FUNC_INFO << "Gave " << quotaPerDevice/1024.0 << " kB to" << device;
// qDebug() << Q_FUNC_INFO << "Gave " << quotaPerDevice/1024.0 << " kB to" << device;
}
}
if (usingAbsoluteDownloadLimit() && _downloadJobList.count() > 0) {
qint64 quotaPerJob = _currentDownloadLimit / qMax(1, _downloadJobList.count());
qDebug() << Q_FUNC_INFO << quotaPerJob << _downloadJobList.count() << _currentDownloadLimit;
// qDebug() << Q_FUNC_INFO << quotaPerJob << _downloadJobList.count() << _currentDownloadLimit;
Q_FOREACH(GETFileJob *j, _downloadJobList) {
j->giveBandwidthQuota(quotaPerJob);
qDebug() << Q_FUNC_INFO << "Gave " << quotaPerJob/1024.0 << " kB to" << j;
// qDebug() << Q_FUNC_INFO << "Gave " << quotaPerJob/1024.0 << " kB to" << j;
}
}
}

View File

@@ -49,6 +49,7 @@ static const char optionalDesktopNoficationsC[] = "optionalDesktopNotifications"
static const char skipUpdateCheckC[] = "skipUpdateCheck";
static const char geometryC[] = "geometry";
static const char timeoutC[] = "timeout";
static const char transmissionChecksumC[] = "transmissionChecksum";
static const char proxyHostC[] = "Proxy/host";
static const char proxyTypeC[] = "Proxy/type";
@@ -118,6 +119,20 @@ int ConfigFile::timeout() const
return settings.value(QLatin1String(timeoutC), 300).toInt(); // default to 5 min
}
QString ConfigFile::transmissionChecksum() const
{
QSettings settings(configFile(), QSettings::IniFormat);
QString checksum = settings.value(QLatin1String(transmissionChecksumC), QString()).toString();
if( checksum.isEmpty() ) {
// if the config file setting is empty, maybe the Branding requires it.
checksum = Theme::instance()->transmissionChecksum();
}
return checksum;
}
void ConfigFile::setOptionalDesktopNotifications(bool show)
{
QSettings settings(configFile(), QSettings::IniFormat);

View File

@@ -103,6 +103,12 @@ public:
int timeout() const;
// send a checksum as a header along with the transmission or not.
// possible values:
// empty: no checksum calculated or expected.
// or "Adler32", "MD5", "SHA1"
QString transmissionChecksum() const;
void saveGeometry(QWidget *w);
void restoreGeometry(QWidget *w);

View File

@@ -48,8 +48,8 @@ QString ConnectionValidator::statusString( Status stat )
return QLatin1String("Status not found");
case UserCanceledCredentials:
return QLatin1String("User canceled credentials");
case ServerMaintenance:
return QLatin1String("Server in maintenance mode");
case ServiceUnavailable:
return QLatin1String("Service unavailable");
case Timeout:
return QLatin1String("Timeout");
}
@@ -187,18 +187,13 @@ void ConnectionValidator::slotAuthFailed(QNetworkReply *reply)
stat = CredentialsWrong;
} else if( reply->error() != QNetworkReply::NoError ) {
_errors << reply->errorString();
_errors << errorMessage(reply->errorString(), reply->readAll());
const int httpStatus =
reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
if ( httpStatus == 503 ) {
// Is this a maintenance mode reply from the server
// or a regular 503 from somewhere else?
QByteArray body = reply->readAll();
if ( body.contains("Sabre\\DAV\\Exception\\ServiceUnavailable") ) {
_errors.clear();
stat = ServerMaintenance;
}
_errors.clear();
stat = ServiceUnavailable;
}
}

View File

@@ -77,7 +77,7 @@ public:
CredentialsWrong,
StatusNotFound,
UserCanceledCredentials,
ServerMaintenance,
ServiceUnavailable,
// actually also used for other errors on the authed request
Timeout
};

View File

@@ -16,7 +16,13 @@
#include "utility.h"
#include <QFile>
#include <QFileInfo>
#include <QCoreApplication>
#include <QDebug>
#include <QCryptographicHash>
#ifdef ZLIB_FOUND
#include <zlib.h>
#endif
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
#include <qabstractfileengine.h>
@@ -155,7 +161,50 @@ bool FileSystem::rename(const QString &originFileName,
return success;
}
bool FileSystem::renameReplace(const QString& originFileName, const QString& destinationFileName, QString* errorString)
bool FileSystem::fileChanged(const QString& fileName,
qint64 previousSize,
time_t previousMtime)
{
return getSize(fileName) != previousSize
|| getModTime(fileName) != previousMtime;
}
bool FileSystem::verifyFileUnchanged(const QString& fileName,
qint64 previousSize,
time_t previousMtime)
{
const qint64 actualSize = getSize(fileName);
const time_t actualMtime = getModTime(fileName);
if (actualSize != previousSize || actualMtime != previousMtime) {
qDebug() << "File" << fileName << "has changed:"
<< "size: " << previousSize << "<->" << actualSize
<< ", mtime: " << previousMtime << "<->" << actualMtime;
return false;
}
return true;
}
bool FileSystem::renameReplace(const QString& originFileName,
const QString& destinationFileName,
qint64 destinationSize,
time_t destinationMtime,
QString* errorString)
{
if (fileExists(destinationFileName)
&& fileChanged(destinationFileName, destinationSize, destinationMtime)) {
if (errorString) {
*errorString = qApp->translate("FileSystem",
"The destination file has an unexpected size or modification time");
}
return false;
}
return uncheckedRenameReplace(originFileName, destinationFileName, errorString);
}
bool FileSystem::uncheckedRenameReplace(const QString& originFileName,
const QString& destinationFileName,
QString* errorString)
{
#ifndef Q_OS_WIN
bool success;
@@ -350,4 +399,58 @@ QString FileSystem::fileSystemForPath(const QString & path)
}
#endif
#define BUFSIZE 1024*1024*10
static QByteArray readToCrypto( const QString& filename, QCryptographicHash::Algorithm algo )
{
const qint64 bufSize = BUFSIZE;
QByteArray buf(bufSize,0);
QByteArray arr;
QCryptographicHash crypto( algo );
QFile file(filename);
if (file.open(QIODevice::ReadOnly)) {
qint64 size;
while (!file.atEnd()) {
size = file.read( buf.data(), bufSize );
if( size > 0 ) {
crypto.addData(buf.data(), size);
}
}
arr = crypto.result().toHex();
}
return arr;
}
QByteArray FileSystem::calcMd5( const QString& filename )
{
return readToCrypto( filename, QCryptographicHash::Md5 );
}
QByteArray FileSystem::calcSha1( const QString& filename )
{
return readToCrypto( filename, QCryptographicHash::Sha1 );
}
#ifdef ZLIB_FOUND
QByteArray FileSystem::calcAdler32( const QString& filename )
{
unsigned int adler = adler32(0L, Z_NULL, 0);
const qint64 bufSize = BUFSIZE;
QByteArray buf(bufSize, 0);
QFile file(filename);
if (file.open(QIODevice::ReadOnly)) {
qint64 size;
while (!file.atEnd()) {
size = file.read(buf.data(), bufSize);
if( size > 0 )
adler = adler32(adler, (const Bytef*) buf.data(), size);
}
}
return QByteArray::number( adler, 16 );
}
#endif
} // namespace OCC

View File

@@ -13,8 +13,11 @@
#pragma once
#include "config.h"
#include <QString>
#include <ctime>
#include <QCryptographicHash>
#include <owncloudlib.h>
@@ -67,13 +70,44 @@ bool OWNCLOUDSYNC_EXPORT fileExists(const QString& filename);
bool OWNCLOUDSYNC_EXPORT rename(const QString& originFileName,
const QString& destinationFileName,
QString* errorString = NULL);
/**
* Rename the file \a originFileName to \a destinationFileName, and overwrite the destination if it
* already exists
* Returns true if the file's mtime or size are not what is expected.
* Nonexisting files are covered through mtime: they have an mtime of -1.
*/
bool renameReplace(const QString &originFileName, const QString &destinationFileName,
bool fileChanged(const QString& fileName,
qint64 previousSize,
time_t previousMtime);
/**
* Like !fileChanged() but with verbose logging if the file *did* change.
*/
bool verifyFileUnchanged(const QString& fileName,
qint64 previousSize,
time_t previousMtime);
/**
* Rename the file \a originFileName to \a destinationFileName, and
* overwrite the destination if it already exists - as long as the
* destination file has the expected \a destinationSize and
* \a destinationMtime.
* If the destination file does not exist, the given size and mtime are
* ignored.
*/
bool renameReplace(const QString &originFileName,
const QString &destinationFileName,
qint64 destinationSize,
time_t destinationMtime,
QString *errorString);
/**
* Rename the file \a originFileName to \a destinationFileName, and
* overwrite the destination if it already exists - without extra checks.
*/
bool uncheckedRenameReplace(const QString &originFileName,
const QString &destinationFileName,
QString *errorString);
/**
* Replacement for QFile::open(ReadOnly) followed by a seek().
* This version sets a more permissive sharing mode on Windows.
@@ -90,4 +124,10 @@ bool openAndSeekFileSharedRead(QFile* file, QString* error, qint64 seek);
QString fileSystemForPath(const QString & path);
#endif
QByteArray OWNCLOUDSYNC_EXPORT calcMd5( const QString& fileName );
QByteArray OWNCLOUDSYNC_EXPORT calcSha1( const QString& fileName );
#ifdef ZLIB_FOUND
QByteArray OWNCLOUDSYNC_EXPORT calcAdler32( const QString& fileName );
#endif
}}

View File

@@ -43,7 +43,6 @@ namespace OCC {
AbstractNetworkJob::AbstractNetworkJob(AccountPtr account, const QString &path, QObject *parent)
: QObject(parent)
, _duration(0)
, _timedout(false)
, _followRedirects(false)
, _ignoreCredentialFailure(false)
@@ -307,8 +306,12 @@ MkColJob::MkColJob(AccountPtr account, const QString &path, QObject *parent)
void MkColJob::start()
{
// assumes ownership
QNetworkReply *reply = davRequest("MKCOL", path());
// add 'Content-Length: 0' header (see https://github.com/owncloud/client/issues/3256)
QNetworkRequest req;
req.setRawHeader("Content-Length", "0");
// assumes ownership
QNetworkReply *reply = davRequest("MKCOL", path(), req);
setReply(reply);
setupConnections(reply);
AbstractNetworkJob::start();
@@ -350,7 +353,7 @@ LsColXMLParser::LsColXMLParser()
}
bool LsColXMLParser::parse( const QByteArray& xml, QHash<QString, qint64> *sizes)
bool LsColXMLParser::parse( const QByteArray& xml, QHash<QString, qint64> *sizes, const QString& expectedPath)
{
// Parse DAV response
QXmlStreamReader reader(xml);
@@ -371,7 +374,14 @@ bool LsColXMLParser::parse( const QByteArray& xml, QHash<QString, qint64> *sizes
// Start elements with DAV:
if (type == QXmlStreamReader::StartElement && reader.namespaceUri() == QLatin1String("DAV:")) {
if (name == QLatin1String("href")) {
currentHref = QUrl::fromPercentEncoding(reader.readElementText().toUtf8());
// We don't use URL encoding in our request URL (which is the expected path) (QNAM will do it for us)
// but the result will have URL encoding..
QString hrefString = QString::fromUtf8(QByteArray::fromPercentEncoding(reader.readElementText().toUtf8()));
if (!hrefString.startsWith(expectedPath)) {
qDebug() << "Invalid href" << hrefString << "expected starting with" << expectedPath;
return false;
}
currentHref = hrefString;
} else if (name == QLatin1String("response")) {
} else if (name == QLatin1String("propstat")) {
insidePropstat = true;
@@ -520,7 +530,8 @@ bool LsColJob::finished()
connect( &parser, SIGNAL(finishedWithoutError()),
this, SIGNAL(finishedWithoutError()) );
if( !parser.parse( reply()->readAll(), &_sizes ) ) {
QString expectedPath = reply()->request().url().path(); // something like "/owncloud/remote.php/webdav/folder"
if( !parser.parse( reply()->readAll(), &_sizes, expectedPath ) ) {
// XML parse error
emit finishedWithError(reply());
}
@@ -840,7 +851,31 @@ bool JsonApiJob::finished()
return true;
}
QString extractErrorMessage(const QByteArray& errorResponse)
{
QXmlStreamReader reader(errorResponse);
reader.readNextStartElement();
if (reader.name() != "error") {
return QString::null;
}
while (!reader.atEnd() && reader.error() == QXmlStreamReader::NoError) {
reader.readNextStartElement();
if (reader.name() == QLatin1String("message")) {
return reader.readElementText();
}
}
return QString::null;
}
QString errorMessage(const QString& baseError, const QByteArray& body)
{
QString msg = baseError;
QString extra = extractErrorMessage(body);
if (!extra.isEmpty()) {
msg += QString::fromLatin1(" (%1)").arg(extra);
}
return msg;
}
} // namespace OCC

View File

@@ -137,7 +137,7 @@ class OWNCLOUDSYNC_EXPORT LsColXMLParser : public QObject {
public:
explicit LsColXMLParser();
bool parse(const QByteArray &xml, QHash<QString, qint64> *sizes);
bool parse(const QByteArray &xml, QHash<QString, qint64> *sizes, const QString& expectedPath);
signals:
void directoryListingSubfolders(const QStringList &items);
@@ -314,6 +314,17 @@ signals:
void jsonRecieved(const QVariantMap &json);
};
/** Gets the SabreDAV-style error message from an error response.
*
* This assumes the response is XML with a 'error' tag that has a
* 'message' tag that contains the data to extract.
*
* Returns a null string if no message was found.
*/
QString OWNCLOUDSYNC_EXPORT extractErrorMessage(const QByteArray& errorResponse);
/** Builds a error message based on the error and the reply body. */
QString OWNCLOUDSYNC_EXPORT errorMessage(const QString& baseError, const QByteArray& body);
} // namespace OCC

View File

@@ -259,6 +259,21 @@ void OwncloudPropagator::start(const SyncFileItemVector& items)
{
Q_ASSERT(std::is_sorted(items.begin(), items.end()));
/* Check and log the transmission checksum type */
ConfigFile cfg;
const QString checksumType = cfg.transmissionChecksum().toUpper();
/* if the checksum type is empty, it is not send. No error */
if( !checksumType.isEmpty() ) {
if( checksumType == checkSumAdlerUpperC ||
checksumType == checkSumMD5C ||
checksumType == checkSumSHA1C ) {
qDebug() << "Client sends and expects transmission checksum type" << checksumType;
} else {
qWarning() << "Unknown transmission checksum type from config" << checksumType;
}
}
/* This builds all the job needed for the propagation.
* Each directories is a PropagateDirectory job, which contains the files in it.
* In order to do that we loop over the items. (which are sorted by destination)

View File

@@ -345,7 +345,7 @@ QString SqlQuery::lastQuery() const
int SqlQuery::numRowsAffected()
{
return 1;
return sqlite3_changes(_db);
}
void SqlQuery::finish()

View File

@@ -12,6 +12,7 @@
* for more details.
*/
#include "config.h"
#include "owncloudpropagator_p.h"
#include "propagatedownload.h"
#include "networkjobs.h"
@@ -21,6 +22,8 @@
#include "utility.h"
#include "filesystem.h"
#include "propagatorjobs.h"
#include "transmissionchecksumvalidator.h"
#include <json.h>
#include <QNetworkAccessManager>
#include <QFileInfo>
@@ -30,6 +33,30 @@
namespace OCC {
// Always coming in with forward slashes.
// In csync_excluded_no_ctx we ignore all files with longer than 254 chars
// This function also adds a dot at the begining of the filename to hide the file on OS X and Linux
QString OWNCLOUDSYNC_EXPORT createDownloadTmpFileName(const QString &previous) {
QString tmpFileName;
QString tmpPath;
int slashPos = previous.lastIndexOf('/');
// work with both pathed filenames and only filenames
if (slashPos == -1) {
tmpFileName = previous;
tmpPath = QString();
} else {
tmpFileName = previous.mid(slashPos+1);
tmpPath = previous.left(slashPos);
}
int overhead = 1 + 1 + 2 + 8; // slash dot dot-tilde ffffffff"
int spaceForFileName = qMin(254, tmpFileName.length() + overhead) - overhead;
if (tmpPath.length() > 0) {
return tmpPath + '/' + '.' + tmpFileName.left(spaceForFileName) + ".~" + (QString::number(uint(qrand() % 0xFFFFFFFF), 16));
} else {
return '.' + tmpFileName.left(spaceForFileName) + ".~" + (QString::number(uint(qrand() % 0xFFFFFFFF), 16));
}
}
// DOES NOT take owncership of the device.
GETFileJob::GETFileJob(AccountPtr account, const QString& path, QFile *device,
const QMap<QByteArray, QByteArray> &headers, const QByteArray &expectedEtagForResume,
@@ -307,12 +334,7 @@ void PropagateDownloadFileQNAM::start()
}
if (tmpFileName.isEmpty()) {
tmpFileName = _item._file;
//add a dot at the begining of the filename to hide the file.
int slashPos = tmpFileName.lastIndexOf('/');
tmpFileName.insert(slashPos+1, '.');
//add the suffix
tmpFileName += ".~" + QString::number(uint(qrand()), 16);
tmpFileName = createDownloadTmpFileName(_item._file);
}
_tmpFile.setFileName(_propagator->getFilePath(tmpFileName));
@@ -464,7 +486,21 @@ void PropagateDownloadFileQNAM::slotGetFinished()
return;
}
downloadFinished();
// Do checksum validation for the download. If there is no checksum header, the validator
// will also emit the validated() signal to continue the flow in slot downloadFinished()
// as this is (still) also correct.
TransmissionChecksumValidator *validator = new TransmissionChecksumValidator(_tmpFile.fileName(), this);
connect(validator, SIGNAL(validated(QByteArray)), this, SLOT(downloadFinished()));
connect(validator, SIGNAL(validationFailed(QString)), this, SLOT(slotChecksumFail(QString)));
validator->downloadValidation(job->reply()->rawHeader(checkSumHeaderC));
}
void PropagateDownloadFileQNAM::slotChecksumFail( const QString& errMsg )
{
_tmpFile.remove();
_propagator->_anotherSyncNeeded = true;
done(SyncFileItem::SoftError, errMsg ); // tr("The file downloaded with a broken checksum, will be redownloaded."));
}
QString makeConflictFileName(const QString &fn, const QDateTime &dt)
@@ -488,6 +524,52 @@ QString makeConflictFileName(const QString &fn, const QDateTime &dt)
return conflictFileName;
}
namespace { // Anonymous namespace for the recall feature
static QString makeRecallFileName(const QString &fn)
{
QString recallFileName(fn);
// Add _recall-XXXX before the extention.
int dotLocation = recallFileName.lastIndexOf('.');
// If no extention, add it at the end (take care of cases like foo/.hidden or foo.bar/file)
if (dotLocation <= recallFileName.lastIndexOf('/') + 1) {
dotLocation = recallFileName.size();
}
QString timeString = QDateTime::currentDateTime().toString("yyyyMMdd-hhmmss");
recallFileName.insert(dotLocation, "_.sys.admin#recall#-" + timeString);
return recallFileName;
}
static void handleRecallFile(const QString &fn)
{
qDebug() << "handleRecallFile: " << fn;
FileSystem::setFileHidden(fn, true);
QFile file(fn);
if (!file.open(QIODevice::ReadOnly)) {
qWarning() << "Could not open recall file" << file.errorString();
return;
}
QFileInfo existingFile(fn);
QDir thisDir = existingFile.dir();
while (!file.atEnd()) {
QByteArray line = file.readLine();
line.chop(1); // remove trailing \n
QString fpath = thisDir.filePath(line);
QString rpath = makeRecallFileName(fpath);
// if previously recalled file exists then remove it (copy will not overwrite it)
QFile(rpath).remove();
qDebug() << "Copy recall file: " << fpath << " -> " << rpath;
QFile::copy(fpath,rpath);
}
}
} // end namespace
void PropagateDownloadFileQNAM::downloadFinished()
{
QString fn = _propagator->getFilePath(_item._file);
@@ -512,11 +594,7 @@ void PropagateDownloadFileQNAM::downloadFinished()
done(SyncFileItem::SoftError, renameError);
return;
}
}
QFileInfo existingFile(fn);
if(FileSystem::fileExists(fn) && existingFile.permissions() != _tmpFile.permissions()) {
_tmpFile.setPermissions(existingFile.permissions());
qDebug() << "Created conflict file" << fn << "->" << conflictFileName;
}
FileSystem::setModTime(_tmpFile.fileName(), _item._modtime);
@@ -524,11 +602,32 @@ void PropagateDownloadFileQNAM::downloadFinished()
// Accuracy, and we really need the time from the file system. (#3103)
_item._modtime = FileSystem::getModTime(_tmpFile.fileName());
if (FileSystem::fileExists(fn)) {
// Preserve the existing file permissions.
QFileInfo existingFile(fn);
if (existingFile.permissions() != _tmpFile.permissions()) {
_tmpFile.setPermissions(existingFile.permissions());
}
// Check whether the existing file has changed since the discovery
// phase by comparing size and mtime to the previous values. This
// is necessary to avoid overwriting user changes that happened between
// the discovery phase and now.
const qint64 expectedSize = _item.log._other_size;
const time_t expectedMtime = _item.log._other_modtime;
if (! FileSystem::verifyFileUnchanged(fn, expectedSize, expectedMtime)) {
_propagator->_anotherSyncNeeded = true;
done(SyncFileItem::SoftError, tr("File has changed since discovery"));
return;
}
}
QString error;
_propagator->addTouchedFile(fn);
FileSystem::setFileHidden(_tmpFile.fileName(), false);
if (!FileSystem::renameReplace(_tmpFile.fileName(), fn, &error)) {
// The fileChanged() check is done above to generate better error messages.
if (!FileSystem::uncheckedRenameReplace(_tmpFile.fileName(), fn, &error)) {
qDebug() << Q_FUNC_INFO << QString("Rename failed: %1 => %2").arg(_tmpFile.fileName()).arg(fn);
// If we moved away the original file due to a conflict but can't
// put the downloaded file in its place, we are in a bad spot:
// If we do nothing the next sync run will assume the user deleted
@@ -540,10 +639,12 @@ void PropagateDownloadFileQNAM::downloadFinished()
_propagator->_journal->deleteFileRecord(fn);
_propagator->_journal->commit("download finished");
}
_propagator->_anotherSyncNeeded = true;
done(SyncFileItem::SoftError, error);
return;
}
FileSystem::setFileHidden(fn, false);
// Maybe we downloaded a newer version of the file than we thought we would...
// Get up to date information for the journal.
@@ -553,6 +654,11 @@ void PropagateDownloadFileQNAM::downloadFinished()
_propagator->_journal->setDownloadInfo(_item._file, SyncJournalDb::DownloadInfo());
_propagator->_journal->commit("download file start2");
done(isConflict ? SyncFileItem::Conflict : SyncFileItem::Success);
// handle the special recall file
if(_item._file == QLatin1String(".sys.admin#recall#") || _item._file.endsWith("/.sys.admin#recall#")) {
handleRecallFile(fn);
}
}
void PropagateDownloadFileQNAM::slotDownloadProgress(qint64 received, qint64)

View File

@@ -101,19 +101,21 @@ private slots:
class PropagateDownloadFileQNAM : public PropagateItemJob {
Q_OBJECT
QPointer<GETFileJob> _job;
// QFile *_file;
QFile _tmpFile;
public:
PropagateDownloadFileQNAM(OwncloudPropagator* propagator,const SyncFileItem& item)
: PropagateItemJob(propagator, item) {}
void start() Q_DECL_OVERRIDE;
private slots:
void slotGetFinished();
void abort() Q_DECL_OVERRIDE;
void downloadFinished();
void slotDownloadProgress(qint64,qint64);
void slotChecksumFail( const QString& errMsg );
private:
QPointer<GETFileJob> _job;
QFile _tmpFile;
};
}

View File

@@ -12,6 +12,7 @@
* for more details.
*/
#include "config.h"
#include "propagateupload.h"
#include "owncloudpropagator_p.h"
#include "networkjobs.h"
@@ -21,6 +22,8 @@
#include "utility.h"
#include "filesystem.h"
#include "propagatorjobs.h"
#include "transmissionchecksumvalidator.h"
#include <json.h>
#include <QNetworkAccessManager>
#include <QFileInfo>
@@ -32,6 +35,12 @@
#include "propagator_legacy.h"
#endif
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 2)
namespace {
const char owncloudShouldSoftCancelPropertyName[] = "owncloud-should-soft-cancel";
}
#endif
namespace OCC {
/**
@@ -86,6 +95,17 @@ void PUTFileJob::start() {
connect(reply(), SIGNAL(uploadProgress(qint64,qint64)), this, SIGNAL(uploadProgress(qint64,qint64)));
connect(this, SIGNAL(networkActivity()), account().data(), SIGNAL(propagatorNetworkActivity()));
// For Qt versions not including https://codereview.qt-project.org/110150
// Also do the runtime check if compiled with an old Qt but running with fixed one.
// (workaround disabled on windows and mac because the binaries we ship have patched qt)
#if QT_VERSION < QT_VERSION_CHECK(4, 8, 7)
if (QLatin1String(qVersion()) < QLatin1String("4.8.7"))
connect(_device.data(), SIGNAL(wasReset()), this, SLOT(slotSoftAbort()));
#elif QT_VERSION > QT_VERSION_CHECK(5, 0, 0) && QT_VERSION < QT_VERSION_CHECK(5, 4, 2) && !defined Q_OS_WIN && !defined Q_OS_MAC
if (QLatin1String(qVersion()) < QLatin1String("5.4.2"))
connect(_device.data(), SIGNAL(wasReset()), this, SLOT(slotSoftAbort()));
#endif
AbstractNetworkJob::start();
}
@@ -94,6 +114,13 @@ void PUTFileJob::slotTimeout() {
reply()->abort();
}
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 2)
void PUTFileJob::slotSoftAbort() {
reply()->setProperty(owncloudShouldSoftCancelPropertyName, true);
reply()->abort();
}
#endif
void PollJob::start()
{
setTimeout(120 * 1000);
@@ -167,22 +194,51 @@ bool PollJob::finished()
return true;
}
void PropagateUploadFileQNAM::start()
{
if (_propagator->_abortRequested.fetchAndAddRelaxed(0)) {
return;
}
const QString filePath = _propagator->getFilePath(_item._file);
// remember the modtime before checksumming to be able to detect a file
// change during the checksum calculation
_item._modtime = FileSystem::getModTime(filePath);
_stopWatch.start();
// do whatever is needed to add a checksum to the http upload request.
// in any case, the validator will emit signal startUpload to let the flow
// continue in slotStartUpload here.
TransmissionChecksumValidator *validator = new TransmissionChecksumValidator(filePath, this);
connect(validator, SIGNAL(validated(QByteArray)), this, SLOT(slotStartUpload(QByteArray)));
validator->uploadValidation();
}
void PropagateUploadFileQNAM::slotStartUpload(const QByteArray& checksum)
{
const QString fullFilePath(_propagator->getFilePath(_item._file));
_item._checksum = checksum;
if (!FileSystem::fileExists(fullFilePath)) {
done(SyncFileItem::SoftError, tr("File Removed"));
return;
}
_stopWatch.addLapTime(QLatin1String("Checksum"));
time_t prevModtime = _item._modtime; // the _item value was set in PropagateUploadFileQNAM::start()
// but a potential checksum calculation could have taken some time during which the file could
// have been changed again, so better check again here.
// Update the mtime and size, it might have changed since discovery.
_item._modtime = FileSystem::getModTime(fullFilePath);
if( prevModtime != _item._modtime ) {
_propagator->_anotherSyncNeeded = true;
done(SyncFileItem::SoftError, tr("Local file changed during syncing. It will be resumed."));
return;
}
quint64 fileSize = FileSystem::getSize(fullFilePath);
_item._size = fileSize;
@@ -369,6 +425,18 @@ void PropagateUploadFileQNAM::startNextChunk()
headers["OC-Chunk-Size"]= QByteArray::number(quint64(chunkSize()));
headers["Content-Type"] = "application/octet-stream";
headers["X-OC-Mtime"] = QByteArray::number(qint64(_item._modtime));
if(_item._file.contains(".sys.admin#recall#")) {
// This is a file recall triggered by the admin. Note: the
// recall list file created by the admin and downloaded by the
// client (.sys.admin#recall#) also falls into this category
// (albeit users are not supposed to mess up with it)
// We use a special tag header so that the server may decide to store this file away in some admin stage area
// And not directly in the user's area (what would trigger redownloads etc).
headers["OC-Tag"] = ".sys.admin#recall#";
}
if (!_item._etag.isEmpty() && _item._etag != "empty_etag" &&
_item._instruction != CSYNC_INSTRUCTION_NEW // On new files never send a If-Match
) {
@@ -397,6 +465,14 @@ void PropagateUploadFileQNAM::startNextChunk()
if( currentChunkSize == 0 ) { // if the last chunk pretents to be 0, its actually the full chunk size.
currentChunkSize = chunkSize();
}
if( !_item._checksum.isEmpty() ) {
headers[checkSumHeaderC] = _item._checksum;
}
}
} else {
// checksum if its only one chunk
if( !_item._checksum.isEmpty() ) {
headers[checkSumHeaderC] = _item._checksum;
}
}
@@ -471,6 +547,18 @@ void PropagateUploadFileQNAM::slotPutFinished()
}
QNetworkReply::NetworkError err = job->reply()->error();
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 2)
if (err == QNetworkReply::OperationCanceledError && job->reply()->property(owncloudShouldSoftCancelPropertyName).isValid()) {
// Abort the job and try again later.
// This works around a bug in QNAM wich might reuse a non-empty buffer for the next request.
qDebug() << "Forcing job abort on HTTP connection reset with Qt < 5.4.2.";
_propagator->_anotherSyncNeeded = true;
done(SyncFileItem::SoftError, tr("Forcing job abort on HTTP connection reset with Qt < 5.4.2."));
return;
}
#endif
if (err != QNetworkReply::NoError) {
_item._httpErrorCode = job->reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
if(checkForProblemsWithShared(_item._httpErrorCode,
@@ -478,14 +566,9 @@ void PropagateUploadFileQNAM::slotPutFinished()
"It is restored and your edit is in the conflict file."))) {
return;
}
QString errorString = job->errorString();
QByteArray replyContent = job->reply()->readAll();
qDebug() << replyContent; // display the XML error in the debug
QRegExp rx("<s:message>(.*)</s:message>"); // Issue #1366: display server exception
if (rx.indexIn(QString::fromUtf8(replyContent)) != -1) {
errorString += QLatin1String(" (") + rx.cap(1) + QLatin1Char(')');
}
QString errorString = errorMessage(job->errorString(), replyContent);
if (job->reply()->hasRawHeader("OC-ErrorString")) {
errorString = job->reply()->rawHeader("OC-ErrorString");
@@ -538,15 +621,8 @@ void PropagateUploadFileQNAM::slotPutFinished()
}
}
// compare expected and real modification time of the file and size
const time_t new_mtime = FileSystem::getModTime(fullFilePath);
const quint64 new_size = static_cast<quint64>(FileSystem::getSize(fullFilePath));
QFileInfo fi(_propagator->getFilePath(_item._file));
if (new_mtime != _item._modtime || new_size != _item._size) {
qDebug() << "The local file has changed during upload:"
<< "mtime: " << _item._modtime << "<->" << new_mtime
<< ", size: " << _item._size << "<->" << new_size
<< ", QFileInfo: " << Utility::qDateTimeToTime_t(fi.lastModified()) << fi.lastModified();
// Check whether the file changed since discovery.
if (! FileSystem::verifyFileUnchanged(fullFilePath, _item._size, _item._modtime)) {
_propagator->_anotherSyncNeeded = true;
if( !finished ) {
abortWithError(SyncFileItem::SoftError, tr("Local file changed during sync."));
@@ -612,6 +688,11 @@ void PropagateUploadFileQNAM::slotPutFinished()
// Well, the mtime was not set
#endif
}
// performance logging
_item._requestDuration = _stopWatch.stop();
qDebug() << "*==* duration UPLOAD" << _item._size << _stopWatch.durationOfLap(QLatin1String("Checksum")) << _item._requestDuration;
finalize(_item);
}

View File

@@ -20,6 +20,7 @@
#include <QFile>
#include <QDebug>
namespace OCC {
class BandwidthManager;
@@ -40,11 +41,21 @@ public:
bool isSequential() const Q_DECL_OVERRIDE;
bool seek ( qint64 pos ) Q_DECL_OVERRIDE;
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 2)
bool reset() Q_DECL_OVERRIDE { emit wasReset(); return QIODevice::reset(); }
#endif
void setBandwidthLimited(bool);
bool isBandwidthLimited() { return _bandwidthLimited; }
void setChoked(bool);
bool isChoked() { return _choked; }
void giveBandwidthQuota(qint64 bwq);
signals:
#if QT_VERSION < 0x050402
void wasReset();
#endif
private:
// The file data
@@ -65,6 +76,8 @@ protected slots:
class PUTFileJob : public AbstractNetworkJob {
Q_OBJECT
private:
QScopedPointer<QIODevice> _device;
QMap<QByteArray, QByteArray> _headers;
QString _errorString;
@@ -95,6 +108,11 @@ public:
signals:
void finishedSignal();
void uploadProgress(qint64,qint64);
private slots:
#if QT_VERSION < 0x050402
void slotSoftAbort();
#endif
};
/**
@@ -131,6 +149,7 @@ signals:
class PropagateUploadFileQNAM : public PropagateItemJob {
Q_OBJECT
private:
/**
* That's the start chunk that was stored in the database for resuming.
* In the non-resuming case it is 0.
@@ -148,6 +167,10 @@ class PropagateUploadFileQNAM : public PropagateItemJob {
QElapsedTimer _duration;
QVector<PUTFileJob*> _jobs; /// network jobs that are currently in transit
bool _finished; // Tells that all the jobs have been finished
// measure the performance of checksum calc and upload
Utility::StopWatch _stopWatch;
public:
PropagateUploadFileQNAM(OwncloudPropagator* propagator,const SyncFileItem& item)
: PropagateItemJob(propagator, item), _startChunk(0), _currentChunk(0), _chunkCount(0), _transferId(0), _finished(false) {}
@@ -160,6 +183,8 @@ private slots:
void startNextChunk();
void finalize(const SyncFileItem&);
void slotJobDestroyed(QObject *job);
void slotStartUpload(const QByteArray &checksum);
private:
void startPollJob(const QString& path);
void abortWithError(SyncFileItem::Status status, const QString &error);

View File

@@ -714,7 +714,11 @@ void PropagateDownloadFileLegacy::start()
QString error;
_propagator->addTouchedFile(fn);
if (!FileSystem::renameReplace(tmpFile.fileName(), fn, &error)) {
const qint64 expectedFileSize = _item.log._other_size;
const time_t expectedFileMtime = _item.log._other_modtime;
if (!FileSystem::renameReplace(tmpFile.fileName(), fn,
expectedFileSize, expectedFileMtime,
&error)) {
done(SyncFileItem::NormalError, error);
return;
}

View File

@@ -119,6 +119,7 @@ void PropagateLocalMkdir::start()
done( SyncFileItem::NormalError, tr("Attention, possible case sensitivity clash with %1").arg(newDirStr) );
return;
}
_propagator->addTouchedFile(newDirStr);
QDir localDir(_propagator->_localDir);
if (!localDir.mkpath(_item._file)) {
done( SyncFileItem::NormalError, tr("could not create directory %1").arg(newDirStr) );

View File

@@ -21,6 +21,22 @@
namespace OCC {
/**
* Tags for checksum headers.
* They are here for being shared between Upload- and Download Job
*/
// the header itself
static const char checkSumHeaderC[] = "OC-Checksum";
// ...and it's values
static const char checkSumMD5C[] = "MD5";
static const char checkSumSHA1C[] = "SHA1";
static const char checkSumAdlerC[] = "Adler32";
static const char checkSumAdlerUpperC[] = "ADLER32";
/**
* Declaration of the other propagation jobs
*/
class PropagateLocalRemove : public PropagateItemJob {
Q_OBJECT
public:

View File

@@ -75,7 +75,7 @@ SyncEngine::SyncEngine(AccountPtr account, CSYNC *ctx, const QString& localPath,
qRegisterMetaType<SyncFileItem::Status>("SyncFileItem::Status");
qRegisterMetaType<Progress::Info>("Progress::Info");
_thread.setObjectName("CSync_Neon_Thread");
_thread.setObjectName("SyncEngine_Thread");
_thread.start();
}
@@ -595,7 +595,6 @@ void SyncEngine::startSync()
#endif
fileRecordCount = _journal->getFileRecordCount(); // this creates the DB if it does not exist yet
bool isUpdateFrom_1_5 = _journal->isUpdateFrom_1_5();
if( fileRecordCount == -1 ) {
qDebug() << "No way to create a sync journal!";
@@ -605,20 +604,7 @@ void SyncEngine::startSync()
// database creation error!
}
bool isUpdateFrom_1_8 = _journal->isUpdateFrom_1_8_0();
/*
* If 1.8.0 caused missing data in the local tree, this patch gets it
* back. For that, the usage of the journal for remote repository is
* disabled at the first start.
*/
if (fileRecordCount >= 1 && (isUpdateFrom_1_5 || isUpdateFrom_1_8)) {
qDebug() << "detected update from 1.5" << fileRecordCount << isUpdateFrom_1_5;
// Disable the read from DB to be sure to re-read all the fileid and etags.
_csync_ctx->read_remote_from_db = false;
} else {
_csync_ctx->read_remote_from_db = true;
}
_csync_ctx->read_remote_from_db = true;
// This tells csync to never read from the DB if it is empty
// thereby speeding up the initial discovery significantly.

View File

@@ -150,6 +150,7 @@ public:
quint64 _inode;
QByteArray _fileId;
QByteArray _remotePerm;
QByteArray _checksum;
QString _directDownloadUrl;
QString _directDownloadCookies;

View File

@@ -30,7 +30,7 @@
namespace OCC {
SyncJournalDb::SyncJournalDb(const QString& path, QObject *parent) :
QObject(parent), _transaction(0), _possibleUpgradeFromMirall_1_5(false), _possibleUpgradeFromMirall_1_8_0(false)
QObject(parent), _transaction(0)
{
_dbFile = path;
@@ -272,15 +272,14 @@ bool SyncJournalDb::checkConnect()
return sqlFail("Create table version", createQuery);
}
_possibleUpgradeFromMirall_1_5 = false;
_possibleUpgradeFromMirall_1_8_0 = false;
bool forceRemoteDiscovery = false;
SqlQuery versionQuery("SELECT major, minor, patch FROM version;", _db);
if (!versionQuery.next()) {
// If there was no entry in the table, it means we are likely upgrading from 1.5
if (!isNewDb) {
qDebug() << Q_FUNC_INFO << "_possibleUpgradeFromMirall_1_5 detected!";
_possibleUpgradeFromMirall_1_5 = true;
qDebug() << Q_FUNC_INFO << "possibleUpgradeFromMirall_1_5 detected!";
forceRemoteDiscovery = true;
}
createQuery.prepare("INSERT INTO version VALUES (?1, ?2, ?3, ?4);");
createQuery.bindValue(1, MIRALL_VERSION_MAJOR);
@@ -294,9 +293,9 @@ bool SyncJournalDb::checkConnect()
int minor = versionQuery.intValue(1);
int patch = versionQuery.intValue(2);
if( major == 1 && minor == 8 && patch == 0 ) {
qDebug() << Q_FUNC_INFO << "_possibleUpgradeFromMirall_1_8_0 detected!";
_possibleUpgradeFromMirall_1_8_0 = true;
if( major == 1 && minor == 8 && (patch == 0 || patch == 1) ) {
qDebug() << Q_FUNC_INFO << "possibleUpgradeFromMirall_1_8_0_or_1 detected!";
forceRemoteDiscovery = true;
}
// Not comparing the BUILD id here, correct?
if( !(major == MIRALL_VERSION_MAJOR && minor == MIRALL_VERSION_MINOR && patch == MIRALL_VERSION_PATCH) ) {
@@ -323,6 +322,25 @@ bool SyncJournalDb::checkConnect()
qDebug() << "WARN: Failed to update the database structure!";
}
/*
* If we are upgrading from a client version older than 1.5 is found,
* we cannot read from the database because we need to fetch the files id and etags.
*
* If 1.8.0 caused missing data in the local tree, so we also don't read from DB
* to get back the files that were gone.
* In 1.8.1 we had a fix to re-get the data, but this one here is better
*/
if (forceRemoteDiscovery) {
qDebug() << "Forcing remote re-discovery by deleting folder Etags";
SqlQuery deleteRemoteFolderEtagsQuery(_db);
deleteRemoteFolderEtagsQuery.prepare("UPDATE metadata SET md5='_invalid_' WHERE type=2;");
if( !deleteRemoteFolderEtagsQuery.exec() ) {
qDebug() << "ERROR: Query failed" << deleteRemoteFolderEtagsQuery.error();
} else {
qDebug() << "Cleared" << deleteRemoteFolderEtagsQuery.numRowsAffected() << "folder ETags";
}
}
_getFileRecordQuery.reset(new SqlQuery(_db));
_getFileRecordQuery->prepare("SELECT path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize FROM "
"metadata WHERE phash=?1" );
@@ -409,7 +427,6 @@ void SyncJournalDb::close()
_deleteFileRecordRecursively.reset(0);
_getErrorBlacklistQuery.reset(0);
_setErrorBlacklistQuery.reset(0);
_possibleUpgradeFromMirall_1_5 = false;
_db.close();
_avoidReadFromDbOnNextSyncFilter.clear();
@@ -755,14 +772,6 @@ bool SyncJournalDb::postSyncCleanup(const QSet<QString>& filepathsToKeep,
// Incoroporate results back into main DB
walCheckpoint();
if (_possibleUpgradeFromMirall_1_5) {
_possibleUpgradeFromMirall_1_5 = false; // should be handled now
}
if (_possibleUpgradeFromMirall_1_8_0) {
_possibleUpgradeFromMirall_1_8_0 = false; // should be handled now
}
return true;
}
@@ -1155,12 +1164,11 @@ void SyncJournalDb::wipeErrorBlacklistEntry( const QString& file )
void SyncJournalDb::updateErrorBlacklistEntry( const SyncJournalErrorBlacklistRecord& item )
{
QMutexLocker locker(&_mutex);
if( !checkConnect() ) {
return;
}
QMutexLocker locker(&_mutex);
_setErrorBlacklistQuery->bindValue(1, item._file);
_setErrorBlacklistQuery->bindValue(2, item._lastTryEtag);
_setErrorBlacklistQuery->bindValue(3, QString::number(item._lastTryModtime));
@@ -1325,20 +1333,6 @@ bool SyncJournalDb::isConnected()
return checkConnect();
}
bool SyncJournalDb::isUpdateFrom_1_5()
{
QMutexLocker lock(&_mutex);
checkConnect();
return _possibleUpgradeFromMirall_1_5;
}
bool SyncJournalDb::isUpdateFrom_1_8_0()
{
QMutexLocker lock(&_mutex);
checkConnect();
return _possibleUpgradeFromMirall_1_8_0;
}
bool operator==(const SyncJournalDb::DownloadInfo & lhs,
const SyncJournalDb::DownloadInfo & rhs)
{

View File

@@ -113,13 +113,6 @@ public:
*/
bool isConnected();
/**
* Tell the sync engine if we need to disable the fetch from db to be sure that the fileid
* are updated.
*/
bool isUpdateFrom_1_5();
bool isUpdateFrom_1_8_0();
private:
bool updateDatabaseStructure();
bool updateMetadataTableStructure();
@@ -135,8 +128,6 @@ private:
QString _dbFile;
QMutex _mutex; // Public functions are protected with the mutex.
int _transaction;
bool _possibleUpgradeFromMirall_1_5;
bool _possibleUpgradeFromMirall_1_8_0;
QScopedPointer<SqlQuery> _getFileRecordQuery;
QScopedPointer<SqlQuery> _setFileRecordQuery;
QScopedPointer<SqlQuery> _getDownloadInfoQuery;

View File

@@ -241,12 +241,17 @@ QString Theme::updateCheckUrl() const
return QLatin1String("https://updates.owncloud.com/client/");
}
QString Theme::transmissionChecksum() const
{
return QString::null; // No transmission by default.
}
QString Theme::gitSHA1() const
{
QString devString;
#ifdef GIT_SHA1
const QString githubPrefix(QLatin1String(
"https://github.com/owncloud/mirall/commit/"));
"https://github.com/owncloud/client/commit/"));
const QString gitSha1(QLatin1String(GIT_SHA1));
devString = QCoreApplication::translate("ownCloudTheme::about()",
"<p><small>Built from Git revision <a href=\"%1\">%2</a>"
@@ -389,5 +394,5 @@ bool Theme::wizardSelectiveSyncDefaultNothing() const
}
} // end namespace mirall
} // end namespace client

View File

@@ -189,12 +189,19 @@ public:
*/
virtual QString updateCheckUrl() const;
/**
* When true, the setup wizard will show the selective sync dialog by default and default
* to nothing selected
*/
virtual bool wizardSelectiveSyncDefaultNothing() const;
/**
* @brief Add an additional checksum header to PUT requests and compare them
* if they come with GET requests.
* This value sets the checksum type (SHA1, MD5 or Adler32) or is left empty
* if no checksumming is wanted. In that case it can still be overwritten in
* the client config file.
*/
virtual QString transmissionChecksum() const;
protected:
#ifndef TOKEN_AUTH_ONLY

View File

@@ -0,0 +1,151 @@
/*
* Copyright (C) by Klaas Freitag <freitag@owncloud.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
#include "config.h"
#include "filesystem.h"
#include "transmissionchecksumvalidator.h"
#include "syncfileitem.h"
#include "propagatorjobs.h"
#include "configfile.h"
#include <qtconcurrentrun.h>
namespace OCC {
TransmissionChecksumValidator::TransmissionChecksumValidator(const QString& filePath, QObject *parent)
:QObject(parent),
_filePath(filePath)
{
}
void TransmissionChecksumValidator::setChecksumType( const QByteArray& type )
{
_checksumType = type;
}
QString TransmissionChecksumValidator::checksumType() const
{
QString checksumType = _checksumType;
if( checksumType.isEmpty() ) {
ConfigFile cfg;
checksumType = cfg.transmissionChecksum();
}
return checksumType;
}
void TransmissionChecksumValidator::uploadValidation()
{
const QString csType = checksumType();
if( csType.isEmpty() ) {
// if there is no checksum defined, continue to upload
emit validated(QByteArray());
} else {
// Calculate the checksum in a different thread first.
connect( &_watcher, SIGNAL(finished()),
this, SLOT(slotUploadChecksumCalculated()));
if( csType == checkSumMD5C ) {
_checksumHeader = checkSumMD5C;
_checksumHeader += ":";
_watcher.setFuture(QtConcurrent::run(FileSystem::calcMd5, _filePath));
} else if( csType == checkSumSHA1C ) {
_checksumHeader = checkSumSHA1C;
_checksumHeader += ":";
_watcher.setFuture(QtConcurrent::run( FileSystem::calcSha1, _filePath));
}
#ifdef ZLIB_FOUND
else if( csType == checkSumAdlerC) {
_checksumHeader = checkSumAdlerC;
_checksumHeader += ":";
_watcher.setFuture(QtConcurrent::run(FileSystem::calcAdler32, _filePath));
}
#endif
else {
// for an unknown checksum, continue to upload
emit validated(QByteArray());
}
}
}
void TransmissionChecksumValidator::slotUploadChecksumCalculated( )
{
QByteArray checksum = _watcher.future().result();
if( !checksum.isEmpty() ) {
checksum.prepend( _checksumHeader );
}
emit validated(checksum);
}
void TransmissionChecksumValidator::downloadValidation( const QByteArray& checksumHeader )
{
// if the incoming header is empty, there was no checksum header, and
// no validation can happen. Just continue.
const QString csType = checksumType();
// for empty checksum type, everything is valid.
if( csType.isEmpty() ) {
emit validated(QByteArray());
return;
}
int indx = checksumHeader.indexOf(':');
if( indx < 0 ) {
qDebug() << "Checksum header malformed:" << checksumHeader;
emit validationFailed(tr("The checksum header is malformed.")); // show must go on - even not validated.
return;
}
const QByteArray type = checksumHeader.left(indx).toUpper();
_expectedHash = checksumHeader.mid(indx+1);
connect( &_watcher, SIGNAL(finished()), this, SLOT(slotDownloadChecksumCalculated()) );
// start the calculation in different thread
if( type == checkSumMD5C ) {
_watcher.setFuture(QtConcurrent::run(FileSystem::calcMd5, _filePath));
} else if( type == checkSumSHA1C ) {
_watcher.setFuture(QtConcurrent::run(FileSystem::calcSha1, _filePath));
}
#ifdef ZLIB_FOUND
else if( type == checkSumAdlerUpperC ) {
_watcher.setFuture(QtConcurrent::run(FileSystem::calcAdler32, _filePath));
}
#endif
else {
qDebug() << "Unknown checksum type" << type;
emit validationFailed(tr("The checksum header is malformed."));
return;
}
}
void TransmissionChecksumValidator::slotDownloadChecksumCalculated()
{
const QByteArray hash = _watcher.future().result();
if( hash != _expectedHash ) {
emit validationFailed(tr("The downloaded file does not match the checksum, it will be resumed."));
} else {
// qDebug() << "Checksum checked and matching: " << _expectedHash;
emit validated(hash);
}
}
}

View File

@@ -0,0 +1,76 @@
/*
* Copyright (C) by Klaas Freitag <freitag@owncloud.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
#pragma once
#include "owncloudlib.h"
#include <QObject>
#include <QByteArray>
#include <QFutureWatcher>
namespace OCC {
class OWNCLOUDSYNC_EXPORT TransmissionChecksumValidator : public QObject
{
Q_OBJECT
public:
explicit TransmissionChecksumValidator(const QString& filePath, QObject *parent = 0);
/**
* method to prepare a checksum for transmission and save it to the _checksum
* member of the SyncFileItem *item.
* The kind of requested checksum is taken from config. No need to set from outside.
*
* In any case of processing (checksum set, no checksum required and also unusual error)
* the object will emit the signal validated(). The item->_checksum is than either
* set to a proper value or empty.
*/
void uploadValidation();
/**
* method to verify the checksum coming with requests in a checksum header. The required
* checksum method is read from config.
*
* If no checksum is there, or if a correct checksum is there, the signal validated()
* will be emitted. In case of any kind of error, the signal validationFailed() will
* be emitted.
*/
void downloadValidation( const QByteArray& checksumHeader );
// This is only used in test cases (by now). This class reads the required
// test case from the config file.
void setChecksumType(const QByteArray &type );
QString checksumType() const;
signals:
void validated(const QByteArray& checksum);
void validationFailed( const QString& errMsg );
private slots:
void slotUploadChecksumCalculated();
void slotDownloadChecksumCalculated();
private:
QByteArray _checksumType;
QByteArray _expectedHash;
QByteArray _checksumHeader;
QString _filePath;
// watcher for the checksum calculation thread
QFutureWatcher<QByteArray> _watcher;
};
}

View File

@@ -15,6 +15,7 @@
#include "utility.h"
#include "version.h"
#include "theme.h"
// Note: This file must compile without QtGui
#include <QCoreApplication>
@@ -154,10 +155,19 @@ QString Utility::platform()
QByteArray Utility::userAgentString()
{
return QString::fromLatin1("Mozilla/5.0 (%1) mirall/%2")
QString re = QString::fromLatin1("Mozilla/5.0 (%1) mirall/%2")
.arg(Utility::platform())
.arg(QLatin1String(MIRALL_STRINGIFY(MIRALL_VERSION)))
.toLatin1();
.arg(QLatin1String(MIRALL_STRINGIFY(MIRALL_VERSION)));
const QString appName = Theme::instance()->appName();
// this constant "ownCloud" is defined in the default OEM theming
// that is used for the standard client. If it is changed there,
// it needs to be adjusted here.
if( appName != QLatin1String("ownCloud") ) {
re += QString(" (%1)").arg(appName);
}
return re.toLatin1();
}
bool Utility::hasLaunchOnStartup(const QString &appName)
@@ -401,10 +411,12 @@ void Utility::StopWatch::start()
_timer.start();
}
void Utility::StopWatch::stop()
quint64 Utility::StopWatch::stop()
{
addLapTime(QLatin1String(STOPWATCH_END_TAG));
quint64 duration = _timer.elapsed();
_timer.invalidate();
return duration;
}
void Utility::StopWatch::reset()

View File

@@ -105,7 +105,7 @@ namespace Utility
QElapsedTimer _timer;
public:
void start();
void stop();
quint64 stop();
quint64 addLapTime( const QString& lapName );
void reset();

View File

@@ -33,4 +33,6 @@ owncloud_add_test(SyncFileItem "")
owncloud_add_test(ConcatUrl "")
owncloud_add_test(XmlParse "")
owncloud_add_test(FileSystem "")
owncloud_add_test(TransChecksumValidator "")

93
test/testfilesystem.h Normal file
View File

@@ -0,0 +1,93 @@
/*
This software is in the public domain, furnished "as is", without technical
support, and with no warranty, express or implied, as to its usefulness for
any purpose.
*/
#ifndef MIRALL_TESTFILESYSTEM_H
#define MIRALL_TESTFILESYSTEM_H
#include <QtTest>
#include <QDebug>
#include "filesystem.h"
#include "utility.h"
using namespace OCC::Utility;
using namespace OCC::FileSystem;
class TestFileSystem : public QObject
{
Q_OBJECT
QString _root;
QByteArray shellSum( const QByteArray& cmd, const QString& file )
{
QProcess md5;
QStringList args;
args.append(file);
md5.start(cmd, args);
QByteArray sumShell;
qDebug() << "File: "<< file;
if( md5.waitForFinished() ) {
sumShell = md5.readAll();
sumShell = sumShell.left( sumShell.indexOf(' '));
}
return sumShell;
}
private slots:
void initTestCase() {
qsrand(QTime::currentTime().msec());
QString subdir("test_"+QString::number(qrand()));
_root = QDir::tempPath() + "/" + subdir;
QDir dir("/tmp");
dir.mkdir(subdir);
qDebug() << "creating test directory " << _root;
}
void cleanupTestCase()
{
if( !_root.isEmpty() )
system(QString("rm -rf "+_root).toUtf8());
}
void testMd5Calc()
{
QString file( _root+"/file_a.bin");
writeRandomFile(file);
QFileInfo fi(file);
QVERIFY(fi.exists());
QByteArray sum = calcMd5(file);
QByteArray sSum = shellSum("/usr/bin/md5sum", file);
qDebug() << "calulated" << sum << "versus md5sum:"<< sSum;
QVERIFY(!sSum.isEmpty());
QVERIFY(!sum.isEmpty());
QVERIFY(sSum == sum );
}
void testSha1Calc()
{
QString file( _root+"/file_b.bin");
writeRandomFile(file);
QFileInfo fi(file);
QVERIFY(fi.exists());
QByteArray sum = calcSha1(file);
QByteArray sSum = shellSum("/usr/bin/sha1sum", file);
qDebug() << "calulated" << sum << "versus sha1sum:"<< sSum;
QVERIFY(!sSum.isEmpty());
QVERIFY(!sum.isEmpty());
QVERIFY(sSum == sum );
}
};
#endif

View File

@@ -8,7 +8,14 @@
#define MIRALL_TESTOWNCLOUDPROPAGATOR_H
#include <QtTest>
#include <QDebug>
#include "propagatedownload.h"
using namespace OCC;
namespace OCC {
QString OWNCLOUDSYNC_EXPORT createDownloadTmpFileName(const QString &previous);
}
class TestOwncloudPropagator : public QObject
{
@@ -20,6 +27,43 @@ private slots:
// OwncloudPropagator propagator( NULL, QLatin1String("test1"), QLatin1String("test2"), new ProgressDatabase);
QVERIFY( true );
}
void testTmpDownloadFileNameGeneration()
{
QString fn;
// without dir
for (int i = 1; i <= 1000; i++) {
fn+="F";
QString tmpFileName = createDownloadTmpFileName(fn);
if (tmpFileName.contains('/')) {
tmpFileName = tmpFileName.mid(tmpFileName.lastIndexOf('/')+1);
}
QVERIFY( tmpFileName.length() > 0);
QVERIFY( tmpFileName.length() <= 254);
}
// with absolute dir
fn = "/Users/guruz/ownCloud/rocks/GPL";
for (int i = 1; i < 1000; i++) {
fn+="F";
QString tmpFileName = createDownloadTmpFileName(fn);
if (tmpFileName.contains('/')) {
tmpFileName = tmpFileName.mid(tmpFileName.lastIndexOf('/')+1);
}
QVERIFY( tmpFileName.length() > 0);
QVERIFY( tmpFileName.length() <= 254);
}
// with relative dir
fn = "rocks/GPL";
for (int i = 1; i < 1000; i++) {
fn+="F";
QString tmpFileName = createDownloadTmpFileName(fn);
if (tmpFileName.contains('/')) {
tmpFileName = tmpFileName.mid(tmpFileName.lastIndexOf('/')+1);
}
QVERIFY( tmpFileName.length() > 0);
QVERIFY( tmpFileName.length() <= 254);
}
}
};
#endif

View File

@@ -0,0 +1,159 @@
/*
* This software is in the public domain, furnished "as is", without technical
* support, and with no warranty, express or implied, as to its usefulness for
* any purpose.
*
*/
#pragma once
#include <QtTest>
#include <QDir>
#include <QString>
#include "transmissionchecksumvalidator.h"
#include "networkjobs.h"
#include "utility.h"
#include "filesystem.h"
#include "propagatorjobs.h"
using namespace OCC;
class TestTransChecksumValidator : public QObject
{
Q_OBJECT
private:
QString _root;
QString _testfile;
QString _expectedError;
QEventLoop _loop;
QByteArray _expected;
bool _successDown;
bool _errorSeen;
void processAndWait() {
_loop.processEvents();
Utility::usleep(200000);
_loop.processEvents();
}
public slots:
void slotUpValidated(const QByteArray& checksum) {
qDebug() << "Checksum: " << checksum;
QVERIFY(_expected == checksum );
}
void slotDownValidated() {
_successDown = true;
}
void slotDownError( const QString& errMsg ) {
QVERIFY(_expectedError == errMsg );
_errorSeen = true;
}
private slots:
void initTestCase() {
qDebug() << Q_FUNC_INFO;
_root = QDir::tempPath() + "/" + "test_" + QString::number(qrand());
QDir rootDir(_root);
rootDir.mkpath(_root );
_testfile = _root+"/csFile";
Utility::writeRandomFile( _testfile);
}
void testUploadChecksummingAdler() {
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType("Adler32");
connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotUpValidated(QByteArray)));
QString testfile = _testfile;
_expected = "Adler32:"+FileSystem::calcAdler32( testfile );
qDebug() << "XX Expected Checksum: " << _expected;
vali->uploadValidation();
usleep(5000);
_loop.processEvents();
delete vali;
}
void testUploadChecksummingMd5() {
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType( OCC::checkSumMD5C );
connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotUpValidated(QByteArray)));
_expected = checkSumMD5C;
_expected.append(":"+FileSystem::calcMd5( _testfile ));
vali->uploadValidation();
usleep(2000);
_loop.processEvents();
delete vali;
}
void testUploadChecksummingSha1() {
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType( OCC::checkSumSHA1C );
connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotUpValidated(QByteArray)));
_expected = checkSumSHA1C;
_expected.append(":"+FileSystem::calcSha1( _testfile ));
vali->uploadValidation();
usleep(2000);
_loop.processEvents();
delete vali;
}
void testDownloadChecksummingAdler() {
QByteArray adler = checkSumAdlerC;
adler.append(":");
adler.append(FileSystem::calcAdler32( _testfile ));
_successDown = false;
TransmissionChecksumValidator *vali = new TransmissionChecksumValidator(_testfile, this);
vali->setChecksumType("Adler32");
connect(vali, SIGNAL(validated(QByteArray)), this, SLOT(slotDownValidated()));
connect(vali, SIGNAL(validationFailed(QString)), this, SLOT(slotDownError(QString)));
vali->downloadValidation(adler);
usleep(2000);
_loop.processEvents();
QVERIFY(_successDown);
_expectedError = QLatin1String("The downloaded file does not match the checksum, it will be resumed.");
_errorSeen = false;
vali->downloadValidation("Adler32:543345");
usleep(2000);
_loop.processEvents();
QVERIFY(_errorSeen);
_expectedError = QLatin1String("The checksum header is malformed.");
_errorSeen = false;
vali->downloadValidation("Klaas32:543345");
usleep(2000);
_loop.processEvents();
QVERIFY(_errorSeen);
delete vali;
}
void cleanupTestCase() {
}
};

View File

@@ -113,7 +113,7 @@ private slots:
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(parser.parse( testXml, &sizes ));
QVERIFY(parser.parse( testXml, &sizes, "/oc/remote.php/webdav/sharefolder" ));
QVERIFY(_success);
QVERIFY(sizes.size() == 0 ); // No quota info in the XML
@@ -187,7 +187,7 @@ private slots:
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(false == parser.parse( testXml, &sizes )); // verify false
QVERIFY(false == parser.parse( testXml, &sizes, "/oc/remote.php/webdav/sharefolder" )); // verify false
QVERIFY(!_success);
QVERIFY(sizes.size() == 0 ); // No quota info in the XML
@@ -210,7 +210,7 @@ private slots:
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(false == parser.parse( testXml, &sizes )); // verify false
QVERIFY(false == parser.parse( testXml, &sizes, "/oc/remote.php/webdav/sharefolder" )); // verify false
QVERIFY(!_success);
QVERIFY(sizes.size() == 0 ); // No quota info in the XML
@@ -232,7 +232,7 @@ private slots:
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(false == parser.parse( testXml, &sizes )); // verify false
QVERIFY(false == parser.parse( testXml, &sizes, "/oc/remote.php/webdav/sharefolder" )); // verify false
QVERIFY(!_success);
QVERIFY(sizes.size() == 0 ); // No quota info in the XML
@@ -240,6 +240,208 @@ private slots:
QVERIFY(_items.size() == 0 ); // FIXME: We should change the parser to not emit during parsing but at the end
QVERIFY(_subdirs.size() == 0);
}
void testParserBogfusHref1() {
const QByteArray testXml = "<?xml version='1.0' encoding='utf-8'?>"
"<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\">"
"<d:response>"
"<d:href>http://127.0.0.1:81/oc/remote.php/webdav/sharefolder/</d:href>"
"<d:propstat>"
"<d:prop>"
"<oc:id>00004213ocobzus5kn6s</oc:id>"
"<oc:permissions>RDNVCK</oc:permissions>"
"<oc:size>121780</oc:size>"
"<d:getetag>\"5527beb0400b0\"</d:getetag>"
"<d:resourcetype>"
"<d:collection/>"
"</d:resourcetype>"
"<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
"</d:prop>"
"<d:status>HTTP/1.1 200 OK</d:status>"
"</d:propstat>"
"<d:propstat>"
"<d:prop>"
"<d:getcontentlength/>"
"<oc:downloadURL/>"
"<oc:dDC/>"
"</d:prop>"
"<d:status>HTTP/1.1 404 Not Found</d:status>"
"</d:propstat>"
"</d:response>"
"<d:response>"
"<d:href>http://127.0.0.1:81/oc/remote.php/webdav/sharefolder/quitte.pdf</d:href>"
"<d:propstat>"
"<d:prop>"
"<oc:id>00004215ocobzus5kn6s</oc:id>"
"<oc:permissions>RDNVW</oc:permissions>"
"<d:getetag>\"2fa2f0d9ed49ea0c3e409d49e652dea0\"</d:getetag>"
"<d:resourcetype/>"
"<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
"<d:getcontentlength>121780</d:getcontentlength>"
"</d:prop>"
"<d:status>HTTP/1.1 200 OK</d:status>"
"</d:propstat>"
"<d:propstat>"
"<d:prop>"
"<oc:downloadURL/>"
"<oc:dDC/>"
"</d:prop>"
"<d:status>HTTP/1.1 404 Not Found</d:status>"
"</d:propstat>"
"</d:response>"
"</d:multistatus>";
LsColXMLParser parser;
connect( &parser, SIGNAL(directoryListingSubfolders(const QStringList&)),
this, SLOT(slotDirectoryListingSubFolders(const QStringList&)) );
connect( &parser, SIGNAL(directoryListingIterated(const QString&, const QMap<QString,QString>&)),
this, SLOT(slotDirectoryListingIterated(const QString&, const QMap<QString,QString>&)) );
connect( &parser, SIGNAL(finishedWithoutError()),
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(false == parser.parse( testXml, &sizes, "/oc/remote.php/webdav/sharefolder" ));
QVERIFY(!_success);
}
void testParserBogfusHref2() {
const QByteArray testXml = "<?xml version='1.0' encoding='utf-8'?>"
"<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\">"
"<d:response>"
"<d:href>/sharefolder</d:href>"
"<d:propstat>"
"<d:prop>"
"<oc:id>00004213ocobzus5kn6s</oc:id>"
"<oc:permissions>RDNVCK</oc:permissions>"
"<oc:size>121780</oc:size>"
"<d:getetag>\"5527beb0400b0\"</d:getetag>"
"<d:resourcetype>"
"<d:collection/>"
"</d:resourcetype>"
"<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
"</d:prop>"
"<d:status>HTTP/1.1 200 OK</d:status>"
"</d:propstat>"
"<d:propstat>"
"<d:prop>"
"<d:getcontentlength/>"
"<oc:downloadURL/>"
"<oc:dDC/>"
"</d:prop>"
"<d:status>HTTP/1.1 404 Not Found</d:status>"
"</d:propstat>"
"</d:response>"
"<d:response>"
"<d:href>/sharefolder/quitte.pdf</d:href>"
"<d:propstat>"
"<d:prop>"
"<oc:id>00004215ocobzus5kn6s</oc:id>"
"<oc:permissions>RDNVW</oc:permissions>"
"<d:getetag>\"2fa2f0d9ed49ea0c3e409d49e652dea0\"</d:getetag>"
"<d:resourcetype/>"
"<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
"<d:getcontentlength>121780</d:getcontentlength>"
"</d:prop>"
"<d:status>HTTP/1.1 200 OK</d:status>"
"</d:propstat>"
"<d:propstat>"
"<d:prop>"
"<oc:downloadURL/>"
"<oc:dDC/>"
"</d:prop>"
"<d:status>HTTP/1.1 404 Not Found</d:status>"
"</d:propstat>"
"</d:response>"
"</d:multistatus>";
LsColXMLParser parser;
connect( &parser, SIGNAL(directoryListingSubfolders(const QStringList&)),
this, SLOT(slotDirectoryListingSubFolders(const QStringList&)) );
connect( &parser, SIGNAL(directoryListingIterated(const QString&, const QMap<QString,QString>&)),
this, SLOT(slotDirectoryListingIterated(const QString&, const QMap<QString,QString>&)) );
connect( &parser, SIGNAL(finishedWithoutError()),
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(false == parser.parse( testXml, &sizes, "/oc/remote.php/webdav/sharefolder" ));
QVERIFY(!_success);
}
void testHrefUrlEncoding() {
const QByteArray testXml = "<?xml version='1.0' encoding='utf-8'?>"
"<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\">"
"<d:response>"
"<d:href>/%C3%A4</d:href>" // a-umlaut utf8
"<d:propstat>"
"<d:prop>"
"<oc:id>00004213ocobzus5kn6s</oc:id>"
"<oc:permissions>RDNVCK</oc:permissions>"
"<oc:size>121780</oc:size>"
"<d:getetag>\"5527beb0400b0\"</d:getetag>"
"<d:resourcetype>"
"<d:collection/>"
"</d:resourcetype>"
"<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
"</d:prop>"
"<d:status>HTTP/1.1 200 OK</d:status>"
"</d:propstat>"
"<d:propstat>"
"<d:prop>"
"<d:getcontentlength/>"
"<oc:downloadURL/>"
"<oc:dDC/>"
"</d:prop>"
"<d:status>HTTP/1.1 404 Not Found</d:status>"
"</d:propstat>"
"</d:response>"
"<d:response>"
"<d:href>/%C3%A4/%C3%A4.pdf</d:href>"
"<d:propstat>"
"<d:prop>"
"<oc:id>00004215ocobzus5kn6s</oc:id>"
"<oc:permissions>RDNVW</oc:permissions>"
"<d:getetag>\"2fa2f0d9ed49ea0c3e409d49e652dea0\"</d:getetag>"
"<d:resourcetype/>"
"<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
"<d:getcontentlength>121780</d:getcontentlength>"
"</d:prop>"
"<d:status>HTTP/1.1 200 OK</d:status>"
"</d:propstat>"
"<d:propstat>"
"<d:prop>"
"<oc:downloadURL/>"
"<oc:dDC/>"
"</d:prop>"
"<d:status>HTTP/1.1 404 Not Found</d:status>"
"</d:propstat>"
"</d:response>"
"</d:multistatus>";
LsColXMLParser parser;
connect( &parser, SIGNAL(directoryListingSubfolders(const QStringList&)),
this, SLOT(slotDirectoryListingSubFolders(const QStringList&)) );
connect( &parser, SIGNAL(directoryListingIterated(const QString&, const QMap<QString,QString>&)),
this, SLOT(slotDirectoryListingIterated(const QString&, const QMap<QString,QString>&)) );
connect( &parser, SIGNAL(finishedWithoutError()),
this, SLOT(slotFinishedSuccessfully()) );
QHash <QString, qint64> sizes;
QVERIFY(parser.parse( testXml, &sizes, QString::fromUtf8("") ));
QVERIFY(_success);
QVERIFY(_items.contains(QString::fromUtf8("/ä/ä.pdf")));
QVERIFY(_items.contains(QString::fromUtf8("")));
QVERIFY(_items.size() == 2 );
QVERIFY(_subdirs.contains(QString::fromUtf8("")));
QVERIFY(_subdirs.size() == 1);
}
};
#endif

View File

@@ -16,6 +16,7 @@ trans.fa = client_fa.ts
trans.fr = client_fr.ts
trans.gl = client_gl.ts
trans.it = client_it.ts
trans.nb_NO = client_nb_NO.ts
trans.nl = client_nl.ts
trans.pl = client_pl.ts
trans.pt_BR = client_pt_BR.ts

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="ca" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Connectat amb &lt;server&gt; com a &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Afegeix carpeta...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pausa</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Elimina</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Selecciona el que vulguis sincronitzar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Ús de l&apos;emmagatzemament</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Obtenint informació de l&apos;ús...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Nota&lt;/b&gt; Algunes carpetes, incloent els fitxers muntats a través de xarxa o compartits, poden tenir límits diferents.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Manteniment del compte</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Edita fitxers ignorats</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Modifica el compte</translation>
</message>
@@ -706,22 +714,22 @@ Esteu segur que voleu executar aquesta operació?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>No s&apos;ha rebut cap E-Tag del servidor, comproveu el Proxy/Gateway</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Hem rebut un E-Tag diferent en la represa. Es comprovarà la pròxima vegada.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>El servidor retorna un error de contingut o rang</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Temps de connexió excedit</translation>
</message>
@@ -815,37 +823,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Els elements marcats també s&apos;eliminaran si prevenen l&apos;eliminació d&apos;una carpeta. Això és útil per metadades.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>No s&apos;ha pogut obrir el fitxer</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>No es poden desar els canvis a &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Afegeix una plantilla per ignorar</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Afegeix una nova plantilla d&apos;ignorats:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Edita el partó d&apos;ignorats</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Edita el patró d&apos;ignorats:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Això es proporciona completament pel sistema a &apos;%1&apos; i no es pot modificar en aquesta vista.</translation>
</message>
@@ -1058,7 +1066,7 @@ Els elements marcats també s&apos;eliminaran si prevenen l&apos;eliminació d&a
<message>
<location filename="../src/gui/updater/ocupdater.cpp" line="56"/>
<source>New %1 Update Ready</source>
<translation type="unfinished"/>
<translation>Nova actualització de %1 preparada</translation>
</message>
<message>
<location filename="../src/gui/updater/ocupdater.cpp" line="57"/>
@@ -1193,24 +1201,24 @@ privilegis addicionals durant el procés.</translation>
<translation>Configura el sevidor %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Aquesta adreça NO és segura i no és encriptada.
No és aconsellada usar-la.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Aquesta url és segura. Podeu usar-la.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Següent &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Actualitza el servidor %1</translation>
</message>
@@ -1228,129 +1236,129 @@ No és aconsellada usar-la.</translation>
<translation>Ha fallat la connexió amb %1 a %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Intentant connectar amb %1 a %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>La carpeta local %1 ja existeix, s&apos;està configurant per sincronitzar.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>correcte</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>ha fallat.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>No s&apos;ha pogut crear la carpeta local %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>No heu especificat cap carpeta remota!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>creant la carpeta a ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>La carpeta remota %1 s&apos;ha creat correctament.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>La carpeta remota %1 ja existeix. S&apos;hi està connectant per sincronitzar-les.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>La creació de la carpeta ha resultat en el codi d&apos;error HTTP %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Ha fallat la creació de la carpeta perquè les credencials proporcionades són incorrectes!&lt;br/&gt;Aneu enrera i comproveu les credencials.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;La creació de la carpeta remota ha fallat, probablement perquè les credencials facilitades són incorrectes.&lt;/font&gt;&lt;br/&gt;Comproveu les vostres credencials.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>La creació de la carpeta remota %1 ha fallat amb l&apos;error &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>S&apos;ha establert una connexió de sincronització des de %1 a la carpeta remota %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Connectat amb èxit a %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>No s&apos;ha pogut establir la connexió amb %1. Comproveu-ho de nou.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Ha fallat en canviar el nom de la carpeta</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>No es pot esborrar i restaurar la carpeta perquè una carpeta o un fitxer de dins està obert en un altre programa. Tanqueu la carpeta o el fitxer i intenteu-ho de nou o cancel·leu la configuració.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;la carpeta de sincronització %1 s&apos;ha creat correctament!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1389,7 +1397,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Temps de connexió excedit</translation>
</message>
@@ -1397,7 +1405,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1433,20 +1441,25 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>El fitxer %1 no es pot baixar perquè hi ha un xoc amb el nom d&apos;un fitxer local!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1474,7 +1487,7 @@ No és aconsellada usar-la.</translation>
<translation>Atenció, possible xoc entre majúscules i minúscules amb %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>No s&apos;ha pogut crear el directori %1</translation>
</message>
@@ -1500,7 +1513,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>El fitxer %1 no es pot reanomenar a %2 perquè hi ha un xoc amb el nom d&apos;un fitxer local</translation>
</message>
@@ -1571,33 +1584,43 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>El fitxer local ha canviat durant la sincronització.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>El fitxer s&apos;ha editat localment però és part d&apos;una compartició només de lectura. S&apos;ha restaurat i la vostra edició és en el fitxer en conflicte.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>El fitxer local s&apos;ha eliminat durant la sincronització.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>El servidor no ha reconegut l&apos;últim fragment. (No hi havia e-Tag)</translation>
</message>
@@ -1844,7 +1867,7 @@ No és aconsellada usar-la.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"/>
</message>
@@ -1869,73 +1892,73 @@ No és aconsellada usar-la.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Escolliu una contrasenya per l&apos;enllaç públic</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Contrasenya</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2339,69 +2362,69 @@ No és aconsellada usar-la.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>No es pot inicialitzar un periòdic de sincronització</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>No es pot obrir el diari de sincronització</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>No es permet perquè no teniu permisos per afegir subcarpetes en aquesta carpeta</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>No es permet perquè no teniu permisos per afegir una carpeta inferior</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>No es permet perquè no teniu permisos per afegir fitxers en aquesta carpeta</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>No es permet pujar aquest fitxer perquè només és de lectura en el servidor, es restaura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>No es permet l&apos;eliminació, es restaura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Fitxers locals i carpeta compartida esborrats.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>No es permet moure&apos;l, l&apos;element es restaura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>No es permet moure perquè %1 només és de lectura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>el destí</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>l&apos;origen</translation>
</message>
@@ -2417,21 +2440,35 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2704,8 +2741,8 @@ No és aconsellada usar-la.</translation>
<translation>Etiqueta d&apos;error</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>TextLabel</translation>
</message>
@@ -2825,27 +2862,27 @@ No és aconsellada usar-la.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2866,7 +2903,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Construït de la revisió de Git &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; el %4 de %3 usant Qt %5, %6&lt;/small&gt;&lt;/p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="cs_CZ" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>Cílový soubor neočekávanou velikost nebo čas změny</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Připojen k &lt;server&gt; jako &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Přidat složku...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pozastavit</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Odebrat</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Vybrat co synchronizovat</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Obsazený prostor</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Zjišťuji obsazený prostor...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Poznámka:&lt;/b&gt; Některé složky, včetně síťových či sdílených složek, mohou mít jiné limity.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Správa účtu</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Editovat ignorované soubory</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Upravit účet</translation>
</message>
@@ -705,22 +713,22 @@ Opravdu chcete provést tuto akci?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ze serveru nebyl obdržen E-Tag, zkontrolujte proxy/bránu</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Obdrželi jsme jiný E-Tag pro pokračování. Zkusím znovu příště.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>Server odpověděl chybným rozsahem obsahu</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Čas spojení vypršel</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Zvolené položky budou smazány také v případě, že brání smazání adresáře. To je užitečné u meta dat.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Nepodařilo se otevřít soubor</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Nelze zapsat změny do &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Přidat masku ignorovaných</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Přidat novou masku ignorovaných souborů:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Upravit masku ignorovaných</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Upravit masku ignorovaných:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Tato položka je poskytnuta systémem na &apos;%1&apos; a nemůže být v tomto pohledu změněna.</translation>
</message>
@@ -1192,24 +1200,24 @@ můžete být požádáni o dodatečná oprávnění.</translation>
<translation>Nastavit server %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Tato adresa NENÍ bezpečná, protože není šifrovaná.
Nedoporučuje se používat.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>URL je bezpečná. Můžete ji použít.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Následující &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Upravit server %1</translation>
</message>
@@ -1227,129 +1235,129 @@ Nedoporučuje se jí používat.</translation>
<translation>Selhalo spojení s %1 v %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Vypršení časového limitu při pokusu o připojení k %1 na %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Pokouším se připojit k %1 na %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>Ověřený požadavek na server byl přesměrován na &apos;%1&apos;. URL je špatně, server není správně nakonfigurován.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Byla obdržena nesprávná odpověď na ověřený webdav požadavek</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Přístup zamítnut serverem. Pro ověření správných přístupových práv &lt;a href=&quot;%1&quot;&gt;klikněte sem&lt;/a&gt; a otevřete službu ve svém prohlížeči.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Místní synchronizovaná složka %1 již existuje, nastavuji ji pro synchronizaci.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Vytvářím místní adresář pro synchronizaci %1...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>selhalo.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Nelze vytvořit místní složku %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Žádná vzdálená složka nenastavena!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Chyba: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>vytvářím složku na ownCloudu: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Vzdálená složka %1 byla úspěšně vytvořena.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Vzdálená složka %1 již existuje. Spojuji ji pro synchronizaci.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>Vytvoření složky selhalo HTTP chybou %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Vytvoření vzdálené složky selhalo, pravděpodobně z důvodu neplatných přihlašovacích údajů.&lt;br/&gt;Vraťte se, prosím, zpět a zkontrolujte je.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Vytvoření vzdálené složky selhalo, pravděpodobně z důvodu neplatných přihlašovacích údajů.&lt;/font&gt;&lt;br/&gt;Vraťte se, prosím, zpět a zkontrolujte je.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Vytváření vzdálené složky %1 selhalo s chybou &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Bylo nastaveno synchronizované spojení z %1 do vzdáleného adresáře %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Úspěšně spojeno s %1.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Spojení s %1 nelze navázat. Prosím zkuste to znovu.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Přejmenování složky selhalo</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Nelze odstranit a zazálohovat adresář, protože adresář nebo soubor v něm je otevřen v jiném programu. Prosím zavřete adresář nebo soubor a zkuste znovu nebo zrušte akci.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Místní synchronizovaná složka %1 byla vytvořena úspěšně!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1388,7 +1396,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Čas spojení vypršel</translation>
</message>
@@ -1396,7 +1404,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Neplatná JSON odpověď z adresy URL</translation>
</message>
@@ -1432,20 +1440,25 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Soubor %1 nemohl být stažen z důvodu kolize názvu se souborem v místním systému!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Soubor nemohl být kompletně stažen.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Soubor %1 nemohl být uložen z důvodu kolize názvu se souborem v místním systému!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>Soubor se mezitím změnil</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1473,7 +1486,7 @@ Nedoporučuje se jí používat.</translation>
<translation>Pozor, možná kolize z důvodu velikosti písmen s %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>nepodařilo se vytvořit adresář %1</translation>
</message>
@@ -1499,7 +1512,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>Soubor %1 nemohl být přejmenován na %2 z důvodu kolize názvu se souborem v místním systému</translation>
</message>
@@ -1570,33 +1583,43 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Soubor odebrán</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Místní soubor se během synchronizace změnil. </translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Místní soubor byl změněn během synchronizace.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Vynucené ukončení procesu při resetu HTTP připojení s Qt &lt; 5.4.2.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Soubor zde byl editován, ale je součástí sdílení pouze pro čtení. Původní soubor byl obnoven a editovaná verze je uložena v konfliktním souboru.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>Chybí adresa URL</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Místní soubor byl odstraněn během synchronizace.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Server nepotvrdil poslední část dat. (Nebyl nalezen e-tag)</translation>
</message>
@@ -1849,7 +1872,7 @@ Nedoporučuje se jí používat.</translation>
<translation>Nastavit heslo</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>%1 v umístění: %2</translation>
</message>
@@ -1874,73 +1897,73 @@ Nedoporučuje se jí používat.</translation>
<translation>Ch&amp;ránit heslem</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Chráněno heslem</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>Tento soubor nelze sdílet, protože byl nasdílen bez možnosti dalšího sdílení.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>Veřejné s&amp;dílení vyžaduje heslo:</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Zadej heslo pro tento veřejný odkaz</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Sdílet odkaz</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>OCS API chybový kód: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>Není nakonfigurována žádná synchronizační složka.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>Nelze nalézt adresář pro nahrávání.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Existuje synchronizovaný soubor stejného jména. Tento soubor nelze registrovat pro synchronizaci.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Soubor nelze synchronizovat.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>Sdílení externích adresářů ještě nefunguje.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>Veřejné s&amp;dílení vyžaduje heslo</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Heslo</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>Čekání na nahrávání...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>Nelze registrovat v synchronizačním umístění.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>Synchronizace registrovaného souboru ještě nebyla úspěšná.</translation>
</message>
@@ -2344,69 +2367,69 @@ Nedoporučuje se jí používat.</translation>
<translation>Kódování znaků jména soubor je neplatné</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Nemohu inicializovat synchronizační žurnál.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Nelze otevřít synchronizační žurnál</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorováno podle nastavení &quot;vybrat co synchronizovat&quot;</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Není povoleno, protože nemáte oprávnění vytvářet podadresáře v tomto adresáři</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Není povoleno, protože nemáte oprávnění vytvořit rodičovský adresář</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Není povoleno, protože nemáte oprávnění přidávat soubory do tohoto adresáře</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Není povoleno nahrát tento soubor, protože je na serveru uložen pouze pro čtení, obnovuji</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Odstranění není povoleno, obnovuji</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Místní soubory a sdílená složka byly odstraněny.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Přesun není povolen, položka obnovena</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Přesun není povolen, protože %1 je pouze pro čtení</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>cílové umístění</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>zdroj</translation>
</message>
@@ -2422,21 +2445,35 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Verze %1. Více informací na &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Šíří %1 pod licencí GNU General Public License (GPL) Verze 2.0.&lt;br/&gt;%2 a %2 logo jsou registrované známky %1 ve Spojených Státech, ostatních zemích, nebo obojí.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>Hlavička kontrolního součtu je poškozena.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>Stažený soubor neodpovídá kontrolnímu součtu, bude znovu stažen.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2709,8 +2746,8 @@ Nedoporučuje se jí používat.</translation>
<translation>Chybový popis</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>Textový štítek</translation>
</message>
@@ -2830,27 +2867,27 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2871,7 +2908,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Sestaveno na Git revizi &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; na %3, %4 s použitím Qt %5, %6&lt;/small&gt;&lt;/p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="de_DE" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>Die Zieldatei hat eine unerwartete Größe oder ein unerwartetes Änderungsdatum</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -32,7 +40,7 @@
<message>
<location filename="../src/gui/folderwizardtargetpage.ui" line="131"/>
<source>Select a remote destination folder</source>
<translation>Entfernten Zielordner auswählen</translation>
<translation>Einen entfernten Zielordner auswählen</translation>
</message>
<message>
<location filename="../src/gui/folderwizardtargetpage.ui" line="143"/>
@@ -73,53 +81,53 @@
<translation>Verbunden mit &lt;server&gt; als &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Ordner hinzufügen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Anhalten</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Entfernen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Zu synchronisierende Elemente auswählen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Speicherbelegung</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Nutzungsinformationen werden abgerufen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Hinweis:&lt;/b&gt; Einige Ordner, einschließlich über das Netzwerk verbundene oder freigegebene Ordner, können unterschiedliche Beschränkungen haben.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Kontoverwaltung</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Ignorierte Dateien bearbeiten</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Konto bearbeiten</translation>
</message>
@@ -141,7 +149,7 @@
<message>
<location filename="../src/gui/accountsettings.cpp" line="335"/>
<source>&lt;p&gt;Do you really want to stop syncing the folder &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will not remove the files from your client.&lt;/p&gt;</source>
<translation>&lt;p&gt;Wollen Sie wirklich die Synchronisation des Ordners &lt;i&gt;%1&lt;/i&gt; beenden?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Anmerkung:&lt;/b&gt; Dies wird keine Dateien von ihrem Rechner löschen.&lt;/p&gt;</translation>
<translation>&lt;p&gt;Soll die Synchronisation des Ordners &lt;i&gt;%1&lt;/i&gt; wirklich beendet werden?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Hinweis:&lt;/b&gt; Dies wird keine Dateien von Ihrem Client löschen.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="371"/>
@@ -151,8 +159,8 @@
<message>
<location filename="../src/gui/accountsettings.cpp" line="372"/>
<source>&lt;p&gt;Do you really want to reset folder &lt;i&gt;%1&lt;/i&gt; and rebuild your client database?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.&lt;/p&gt;</source>
<translation>&lt;p&gt;Wollen Sie wirklich den Ordner &lt;i&gt;%1&lt;/i&gt; zurücksetzen und die Datenbank auf dem Client neu aufbauen?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Anmerkung:&lt;/b&gt;
Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entfernt, jedoch kann diese Aktion erheblichen Datenverkehr verursachen und je nach Umfang des Ordners mehrere Minuten oder Stunden in Anspruch nehmen. Verwenden Sie diese Funktion nur dann, wenn ihr Administrator dies ausdrücklich wünscht.&lt;/p&gt;</translation>
<translation>&lt;p&gt;Soll Ordner &lt;i&gt;%1&lt;/i&gt; wirklich zurückgesetzt und die Datenbank auf dem Client neu aufgebaut werden?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Hinweis:&lt;/b&gt;
Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entfernt, jedoch kann diese Aktion erheblichen Datenverkehr verursachen und je nach Größe des Ordnerinhalts mehrere Minuten oder Stunden in Anspruch nehmen. Verwenden Sie diese Funktion nur dann, wenn Ihr Administrator Sie ausdrücklich dazu auffordert.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="482"/>
@@ -162,7 +170,7 @@ Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entf
<message>
<location filename="../src/gui/accountsettings.cpp" line="483"/>
<source>The syncing operation is running.&lt;br/&gt;Do you want to terminate it?</source>
<translation>Die Synchronistation läuft gerade.&lt;br/&gt;Wollen Sie diese beenden?</translation>
<translation>Die Synchronisation läuft gerade.&lt;br/&gt;Wollen Sie sie beenden?</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="606"/>
@@ -706,22 +714,22 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Kein E-Tag vom Server empfangen, bitte Proxy / Gateway überprüfen</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Es wurde ein unterschiedlicher E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>Server hat falschen Bereich für den Inhalt zurück gegeben</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Zeitüberschreitung der Verbindung</translation>
</message>
@@ -815,37 +823,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Aktivierte Elemente werden ebenfalls gelöscht, wenn diese das Löschen eines Verzeichnis verhindern. Dies ist nützlich für Metadaten.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Datei konnte nicht geöffnet werden</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Konnte Änderungen nicht in &apos;%1&apos; schreiben.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Ignoriermuster hinzufügen</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Neues Ignoriermuster hinzufügen:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Ignoriermuster bearbeiten</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Ignoriermuster bearbeiten:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Dieser Eintrag wird vom System auf &apos;%1&apos; bereitgestellt und kann in dieser Ansicht nicht geändert werden.</translation>
</message>
@@ -1192,24 +1200,24 @@ for additional privileges during the process.</source>
<translation>%1 Server einrichten</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Diese URL ist NICHT sicher, das sie nicht verschlüsselt ist.
Es ist nicht ratsam, diese zu benutzen.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Diese URL ist sicher. Sie können Sie benutzen.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Weiter &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>%1 Server aktualisieren</translation>
</message>
@@ -1227,129 +1235,129 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Die Verbindung zu %1 auf %2:&lt;br/&gt;%3 konnte nicht hergestellt werden</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Zeitüberschreitung beim Verbindungsversuch mit %1 unter %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Verbindungsversuch mit %1 unter %2</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>Die Authentifizierungs-Anfrage an den Server wurde weitergeleitet an &apos;%1&apos;. Diese Adresse ist ungültig, der Server ist falsch konfiguriert.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Es gab eine ungültige Reaktion auf eine WebDav-Authentifizeriungs-Anfrage</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Zugang vom Server nicht erlaubt. &lt;a href=&quot;%1&quot;&gt;Klicken Sie hier&lt;/a&gt; zum Zugriff auf den Dienst mithilfe Ihres Browsers, so dass Sie sicherstellen können, dass Ihr Zugang ordnungsgemäß funktioniert.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Lokaler Sync-Ordner %1 existiert bereits, aktiviere Synchronistation.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Lokaler Synchronisations-Ordner %1 wird erstellt ...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ok</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>fehlgeschlagen.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Der lokale Ordner %1 konnte nicht angelegt werden</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Keinen entfernten Ordner angegeben!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Fehler: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>erstelle Ordner auf ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Remoteordner %1 erfolgreich erstellt.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Der Ordner %1 ist auf dem Server bereits vorhanden. Verbinde zur Synchronisation.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>Das Erstellen des Verzeichnisses erzeugte den HTTP-Fehler-Code %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Die Remote-Ordner-Erstellung ist fehlgeschlagen, weil die angegebenen Zugangsdaten falsch sind. Bitte gehen Sie zurück und überprüfen Sie die Zugangsdaten.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Die Remote-Ordner-Erstellung ist fehlgeschlagen, vermutlich sind die angegebenen Zugangsdaten falsch.&lt;/font&gt;&lt;br/&gt;Bitte gehen Sie zurück und überprüfen Sie Ihre Zugangsdaten.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Remote-Ordner %1 konnte mit folgendem Fehler nicht erstellt werden: &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Eine Synchronisationsverbindung für Ordner %1 zum entfernten Ordner %2 wurde eingerichtet.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Erfolgreich verbunden mit %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Die Verbindung zu %1 konnte nicht hergestellt werden. Bitte prüfen Sie die Einstellungen erneut.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Ordner umbenennen fehlgeschlagen.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Der Ordner kann nicht entfernt und gesichert werden, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner oder die Datei oder beenden Sie die Installation.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Lokaler Sync-Ordner %1 erfolgreich erstellt!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1388,7 +1396,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Zeitüberschreitung der Verbindung</translation>
</message>
@@ -1396,7 +1404,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Ungültige JSON-Antwort von der Poll-URL</translation>
</message>
@@ -1432,20 +1440,25 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Die Datei konnte nicht vollständig herunter geladen werden.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht gespeichert geladen werden!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>Datei ist seit der Entdeckung geändert worden</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1473,7 +1486,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Achtung, es könnte ein Problem mit der Groß- und Kleinschreibung für %1 auftreten</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>Verzeichnis %1 konnte nicht erstellt werden</translation>
</message>
@@ -1499,7 +1512,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>%1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht zu %2 umbenannt werden</translation>
</message>
@@ -1570,33 +1583,43 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Datei gelöscht</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Lokale Datei hat sich während der Synchronisation geändert. Die Synchronisation wird wiederaufgenommen.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Eine lokale Datei wurde während der Synchronisation geändert.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Auftragsabbruch beim Rücksetzen der HTTP-Verbindung mit QT &lt; 5.4.2 wird erzwungen.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Die Datei wurde von einer Nur-Lese-Freigabe lokal bearbeitet. Die Datei wurde wiederhergestellt und Ihre Bearbeitung ist in der Konflikte-Datei.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>Poll-URL fehlt</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Die lokale Datei wurde während der Synchronisation gelöscht.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Der Server hat den letzten Block nicht bestätigt. (Der E-Tag war nicht vorhanden)</translation>
</message>
@@ -1848,7 +1871,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Passwort setzen</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>%1-Pfad: %2</translation>
</message>
@@ -1873,73 +1896,73 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Passwort geschützt</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>passwortgeschützt</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>Die Datei kann nicht geteilt werden, weil sie ohne erneute Teilungs-Berechtigung für Sie geteilt wurde.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>Öffentliches Teilen erfordert ein Passwort:</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Wählen Sie ein Passwort für den öffentlichen Link</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Link teilen</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>OCS-API-Fehlercode: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>Es ist kein Synchronisationsordner konfiguriert.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>Kann keinen Ordner zum Hochladen finden.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Eine Syncdatei selben Namens existiert. Die Datei kann nicht zur Synchronisation registriert werden.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Die Datei kann nicht synchronisiert werden.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>Das Teilen von externen Verzeichnissen funktioniert noch nicht.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>Öffentliches Teilen erfordert ein P&amp;asswort</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>Warten auf das Hochladen</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>Registrierung im Synchronisationsraum nicht möglich.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>Die Synchronisation der registrierten Datei war noch nicht erfolgreich.</translation>
</message>
@@ -2343,69 +2366,69 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Dateikodierung ist ungültig</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Synchronisationsbericht konnte nicht initialisiert werden.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Synchronisationsbericht kann nicht geöffnet werden</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Aufgrund der »Zu synchronisierende Elemente auswählen«-Sperrliste ignoriert</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Unterordnern haben</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Hauptordnern haben</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Nicht erlaubt, da Sie keine Rechte zum Hinzufügen von Dateien in diesen Ordner haben</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Das Hochladen dieser Datei ist nicht erlaubt, da die Datei auf dem Server schreibgeschützt ist, Wiederherstellung</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Löschen nicht erlaubt, Wiederherstellung</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Lokale Dateien und Freigabeordner wurden entfernt.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Verschieben nicht erlaubt, Element wiederhergestellt</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Verschieben nicht erlaubt, da %1 schreibgeschützt ist</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>Das Ziel</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>Die Quelle</translation>
</message>
@@ -2421,21 +2444,35 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Version %1. Für weitere Informationen besuchen Sie bitte &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Zur Verfügung gestellt durch %1 und lizenziert unter der GNU General Public License (GPL) Version 2.0.&lt;br&gt;%2 und das %2 Logo sind eingetragene Warenzeichen von %1 in den Vereinigten Staaten, anderen Ländern oder beides.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>Der Prüfsummen-Header hat ein fehlerhaftes Format.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>Die heruntergeladene Datei entspricht nicht der Prüfsumme, das Herunterladen wird wiederaufgenommen.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2708,8 +2745,8 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Fehler-Label</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>TextLabel</translation>
</message>
@@ -2829,27 +2866,27 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2870,7 +2907,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Gebaut von der GIT-Revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; auf %3, %4 verwendet Qt %5, %6&lt;/small&gt;&lt;/p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="el" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>Το αρχείο προορισμού έχει μη αναμενόμενο μέγεθος ή χρόνο τροποποίησης</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Συνδεδεμένοι με το &lt;server&gt; ως &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Προσθήκη φακέλου...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Παύση</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Αφαίρεση</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Επιλέξτε Τι θα Συγχρονιστεί</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Χρήση Αποθηκευτικού Χώρου</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Λήψη πληροφοριών χρήσης...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Σημείωση:&lt;/b&gt; Κάποιοι φάκελοι, συμπεριλαμβανομένων των δικτυακών δίσκων ή των κοινόχρηστων φακέλων, μπορεί να έχουν διαφορετικά όρια. </translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Συντήρηση Λογαριασμού</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Επεξεργασία Αρχείων προς Αγνόηση</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Τροποποίηση Λογαριασμού</translation>
</message>
@@ -706,22 +714,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Δεν ελήφθη E-Tag από το διακομιστή, ελέγξτε το διακομιστή μεσολάβησης/πύλη</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Ελήφθη διαφορετικό E-Tag για συνέχιση. Επανάληψη την επόμενη φορά.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>Ο διακομιστής επέστρεψε εσφαλμένο πεδίο τιμών</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Λήξη Χρόνου Αναμονής Σύνδεσης</translation>
</message>
@@ -815,37 +823,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Τα επιλεγμένα στοιχεία επίσης θα διαγράφονται εάν εμποδίζουν την αφαίρεση ενός καταλόγου αρχείων. Αυτό είναι χρήσιμο για μετα-δεδομένα.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Αδυναμία ανοίγματος αρχείου</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Αδυναμία εγγραφής αλλαγών στο &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Προσθήκη Προτύπου Αγνόησης</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Προσθήκη νέου προτύπου αγνόησης:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Επεξεργασία Προτύπου Αγνόησης</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Επεξεργασία προτύπου αγνόησης:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Αυτή η είσοδος παρέχεται από το σύστημα στο &apos;%1&apos; και δεν μπορεί να τροποποιηθεί σε αυτή την προβολή.</translation>
</message>
@@ -1193,24 +1201,24 @@ for additional privileges during the process.</source>
<translation>Ρύθμιση %1 διακομιστή</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Αυτή η ιστοσελίδα ΔΕΝ είναι ασφαλής καθώς δεν είναι κρυπτογραφημένη.
Δεν προτείνεται να τη χρησιμοποιήσετε.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Αυτή η url είναι ασφαλής. Μπορείτε να τη χρησιμοποιήσετε. </translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Επόμενο &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Ενημέρωση %1 διακομιστή</translation>
</message>
@@ -1228,129 +1236,129 @@ It is not advisable to use it.</source>
<translation>Αποτυχία σύνδεσης με το %1 στο %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Λήξη χρονικού ορίου κατά τη σύνδεση σε %1 σε %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Προσπάθεια σύνδεσης στο %1 για %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>Η πιστοποιημένη αίτηση στον διακομιστή ανακατευθύνθηκε σε &apos;%1&apos;. Το URL είναι εσφαλμένο, ο διακομιστής δεν έχει διαμορφωθεί σωστά.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Υπήρξε μια άκυρη απόκριση σε μια πιστοποιημένη αίτηση </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Απαγόρευση πρόσβασης από τον διακομιστή. Για να επιβεβαιώσετε ότι έχετε δικαιώματα πρόσβασης, &lt;a href=&quot;%1&quot;&gt;πατήστε εδώ&lt;/a&gt; για να προσπελάσετε την υπηρεσία με το πρόγραμμα πλοήγησής σας.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Ο τοπικός φάκελος συγχρονισμού %1 υπάρχει ήδη, ρύθμιση για συγχρονισμό.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Δημιουργία τοπικού φακέλου συγχρονισμού %1...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>οκ</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>απέτυχε.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Αδυναμία δημιουργίας τοπικού φακέλου %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Δεν προσδιορίστηκε κανένας απομακρυσμένος φάκελος!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Σφάλμα: %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>δημιουργία φακέλου στο ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Ο απομακρυσμένος φάκελος %1 δημιουργήθηκε με επιτυχία.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Ο απομακρυσμένος φάκελος %1 υπάρχει ήδη. Θα συνδεθεί για συγχρονισμό. </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>Η δημιουργία φακέλου είχε ως αποτέλεσμα τον κωδικό σφάλματος HTTP %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Η δημιουργία απομακρυσμένου φακέλλου απέτυχε επειδή τα διαπιστευτήρια είναι λάθος!&lt;br/&gt;Παρακαλώ επιστρέψετε και ελέγξετε τα διαπιστευτήριά σας.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Η δημιουργία απομακρυσμένου φακέλου απέτυχε, πιθανώς επειδή τα διαπιστευτήρια που δόθηκαν είναι λάθος.&lt;/font&gt;&lt;br/&gt;Παρακαλώ επιστρέψτε πίσω και ελέγξτε τα διαπιστευτήρια σας.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Η δημιουργία απομακρυσμένου φακέλου %1 απέτυχε με σφάλμα &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Μια σύνδεση συγχρονισμού από τον απομακρυσμένο κατάλογο %1 σε %2 έχει ρυθμιστεί. </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Επιτυχής σύνδεση με %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Αδυναμία σύνδεσης στον %1. Παρακαλώ ελέξτε ξανά.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Αποτυχία μετονομασίας φακέλου</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Αδυναμία αφαίρεσης και δημιουργίας αντιγράφου ασφαλείας του φακέλου διότι ο φάκελος ή ένα αρχείο του είναι ανοικτό από άλλο πρόγραμμα. Παρακαλώ κλείστε τον φάκελο ή το αρχείο και πατήστε επανάληψη ή ακυρώστε την ρύθμιση.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Επιτυχής δημιουργία τοπικού φακέλου %1 για συγχρονισμό!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1389,7 +1397,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Λήξη Χρόνου Αναμονής Σύνδεσης</translation>
</message>
@@ -1397,7 +1405,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Λανθασμένη απάντηση JSON από την ιστοσελίδα poll</translation>
</message>
@@ -1433,20 +1441,25 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Το αρχείο %1 δεν είναι δυνατό να ληφθεί λόγω διένεξης με το όνομα ενός τοπικού αρχείου!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Η λήψη του αρχείου δεν ολοκληρώθηκε.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Το αρχείο %1 δεν είναι δυνατό να αποθηκευτεί λόγω διένεξης με το όνομα ενός τοπικού ονόματος αρχείου!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>Το αρχείο έχει αλλάξει από όταν ανακαλύφθηκε</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1474,7 +1487,7 @@ It is not advisable to use it.</source>
<translation>Προσοχή, πιθανή διένεξη κεφαλαίων-πεζών γραμμάτων με το %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>αδυναμία δημιουργίας καταλόγου %1</translation>
</message>
@@ -1500,7 +1513,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>Το αρχείο %1 δεν είναι δυνατό να μετονομαστεί σε %2 λόγω μιας διένεξης με το όνομα ενός τοπικού αρχείου</translation>
</message>
@@ -1571,33 +1584,43 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Το αρχείο αφαιρέθηκε</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τη διάρκεια του συγχρονισμού. Θα συγχρονιστεί πάλι.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τον συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Εξαναγκασμός ακύρωσης εργασίας στην επαναφορά σύνδεσης HTTP με Qt &lt; 5.4.2</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Το αρχείο υπέστη επεξεργασία τοπικά αλλά είναι τμήμα ενός διαμοιρασμένου καταλόγου μόνο για ανάγνωση. Επαναφέρθηκε και το επεξεργασμένο βρίσκεται στο αρχείο συγκρούσεων.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>Η διεύθυνση poll URL λείπει</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Το τοπικό αρχείο αφαιρέθηκε κατά το συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Ο διακομιστής δεν αναγνώρισε το τελευταίο τμήμα. (Δεν υπήρχε e-tag)</translation>
</message>
@@ -1850,7 +1873,7 @@ It is not advisable to use it.</source>
<translation>Ορισμός κωδικού πρόσβασης</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>%1 διαδρομή: %2</translation>
</message>
@@ -1875,73 +1898,73 @@ It is not advisable to use it.</source>
<translation>Π&amp;ροστασία με κωδικό</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Προστατευμένο με κωδικό πρόσβασης</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>Το αρχείο δεν μπορεί να διαμοιραστεί γιατί διαμοιράστηκε χωρίς δικαιώματα διαμοιρασμού.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>Ο δημόσιος &amp;διαμοιρασμός απαιτεί κωδικό πρόσβασης:</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Επιλέξτε κωδικό για τον δημόσιο σύνδεσμο</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>Δ&amp;ιαμοιρασμός συνδέσμου</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>OCS API κωδικός λάθους: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>Δεν έχει οριστεί φάκελος συνχρονισμού.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>Αδυναμία εύρεσης φακέλου μεταφόρτωσης.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Ήδη υπάρχει αρχείο συγχρονισμού με το ίδιο όνομα. Το αρχείο δεν μπορεί να καταχωρηθεί προς συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Το αρχείο δεν μπορεί να συγχρονιστεί.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>Ο διαμοιρασμός εξωτερικών καταλόγων δεν λειτουργεί ακόμα.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>Ο δημόσιος &amp;διαμοιρασμός απαιτεί κωδικό πρόσβασης</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Κωδικός πρόσβασης</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>Αναμονή για μεταφόρτωση</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>Αδυναμία καταχώρησης στο χώρο συγχρονισμού.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>Ο συγχρονισμός του καταχωρημένου αρχείου δεν πέτυχε ακόμη.</translation>
</message>
@@ -2345,69 +2368,69 @@ It is not advisable to use it.</source>
<translation>Η κωδικοποίηση του ονόματος αρχείου δεν είναι έγκυρη</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Αδυναμία προετοιμασίας αρχείου συγχρονισμού.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Αδυναμία ανοίγματος του αρχείου συγχρονισμού</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Αγνοήθηκε εξαιτίας της μαύρης λίστας &quot;διάλεξε τι να συγχρονιστεί&quot;</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε υπο-καταλόγους σε αυτό τον κατάλογο</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε στο γονεϊκό κατάλογο</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Δεν επιτρέπεται επειδή δεν έχεται δικαιώματα να προσθέσετε αρχεία σε αυτόν τον κατάλογο</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Δεν επιτρέπεται να μεταφορτώσετε αυτό το αρχείο επειδή είναι μόνο για ανάγνωση στο διακομιστή, αποκατάσταση σε εξέλιξη</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Δεν επιτρέπεται η αφαίρεση, αποκατάσταση σε εξέλιξη</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Οι τοπικοί φάκελοι και ο φάκελος κοινής χρήσης αφαιρέθηκαν.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Η μετακίνηση δεν επιτρέπεται, το αντικείμενο αποκαταστάθηκε</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Η μετακίνηση δεν επιτρέπεται επειδή το %1 είναι μόνο για ανάγνωση</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>ο προορισμός</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>η προέλευση</translation>
</message>
@@ -2423,21 +2446,35 @@ It is not advisable to use it.</source>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Έκδοση %1. Για περισσότερες πληροφορίες δείτε &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Πνευματικά δικαιώματα ownCloud, Ανώνυμη Εταιρία&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Διανέμεται από 1% και υπό την άδεια GNU General Public License (GPL) έκδοση 2.0.&lt;br/&gt;% 2 και το 2% το λογότυπο είναι σήματα κατατεθέντα της 1% στις Ηνωμένες Πολιτείες, άλλες χώρες, ή και τα δύο.&lt;/ p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>Η κεφαλίδα του αθροίσματος ελέγχου δεν είναι σωστά διαμορφωμένη.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>Το αρχείο που μεταφορτώθηκε δεν επαληθεύει το άθροισμα ελέγχου, θα συγχρονιστεί πάλι.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2710,8 +2747,8 @@ It is not advisable to use it.</source>
<translation>Ετικέτα Σφάλματος</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>TextLabel</translation>
</message>
@@ -2831,27 +2868,27 @@ It is not advisable to use it.</source>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2872,7 +2909,7 @@ It is not advisable to use it.</source>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Δημιουργήθηκε από την διασκευή Git &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; στο %3, %4 χρησιμοποιώντας Qt %5, %6&lt;/small&gt;&lt;/p&gt;</translation>
</message>

View File

@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en_US">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -75,53 +83,53 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation type="unfinished"></translation>
</message>
@@ -704,22 +712,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation type="unfinished"></translation>
</message>
@@ -811,37 +819,37 @@ Checked items will also be deleted if they prevent a directory from being remove
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation type="unfinished"></translation>
</message>
@@ -1188,23 +1196,23 @@ for additional privileges during the process.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation type="unfinished"></translation>
</message>
@@ -1222,129 +1230,129 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1383,7 +1391,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation type="unfinished"></translation>
</message>
@@ -1391,7 +1399,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"></translation>
</message>
@@ -1427,20 +1435,25 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1468,7 +1481,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation type="unfinished"></translation>
</message>
@@ -1494,7 +1507,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation type="unfinished"></translation>
</message>
@@ -1565,33 +1578,43 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"></translation>
</message>
@@ -1844,7 +1867,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"></translation>
</message>
@@ -1869,73 +1892,73 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"></translation>
</message>
@@ -2337,69 +2360,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation type="unfinished"></translation>
</message>
@@ -2415,21 +2438,35 @@ It is not advisable to use it.</source>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2702,8 +2739,8 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
@@ -2823,27 +2860,27 @@ It is not advisable to use it.</source>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation type="unfinished"></translation>
</message>
@@ -2864,7 +2901,7 @@ It is not advisable to use it.</source>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="es" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>El archivo destino tiene un tamaño o fecha/hora de modificación no esperado.</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Conectado a &lt;server&gt; como &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Agregar carpeta...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pausa</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Eliminar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Escoja qué sincronizar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Uso de almacenamiento</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Obteniendo información de uso</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Nota:&lt;/b&gt; Algunas carpetas, incluyendo unidades de red o carpetas compartidas, pueden tener límites diferentes.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Mantenimiento de cuenta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Editar archivos ignorados</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Modificar cuenta</translation>
</message>
@@ -705,22 +713,22 @@ Esto se puede deber a que la carpeta fue reconfigurada de forma silenciosa o a q
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>No se recibió ninguna e-tag del servidor, revise el proxy/gateway</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Se recibió una e-tag distinta para reanudar. Se intentará nuevamente.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>El servidor devolvió un content-range erróneo</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Tiempo de espera de conexión agotado</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Los elementos marcados también se eliminarán si impiden la eliminación de algún directorio. Esto es útil para los metadatos</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>No se pudo abrir el archivo</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>No se pueden guardar cambios en &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Añadir patrón para ignorar</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Añadir nuevo patrón para ignorar:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Editar patrón de ignorados</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Editar patrón de ignorados:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Esta entrada es proporcionada por el sistema en &apos;%1&apos; y no puede ser modificada en esta vista.</translation>
</message>
@@ -1191,24 +1199,24 @@ for additional privileges during the process.</source>
<translation>Configurar servidor %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Esta URL NO ES SEGURA; pues no está cifrada.
No se recomienda usarla.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Esta url es segura. Puede utilizarla.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Siguiente &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Actualizar servidor %1</translation>
</message>
@@ -1226,129 +1234,129 @@ No se recomienda usarla.</translation>
<translation>Fallo al conectar %1 a %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Tiempo de espera agotado mientras se intentaba conectar a %1 en %2</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Intentando conectar a %1 desde %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>La petición autenticada al servidor fue redirigida a &apos;%1&apos;. La dirección URL es anómala, el servidor está mal configurado.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Hubo una respuesta no válida a una solicitud autenticada de webdav</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Acceso denegado por el servidor. Para verificar que usted tiene acceso, &lt;a href=&quot;%1&quot;&gt;haga clic aquí&lt;/a&gt; para acceder al servicio con su navegador.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>La carpeta de sincronización local %1 ya existe, configurándola para la sincronización.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Creando carpeta de sincronización local %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>bien</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>falló.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>No se pudo crear carpeta local %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>¡No se ha especificado ninguna carpeta remota!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>creando carpeta en ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Carpeta remota %1 creado correctamente.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>La carpeta remota %1 ya existe. Conectándola para sincronizacion.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>La creación de la carpeta causó un error HTTP de código %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>¡La creación de la carpeta remota ha fallado debido a que las credenciales proporcionadas son incorrectas!&lt;br/&gt;Por favor, vuelva atrás y compruebe sus credenciales&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;La creación de la carpeta remota ha fallado, probablemente porque las credenciales proporcionadas son incorrectas.&lt;/font&gt;&lt;br/&gt;Por favor, vuelva atrás y compruebe sus credenciales.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Creación %1 de carpeta remota ha fallado con el error &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Se ha configarado una conexión de sincronización desde %1 al directorio remoto %2</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>¡Conectado con éxito a %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Conexión a %1 no se pudo establecer. Por favor compruebelo de nuevo.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Error al renombrar la carpeta</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>No se puede eliminar y respaldar la carpeta porque la misma o un fichero en ella está abierto por otro programa. Por favor, cierre la carpeta o el fichero y reintente, o cancele la instalación.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Carpeta de sincronización local %1 creada con éxito&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1387,7 +1395,7 @@ No se recomienda usarla.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Tiempo de espera de conexión agotado</translation>
</message>
@@ -1395,7 +1403,7 @@ No se recomienda usarla.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Respuesta JSON invalida desde URL</translation>
</message>
@@ -1431,20 +1439,25 @@ No se recomienda usarla.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>¡El archivo %1 no se puede descargar a causa de un conflicto con el nombre de un archivo local!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>No se pudo descargar el archivo completamente.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>¡El fichero %1 no puede guardarse debido a un conflicto con el nombre de otro fichero local!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>El archivo ha cambiado desde que fue descubierto</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1472,7 +1485,7 @@ No se recomienda usarla.</translation>
<translation>Atención, posible error de mayúsculas/minúsculas en %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>No se pudo crear el directorio %1</translation>
</message>
@@ -1498,7 +1511,7 @@ No se recomienda usarla.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>El archivo %1 no se puede renombrar a %2 por causa de un conflicto con el nombre de un archivo local</translation>
</message>
@@ -1569,33 +1582,43 @@ No se recomienda usarla.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Archivo eliminado</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Archivo local cambió durante la sincronización. Será actualizado.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Un archivo local fue modificado durante la sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Forzar el trabajo en una conexión HTTP, causará un Reset si Qt&lt; 5.4.2.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>El archivo fue modificado localmente; pero es parte de una carpeta compartida en modo de sólo lectura. Ha sido recuperado y su modificación está en el archivo de conflicto.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>URL de encuesta faltante</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>El archivo local fue eliminado durante la sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>El servidor no reconoció la última parte. (No había una e-tag presente.)</translation>
</message>
@@ -1845,7 +1868,7 @@ No se recomienda usarla.</translation>
<translation>Establecer contraseña</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>%1 ruta: %2</translation>
</message>
@@ -1870,73 +1893,73 @@ No se recomienda usarla.</translation>
<translation>Protegido por contr&amp;aseña </translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Contraseña protegida</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>El archivo no puede compartirse; ya que fue compartido sin permisos correspondientes.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>Se requiere una contraseña para compartir públicamente:</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Elija una contraseña para el enlace publico</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Compartir enlace</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>OCS API codigo error: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>No hay ninguna carpeta de sincronización configurada.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>No puede hallarse una carpeta a la cual subir.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Existe un archivo sincronizado con el mismo nombre. Éste no se puede registrar para sincronizar.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>El archivo no puede sincronizarse.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>La compartición de directorios externos no está funcionando aún.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>Compartir public&amp;amente requiere contraseña</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>Esperando para subir...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>No se pudo registrar el espacio de sincronización.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>La sincronización de los archivos registrados aún no ha sido exitosa.</translation>
</message>
@@ -2340,69 +2363,69 @@ No se recomienda usarla.</translation>
<translation>Los caracteres del nombre de fichero no son válidos</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>No se pudo inicializar un registro (journal) de sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>No es posible abrir el diario de sincronización</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorado por que se encuentra en la lista negra de &quot;elija qué va a sincronizar&quot;</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>No está permitido porque no tiene permisos para añadir subcarpetas en este directorio.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>No está permitido porque no tiene permisos para añadir un directorio</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>No está permitido porque no tiene permisos para crear archivos en este directorio</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>No está permitido subir este archivo porque es de solo lectura en el servidor, restaurando.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>No está permitido borrar, restaurando.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Se eliminaron los archivos locales y la carpeta compartida.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>No está permitido mover, elemento restaurado.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>No está permitido mover, porque %1 es de sólo lectura.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>destino</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>origen</translation>
</message>
@@ -2418,21 +2441,35 @@ No se recomienda usarla.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;La versión %1. Para obtener más información, visite&lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, incorporado&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Distribuido por %1 y con licencia GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 y el lo de %2 son marcas registradas de %1 en los Estados Unidos y otros países, o ambos.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>La cabecera del archivo de comprobación es incorrecto.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>El archivo descargado no coincide con el archivo de comprobación, será reanudado.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2705,8 +2742,8 @@ No se recomienda usarla.</translation>
<translation>Etiqueta de error</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>Texto de un etiqueta</translation>
</message>
@@ -2826,27 +2863,27 @@ No se recomienda usarla.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2867,7 +2904,7 @@ No se recomienda usarla.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Construido desde la revisión Git &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; en %3, %4 usando Qt %5, %6&lt;/small&gt;&lt;/p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="es_AR" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Conectado con &lt;server&gt; como &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Agregar directorio...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pausar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Borrar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Uso del Almacenamiento</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Obteniendo información del uso...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Nota:&lt;/b&gt; Algunas carpetas, incluidas las montadas en red o las carpetas compartidas, pueden tener diferentes límites.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Mantenimiento de cuenta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Editar Archivos ignorados</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Modificar Cuenta</translation>
</message>
@@ -704,22 +712,22 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -813,37 +821,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Los elementos marcados también se borrarán si impiden la eliminación de algún directorio. Esto es útil para metadatos.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>No se pudo abrir el archivo</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>No se pueden guardar cambios en &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Agregar patrón a ignorar</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Añadir nuevo patrón a ignorar:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Esta entrada es provista por el sistema en &apos;%1&apos; y no puede ser modificada en esta vista.</translation>
</message>
@@ -1190,23 +1198,23 @@ for additional privileges during the process.</source>
<translation>Configurando servidor %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Esta URL es segura. La podés usar.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Actualizando servidor %1</translation>
</message>
@@ -1224,129 +1232,129 @@ It is not advisable to use it.</source>
<translation>Falló al conectarse a %1 en %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Intentando conectar a %1 en %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>El directorio de sincronización local %1 ya existe, configurándolo para la sincronización.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>aceptar</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>Error.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>No fue posible crear el directorio local %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>¡No se ha especificado un directorio remoto!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>Creando carpeta en ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>El directorio remoto %1 fue creado con éxito.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>El directorio remoto %1 ya existe. Estableciendo conexión para sincronizar.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>La creación del directorio resultó en un error HTTP con código de error %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Error al crear el directorio remoto porque las credenciales provistas son incorrectas.&lt;/font&gt;&lt;br/&gt;Por favor, volvé atrás y verificá tus credenciales.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Error al crear el directorio remoto, probablemente porque las credenciales provistas son incorrectas.&lt;/font&gt;&lt;br/&gt;Por favor, volvé atrás y verificá tus credenciales.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Se prtodujo un error &lt;tt&gt;%2&lt;/tt&gt; al crear el directorio remoto %1.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Fue creada una conexión de sincronización desde %1 al directorio remoto %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Conectado con éxito a %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>No fue posible establecer la conexión a %1. Por favor, intentalo nuevamente.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Error Al Renombrar Directorio</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Directorio local %1 creado&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1385,7 +1393,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -1393,7 +1401,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1429,20 +1437,25 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1470,7 +1483,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation type="unfinished"/>
</message>
@@ -1496,7 +1509,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation type="unfinished"/>
</message>
@@ -1567,33 +1580,43 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1840,7 +1863,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"/>
</message>
@@ -1865,73 +1888,73 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2333,69 +2356,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Imposible inicializar un diario de sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
@@ -2411,21 +2434,35 @@ It is not advisable to use it.</source>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2698,8 +2735,8 @@ It is not advisable to use it.</source>
<translation>Etiqueta de error</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>EtiquetaDeTexto</translation>
</message>
@@ -2820,27 +2857,27 @@ It is not advisable to use it.</source>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2861,7 +2898,7 @@ It is not advisable to use it.</source>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="et_EE" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Ühendatud &lt;server&gt; kasutajana &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Lisa kaust...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Paus</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Eemalda</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Vali, mida sünkroniseerida</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Kettakasutus</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Otsin kasutuse informatsiooni...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Märkus:&lt;/b&gt; Mõned kataloogid, sealhulgas võrgust ühendatud või jagatud kataloogid, võivad omada erinevaid limiite.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Konto hooldus</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Redigeeri ignoreeritud faile</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Muuda kontot</translation>
</message>
@@ -705,22 +713,22 @@ Oled kindel, et soovid seda operatsiooni teostada?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ühtegi E-Silti ei saabunud serverist, kontrolli puhverserverit/lüüsi.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Saime jätkamiseks erineva E-Sildi. Proovin järgmine kord uuesti.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>Server tagastas vale vahemiku</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Ühenduse aegumine</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Ühtlasi kustutatakse märgitud üksused, kui need takistavad kataloogi kustutamist. See on kasulik meta-andmetele.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Ei suutunud avada faili</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Ei saa kirjutada muudatusi &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Lisa ignoreerimise muster</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Lisa uus ignoreerimise muster:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Muuda ignoreerimis mustrit</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Muuda ignoreerimis mustrit:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Selle kirje on pakkunud süsteem &apos;%1&apos; ning seda ei saa antud vaates muuta.</translation>
</message>
@@ -1191,24 +1199,24 @@ for additional privileges during the process.</source>
<translation>Seadista %1 server</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>See url EI OLE turvaline, kuna see pole krüpteeritud.
Selle kasutamine pole soovitatav.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>See aadress on turvaline. Võid seda kasutada.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Edasi &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Uuenda %1 serverit</translation>
</message>
@@ -1226,129 +1234,129 @@ Selle kasutamine pole soovitatav.</translation>
<translation>Ühendumine ebaõnnestus %1 %2-st:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Püüan ühenduda %1 kohast %2</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Kohalik kataloog %1 on juba olemas. Valmistan selle ette sünkroniseerimiseks.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ok</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>ebaõnnestus.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Ei suuda tekitada kohalikku kataloogi %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Ühtegi võrgukataloogi pole määratletud!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Viga: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>loon uue kataloogi ownCloudi: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Eemalolev kaust %1 on loodud.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Serveris on kataloog %1 juba olemas. Ühendan selle sünkroniseerimiseks.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>Kausta tekitamine lõppes HTTP veakoodiga %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Kataloogi loomine serverisse ebaõnnestus, kuna kasutajatõendid on valed!&lt;br/&gt;Palun kontrolli oma kasutajatunnust ja parooli.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Serveris oleva kataloogi tekitamine ebaõnnestus tõenäoliselt valede kasutajatunnuste tõttu.&lt;/font&gt;&lt;br/&gt;Palun mine tagasi ning kontrolli kasutajatunnust ning parooli.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Kataloogi %1 tekitamine serverisse ebaõnnestus veaga &lt;tt&gt;%2&lt;/tt&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Loodi sünkroniseerimisühendus kataloogist %1 serveri kataloogi %2</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Edukalt ühendatud %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Ühenduse loomine %1 ebaõnnestus. Palun kontrolli uuesti.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Kataloogi ümbernimetamine ebaõnnestus</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Ei suuda eemaldada ning varundada kataloogi kuna kataloog või selles asuv fail on avatud mõne teise programmi poolt. Palun sulge kataloog või fail ning proovi uuesti või katkesta paigaldus.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Kohalik kataloog %1 edukalt loodud!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1387,7 +1395,7 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Ühenduse aegumine</translation>
</message>
@@ -1395,7 +1403,7 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1431,20 +1439,25 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Faili %1 ei saa alla laadida kuna on konflikt kohaliku faili nimega.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Faili %1 ei saa salvestada kuna on nime konflikt kohaliku failiga!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1472,7 +1485,7 @@ Selle kasutamine pole soovitatav.</translation>
<translation>Tähelepanu, võimalik tõusutundliku nime konflikt %1-ga</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>ei suuda luua kataloogi %1</translation>
</message>
@@ -1498,7 +1511,7 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>Faili %1 ei saa ümber nimetada %2-ks, kuna on konflikt kohaliku faili nimega</translation>
</message>
@@ -1569,33 +1582,43 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Fail eemaldatud</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Kohalik fail muutus sünkroniseeringu käigus.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Faili on lokaalselt muudetud, kuid see on osa kirjutamisõiguseta jagamisest. See on taastatud ning sinu muudatus on konfliktses failis.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Kohalik fail on eemaldatud sünkroniseeringu käigus.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Server ei tunnistanud viimast tükki. (E-silt puudus).</translation>
</message>
@@ -1842,7 +1865,7 @@ Selle kasutamine pole soovitatav.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"/>
</message>
@@ -1867,73 +1890,73 @@ Selle kasutamine pole soovitatav.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Vali avaliku lingi jaoks parool</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Jaga linki</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Parool</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2337,69 +2360,69 @@ Selle kasutamine pole soovitatav.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Ei suuda lähtestada sünkroniseeringu zurnaali.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Ei suuda avada sünkroniseeringu zurnaali</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>&quot;Vali, mida sünkroniseerida&quot; musta nimekirja tõttu vahele jäetud</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Pole lubatud, kuna sul puuduvad õigused lisada sellesse kataloogi lisada alam-kataloogi</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Pole lubatud, kuna sul puuduvad õigused lisada ülemkataloog</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Pole lubatud, kuna sul puuduvad õigused sellesse kataloogi faile lisada</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Pole lubatud üles laadida, kuna tegemist on ainult-loetava serveriga, taastan</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Eemaldamine pole lubatud, taastan</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Kohalikud failid ja jagatud kaustad eemaldatud.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Liigutamine pole lubatud, üksus taastatud</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Liigutamien pole võimalik kuna %1 on ainult lugemiseks</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>sihtkoht</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>allikas</translation>
</message>
@@ -2415,21 +2438,35 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2702,8 +2739,8 @@ Selle kasutamine pole soovitatav.</translation>
<translation>Vea silt</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>Tekstisilt</translation>
</message>
@@ -2823,27 +2860,27 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2864,7 +2901,7 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="eu" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>&lt;user&gt; bezala &lt;server&gt;-n konektatuta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Gehitu Karpeta...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pausarazi</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Ezabatu</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Hautatu zer sinkronizatu</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Biltegiratze Erabilera</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Erabileraren informazioa eskuratzen...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Oharra:&lt;/b&gt;Karpeta batzuk, sarekoa edo partekatutakoak, muga ezberdinak izan ditzazkete.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Kontuaren Mantenua</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Editatu Baztertutako Fitxategiak</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Aldatu Kontua</translation>
</message>
@@ -705,22 +713,22 @@ Ziur zaude eragiketa hau egin nahi duzula?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ez da E-Tagik jaso zerbitzaritik, egiaztatu Proxy/Gateway</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Jarraitzeko E-Tag ezberdina jaso dugu. Hurrengoan saiatuko gara berriz.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Konexioa denboraz kanpo</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Markatutakoak ezabatuko dira karpeta bat ezabatzeko beharrezkoa bada. Hau meta datuentzat interesgarria da.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Ezin izan da fitxategia ireki</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Ezin izan dira aldaketa idatzi hemen &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Gehitu Baztertzeko Eredua</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Gehitu baztertzeko eredu berria:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Editatu Baztertzeko Eredua</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Editatu baztertzeko eredua</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation type="unfinished"/>
</message>
@@ -1191,24 +1199,24 @@ for additional privileges during the process.</source>
<translation>Konfiguratu %1 zerbitzaria</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Url hori EZ da segurua ez baitago kodetuta.
Ez da gomendagarria erabltzea.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Url hau segurua da. Berau erabili dezakezu.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Eguneratu %1 zerbitzaria</translation>
</message>
@@ -1226,129 +1234,129 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>%2 zerbitzarian dagoen %1 konektatzen...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Bertako %1 karpeta dagoeneko existitzen da, sinkronizaziorako prestatzen.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ados</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>huts egin du.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Ezin da %1 karpeta lokala sortu</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Ez da urruneko karpeta zehaztu!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Errorea: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>ownClouden karpeta sortzen: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Urruneko %1 karpeta ongi sortu da.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Urruneko %1 karpeta dagoeneko existintzen da. Bertara konetatuko da sinkronizatzeko.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>Karpeta sortzeak HTTP %1 errore kodea igorri du</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Huts egin du urrutiko karpeta sortzen emandako kredintzialak ez direlako zuzenak!&lt;br/&gt; Egin atzera eta egiaztatu zure kredentzialak.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Urruneko karpeten sortzeak huts egin du ziuraski emandako kredentzialak gaizki daudelako.&lt;/font&gt;&lt;br/&gt;Mesedez atzera joan eta egiaztatu zure kredentzialak.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Urruneko %1 karpetaren sortzeak huts egin du &lt;tt&gt;%2&lt;/tt&gt; errorearekin.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Sinkronizazio konexio bat konfiguratu da %1 karpetatik urruneko %2 karpetara.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>%1-era ongi konektatu da!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>%1 konexioa ezin da ezarri. Mesedez egiaztatu berriz.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Karpetaren berrizendatzeak huts egin du</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Bertako sinkronizazio %1 karpeta ongi sortu da!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1387,7 +1395,7 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Konexioa denboraz kanpo</translation>
</message>
@@ -1395,7 +1403,7 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1431,20 +1439,25 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1472,7 +1485,7 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>Ezin izan da %1 karpeta sortu</translation>
</message>
@@ -1498,7 +1511,7 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation type="unfinished"/>
</message>
@@ -1569,33 +1582,43 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Fitxategi lokala aldatu da sinkronizazioan.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Fitxategi lokala ezabatu da sinkronizazioan.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1842,7 +1865,7 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"/>
</message>
@@ -1867,73 +1890,73 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Aukeratu pasahitz bat esteka publikorako</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Pasahitza</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2335,69 +2358,69 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Ezin izan da sinkronizazio egunerokoa hasieratu.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Ezabatzeko baimenik gabe, berrezartzen</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Mugitzea ez dago baimenduta, elementua berrezarri da</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Mugitzea ez dago baimenduta %1 irakurtzeko bakarrik delako</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>helburua</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>jatorria</translation>
</message>
@@ -2413,21 +2436,35 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2700,8 +2737,8 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>TestuEtiketa</translation>
</message>
@@ -2821,27 +2858,27 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2862,7 +2899,7 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fa" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>افزودن پوشه...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>توقف کردن</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>حذف</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>ویرایش فایل های در نظر گرفته نشده</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>ویرایش حساب کاربری</translation>
</message>
@@ -704,22 +712,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>تایم اوت اتصال</translation>
</message>
@@ -811,37 +819,37 @@ Checked items will also be deleted if they prevent a directory from being remove
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>ویرایش الگوی نادیده گرفته شده</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>ویرایش الگوی نادیده گرفته شده:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation type="unfinished"/>
</message>
@@ -1188,23 +1196,23 @@ for additional privileges during the process.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>این ادرس امن است. شما می توانید از آن استفاده کنید.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation type="unfinished"/>
</message>
@@ -1222,129 +1230,129 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>تلاش برای اتصال %1 به %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>پوشه همگام سازی محلی %1 در حال حاضر موجود است، تنظیم آن برای همگام سازی. &lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>خوب</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>ناموفق.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>نمی تواند پوشه محلی ایجاد کند %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>خطا: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>ایجاد کردن پوشه بر روی ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>پوشه از راه دور %1 با موفقیت ایجاد شده است.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>در حال حاضر پوشه از راه دور %1 موجود است. برای همگام سازی به آن متصل شوید.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>ایجاد پوشه از راه دور ناموفق بود به علت اینکه اعتبارهای ارائه شده اشتباه هستند!&lt;br/&gt;لطفا اعتبارهای خودتان را بررسی کنید.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt; ایجاد پوشه از راه دور ناموفق بود، شاید به علت اعتبارهایی که ارئه شده اند، اشتباه هستند.&lt;/font&gt;&lt;br/&gt; لطفا باز گردید و اعتبار خود را بررسی کنید.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>ایجاد پوشه از راه دور %1 ناموفق بود با خطا &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>یک اتصال همگام سازی از %1 تا %2 پوشه از راه دور راه اندازی شد.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>با موفقیت به %1 اتصال یافت!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>اتصال به %1 نمی تواند مقرر باشد. لطفا دوباره بررسی کنید.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>تغییر نام پوشه ناموفق بود</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt; پوشه همگام سازی محلی %1 با موفقیت ساخته شده است!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1383,7 +1391,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>تایم اوت اتصال</translation>
</message>
@@ -1391,7 +1399,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1427,20 +1435,25 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1468,7 +1481,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation type="unfinished"/>
</message>
@@ -1494,7 +1507,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation type="unfinished"/>
</message>
@@ -1565,33 +1578,43 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1838,7 +1861,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"/>
</message>
@@ -1863,73 +1886,73 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>گذرواژه</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2331,69 +2354,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
@@ -2409,21 +2432,35 @@ It is not advisable to use it.</source>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2696,8 +2733,8 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>برچسب متنی</translation>
</message>
@@ -2817,27 +2854,27 @@ It is not advisable to use it.</source>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation type="unfinished"/>
</message>
@@ -2858,7 +2895,7 @@ It is not advisable to use it.</source>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fi_FI" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Yhdistetty palvelimeen &lt;server&gt; käyttäen &lt;user&gt; tunnusta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Lisää kansio...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Keskeytä</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Poista</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Valitse synkronoitavat tiedot</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Tilan käyttö</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Noudetaan käyttötietoja...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Huomio:&lt;/b&gt; Jotkin kansiot, mukaan lukien verkon yli liitetyt tai jaetut kansiot, voivat olla eri rajoitusten piirissä.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Tilin ylläpito</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Muokkaa sivuutettuja tiedostoja</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Muokkaa tiliä</translation>
</message>
@@ -684,7 +692,7 @@ Are you sure you want to perform this operation?</source>
<message>
<location filename="../src/gui/folderwizard.cpp" line="537"/>
<source>Choose What to Sync: You can optionally deselect remote subfolders you do not wish to synchronize.</source>
<translation type="unfinished"/>
<translation>Päätä mitä synkronoidaan: voit valinnaisesti jättää valitsematta etäkansioita, joita et halua synkronoitavan.</translation>
</message>
</context>
<context>
@@ -703,22 +711,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Yhteys aikakatkaistiin</translation>
</message>
@@ -810,37 +818,37 @@ Checked items will also be deleted if they prevent a directory from being remove
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Tiedoston avaaminen ei onnistunut</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Lisää ohituskaava</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Lisää uusi ohituskaava:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation type="unfinished"/>
</message>
@@ -895,7 +903,7 @@ Checked items will also be deleted if they prevent a directory from being remove
<message>
<location filename="../src/gui/logbrowser.cpp" line="194"/>
<source>Could not write to log file %1</source>
<translation type="unfinished"/>
<translation>Lokitiedostoon %1 kirjoittaminen epäonnistui</translation>
</message>
</context>
<context>
@@ -1053,13 +1061,13 @@ Checked items will also be deleted if they prevent a directory from being remove
<message>
<location filename="../src/gui/updater/ocupdater.cpp" line="56"/>
<source>New %1 Update Ready</source>
<translation type="unfinished"/>
<translation>Uusi %1-päivitys valmiina</translation>
</message>
<message>
<location filename="../src/gui/updater/ocupdater.cpp" line="57"/>
<source>A new update for %1 is about to be installed. The updater may ask
for additional privileges during the process.</source>
<translation type="unfinished"/>
<translation>Uusi %1-päivitys on valmiina asennettavaksi. Päivitysohjelma saattaa pyytää lisäoikeuksia päivityksen aikana.</translation>
</message>
<message>
<location filename="../src/gui/updater/ocupdater.cpp" line="78"/>
@@ -1127,7 +1135,7 @@ for additional privileges during the process.</source>
<message>
<location filename="../src/gui/wizard/owncloudadvancedsetuppage.cpp" line="138"/>
<source>Sync the directory &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>Synkronoi kansio &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudadvancedsetuppage.cpp" line="142"/>
@@ -1187,24 +1195,24 @@ for additional privileges during the process.</source>
<translation>%1-palvelimen asetuksien määritys</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Tämä osoite ei ole turvallinen, koska sitä ei ole salattu.
Osoitteen käyttäminen ei ole suositeltavaa.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Tämä osoite on turvallinen. Voit käyttää sitä.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Seuraava &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Päivitä %1-palvelin</translation>
</message>
@@ -1222,129 +1230,129 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation>Yhteys %1iin osoitteessa %2 epäonnistui:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Yritetään yhdistetää palvelimeen %1 portissa %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
<translation>Palvelin esti käyttämisen. Vahvista käyttöoikeutesi palvelimeen &lt;a href=&quot;%1&quot;&gt;napsauttamalla tästä&lt;/a&gt; ja kirjaudu palveluun selaimella.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Paikallinen kansio %1 on jo olemassa, asetetaan se synkronoitavaksi.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ok</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>epäonnistui.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Paikalliskansion %1 luonti epäonnistui</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Etäkansiota ei määritelty!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Virhe: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>luodaan kansio ownCloudiin: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Etäkansio %1 luotiin onnistuneesti.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Etäkansio %1 on jo olemassa. Otetaan siihen yhteyttä tiedostojen täsmäystä varten.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>Kansion luonti aiheutti HTTP-virhekoodin %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>Etäkansion luominen epäonnistui koska antamasi tunnus/salasana ei täsmää!&lt;br/&gt;Ole hyvä ja palaa tarkistamaan tunnus/salasana&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Pilvipalvelun etäkansion luominen ei onnistunut , koska tunnistautumistietosi ovat todennäköisesti väärin.&lt;/font&gt;&lt;br/&gt;Palaa takaisin ja tarkista käyttäjätunnus ja salasana.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Etäkansion %1 luonti epäonnistui, virhe &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Täsmäysyhteys kansiosta %1 etäkansioon %2 on asetettu.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Yhteys kohteeseen %1 muodostettiin onnistuneesti!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Yhteyttä osoitteeseen %1 ei voitu muodostaa. Ole hyvä ja tarkista uudelleen.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Kansion nimen muuttaminen epäonnistui</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Paikallinen synkronointikansio %1 luotu onnistuneesti!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1383,7 +1391,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Yhteys aikakatkaistiin</translation>
</message>
@@ -1391,7 +1399,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1427,20 +1435,25 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Tiedostoa ei voitu ladata täysin.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1468,7 +1481,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>kansion %1 luominen epäonnistui</translation>
</message>
@@ -1478,7 +1491,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="60"/>
<source>Error removing &apos;%1&apos;: %2;</source>
<translation type="unfinished"/>
<translation>Virhe poistaessa &apos;%1&apos;: %2;</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="71"/>
@@ -1494,7 +1507,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation type="unfinished"/>
</message>
@@ -1509,7 +1522,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/libsync/propagateremotedelete.cpp" line="114"/>
<source>Wrong HTTP code returned by server. Expected 204, but received &quot;%1 %2&quot;.</source>
<translation type="unfinished"/>
<translation>HTTP-palvelin palautti väärän koodin. Odotettiin koodia 204, vastaanotettiin &quot;%1 %2&quot;.</translation>
</message>
</context>
<context>
@@ -1517,7 +1530,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/libsync/propagateremotemkdir.cpp" line="71"/>
<source>Wrong HTTP code returned by server. Expected 201, but received &quot;%1 %2&quot;.</source>
<translation type="unfinished"/>
<translation>HTTP-palvelin palautti väärän koodin. Odotettiin koodia 201, vastaanotettiin &quot;%1 %2&quot;.</translation>
</message>
</context>
<context>
@@ -1540,7 +1553,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/libsync/propagateremotemove.cpp" line="143"/>
<source>Wrong HTTP code returned by server. Expected 201, but received &quot;%1 %2&quot;.</source>
<translation type="unfinished"/>
<translation>HTTP-palvelin palautti väärän koodin. Odotettiin koodia 201, vastaanotettiin &quot;%1 %2&quot;.</translation>
</message>
</context>
<context>
@@ -1565,33 +1578,43 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Tiedosto poistettu</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Paikallinen tiedosto muuttui synkronoinnin aikana.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Paikallinen tiedosto poistettiin synkronoinnin aikana.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1691,12 +1714,12 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/gui/selectivesyncdialog.cpp" line="373"/>
<source>Choose What to Sync: Select remote subfolders you wish to synchronize.</source>
<translation type="unfinished"/>
<translation>Päätä mitä synkronoidaan: valitse etäkansiot, jotka haluat synkronoida.</translation>
</message>
<message>
<location filename="../src/gui/selectivesyncdialog.cpp" line="374"/>
<source>Choose What to Sync: Deselect remote subfolders you do not wish to synchronize.</source>
<translation type="unfinished"/>
<translation>Päätä mitä synkronoidaan: jätä valitsematta etäkansiot, joita et halua synkronoitavan.</translation>
</message>
<message>
<location filename="../src/gui/selectivesyncdialog.cpp" line="380"/>
@@ -1838,7 +1861,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation>Aseta salasana</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>%1-polku: %2</translation>
</message>
@@ -1863,73 +1886,73 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation>&amp;Suojaa salasanalla</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Salasanasuojattu</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>&amp;Julkinen jakaminen vaatii salasanan:</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Valitse salasana julkiselle linkille</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Jaa linkki</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
<translation>Synkronointikansiota ei ole määritetty.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Tiedostoa ei voi synkronoida.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Salasana</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>Odotetaan siirtoa...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2285,17 +2308,17 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/libsync/syncengine.cpp" line="160"/>
<source>The service is temporarily unavailable</source>
<translation type="unfinished"/>
<translation>Palvelu ei ole juuri nyt käytettävissä</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="166"/>
<source>An error occurred while opening a directory</source>
<translation type="unfinished"/>
<translation>Virhe kansiota avatessa</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="169"/>
<source>An internal error number %1 occurred.</source>
<translation type="unfinished"/>
<translation>Sisäinen virhe, numero %1.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="224"/>
@@ -2325,7 +2348,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/libsync/syncengine.cpp" line="376"/>
<source>Filename is too long.</source>
<translation type="unfinished"/>
<translation>Tiedoston nimi on liian pitkä.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="397"/>
@@ -2333,69 +2356,69 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation>Tiedostonimen merkistökoodaus ei ole kelvollista</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
<translation>Ei sallittu, koska sinulla ei ole oikeutta lisätä alikansioita kyseiseen kansioon</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
<translation>Ei sallittu, koska sinulla ei ole oikeutta lisätä ylätason kansiota</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Ei sallittu, koska sinulla ei ole oikeutta lisätä tiedostoja kyseiseen kansioon</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Poistaminen ei ole sallittua, palautetaan</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Paikalliset tiedostot ja jakokansio poistettu.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Siirtäminen ei ole sallittua, kohde palautettu</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Siirto ei ole sallittu, koska %1 on &quot;vain luku&quot;-tilassa</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>kohde</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>lähde</translation>
</message>
@@ -2411,21 +2434,35 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Versio %1. Lisätietoja osoitteessa &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Tekijänoikeus ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2506,7 +2543,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="424"/>
<source>Help</source>
<translation>Apua</translation>
<translation>Ohje</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="426"/>
@@ -2698,8 +2735,8 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>TekstiLeima</translation>
</message>
@@ -2819,27 +2856,27 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 t</translation>
</message>
@@ -2860,7 +2897,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>Le fichier de destination a une erreur de taille ou de date de modification</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Connecté à &lt;server&gt; en tant que &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Ajouter un dossier...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pause</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Choisir le contenu à synchroniser</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Utilisation du stockage</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Récupération des informations d&apos;utilisation...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Note :&lt;/b&gt; Certains dossiers, montés depuis le réseau ou partagés, peuvent avoir des limites différentes.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Maintenance du compte</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Modifier les fichiers ignorés</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Modifier le compte</translation>
</message>
@@ -705,22 +713,22 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Nous avons reçu un E-Tag différent pour reprendre le téléchargement. Nouvel essai la prochaine fois.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>Le serveur a retourné une gamme de contenu erronée</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Délai d&apos;attente de connexion dépassé</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Les motifs cochés seront également supprimés s&apos;ils empêchent la suppression d&apos;un dossier. Cela est utile pour les meta-données.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Impossible d&apos;ouvrir le fichier</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Impossible d&apos;écrire les modifications sur &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Ajouter un motif à ignorer</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Ajoutez un nouveau motif à ignorer :</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Modifier le motif</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Éditer le motif :</translation>
<translation>Modifier le motif :</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Cette entrée est fournie par le système dans &apos;%1&apos; et ne peut être modifiée dans cette vue.</translation>
</message>
@@ -1137,7 +1145,7 @@ L&apos;assistant peut demander des privilèges additionnels durant le processus.
<message>
<location filename="../src/gui/wizard/owncloudadvancedsetuppage.cpp" line="142"/>
<source>&lt;p&gt;&lt;small&gt;&lt;strong&gt;Warning:&lt;/strong&gt; You currently have multiple folders configured. If you continue with the current settings, the folder configurations will be discarded and a single root folder sync will be created!&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;&lt;strong&gt;Attention :&lt;/strong&gt; Vous avez plusieurs dossiers configurés. Si vous continuez avec les nouveaux paramètres, les configuration de dossiers actuelles seront perdues et une synchronisation de la racine de votre compte vers un seul dossier sera mise en place !&lt;/small&gt;&lt;/p&gt;</translation>
<translation>&lt;p&gt;&lt;small&gt;&lt;strong&gt;Attention :&lt;/strong&gt; Vous avez plusieurs dossiers configurés. Si vous continuez avec les paramètres actuels, ces configurations de dossiers seront perdues et une synchronisation de la racine de votre compte vers un seul dossier sera mise en place !&lt;/small&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudadvancedsetuppage.cpp" line="149"/>
@@ -1192,24 +1200,24 @@ L&apos;assistant peut demander des privilèges additionnels durant le processus.
<translation>Configurer le serveur %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Cette adresse n&apos;est PAS sécurisée car non chiffrée.
Il est déconseillé de l&apos;utiliser.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Cette URL est sécurisée. Vous pouvez l&apos;utiliser.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Suivant &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Modification de l&apos;adresse du serveur %1</translation>
</message>
@@ -1227,129 +1235,129 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>Échec de la connexion à %1 sur %2 :&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Délai d&apos;attente dépassé lors de la connexion à %1 sur %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Tentative de connexion à %1 sur %2 ...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>La requête d&apos;authentification vers le serveur a é redirigée vers &apos;%1&apos;. L&apos;URL est erronée, le serveur est mal configuré.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Une réponse non valide a é reçue à une requête WebDav authentifiée.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Accès refusé par le serveur. Pour vérifier que vous avez accès, &lt;a href=&quot;%1&quot;&gt;cliquez ici&lt;/a&gt; pour accéder au service avec votre navigateur.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>Le dossier de synchronisation local %1 existe déjà, configuration de la synchronisation.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Création du dossier local de synchronisation %1... </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ok</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>échoué.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Impossible de créer le répertoire local %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Aucun dossier distant spécifié !</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Erreur : %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>création d&apos;un répertoire sur ownCloud : %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>Le dossier distant %1 a é créé avec succès.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>Le dossier distant %1 existe déjà. Connexion.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>La création du dossier a généré le code d&apos;erreur HTTP %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>La création du répertoire distant a échoué car les informations d&apos;identification sont erronées !&lt;br/&gt;Veuillez revenir en arrière et les vérifier.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;La création du dossier distant a échoué, probablement parce que les informations d&apos;identification fournies sont fausses.&lt;/font&gt;&lt;br/&gt;Veuillez revenir en arrière et les vérifier.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>La création du dossier distant &quot;%1&quot; a échouée avec l&apos;erreur &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Une synchronisation entre le dossier local %1 et le dossier distant %2 a é configurée.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Connecté avec succès à %1 !</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>La connexion à %1 n&apos;a pu être établie. Veuillez réessayer.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Echec du renommage du dossier</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Impossible de supprimer et de sauvegarder le dossier parce que ce dossier ou un de ses fichiers est ouvert dans un autre programme. Veuillez fermer le dossier ou le fichier et -essayer, ou annuler l&apos;installation.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Dossier de synchronisation local %1 créé avec succès !&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1388,7 +1396,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Délai d&apos;attente de connexion dépassé</translation>
</message>
@@ -1396,7 +1404,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>L&apos;URL interrogéé a renvoyé une réponse json non valide</translation>
</message>
@@ -1432,20 +1440,25 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Le fichier %1 ne peut pas être téléchargé en raison d&apos;un conflit sur le nom de fichier local. </translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Le fichier n&apos;a pas pu être téléchargé intégralement.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Le fichier %1 n&apos;a pas pu être sauvegardé en raison d&apos;un conflit sur le nom du fichier local !</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>Le fichier a changé depuis sa découverte</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1473,7 +1486,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>Attention, collision possible avec %1 à cause de la casse</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>impossible de créer le répertoire %1</translation>
</message>
@@ -1499,7 +1512,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>Le fichier %1 ne peut pas être renommé en %2 à cause d&apos;un conflit local de nom de fichier</translation>
</message>
@@ -1570,33 +1583,43 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Fichier supprimé</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Fichier local modifié pendant la synchronisation. Elle va reprendre. </translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Fichier local modifié pendant la synchronisation.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Le fichier a é modifié localement mais appartient à un partage en lecture seule. Il a é restauré et vos modifications sont présentes dans le fichiers de conflit.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>URL de sondage manquante</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Fichier local supprimé pendant la synchronisation.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Le serveur n&apos;a pas acquitté le dernier morceau (aucun e-tag n&apos;était présent).</translation>
</message>
@@ -1666,7 +1689,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<message>
<location filename="../src/gui/protocolwidget.cpp" line="256"/>
<source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation>Actuellement aucun fichier n&apos;a é ignoré en raison d&apos;erreurs précédentes, et aucun téléchargement n&apos;est en cours.</translation>
<translation>Actuellement, aucun fichier n&apos;a é ignoré en raison des erreurs précédentes et aucun téléchargement n&apos;est en cours.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/protocolwidget.cpp" line="259"/>
@@ -1849,7 +1872,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>Définir le mot de passe</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>Chemin %1 : %2</translation>
</message>
@@ -1874,73 +1897,73 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>Protéger par mot de p&amp;asse</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Protégé par un mot de passe</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>Le fichier ne peut pas être partagé car il a é partagé sans permission de repartage.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>Le p&amp;artage public requiert un mot de passe :</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Choisissez un mot de passe pour le lien public</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Partage par lien</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>Code d&apos;erreur OCS API : %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>Aucun dossier à synchroniser n&apos;est configuré.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>Impossible de trouver un dossier vers lequel téléverser.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Un fichier synchronisé avec le même nom existe déjà. Le fichier ne peut être ajouté à la synchronisation.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Le fichier ne peut pas être synchronisé.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>Le partage de dossiers externes n&apos;est pas encore pris en charge.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>Le p&amp;artage public nécessite un mot de passe</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>En attente d&apos;envoi...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>Impossible de s&apos;enregistrer à l&apos;espace de synchronisation.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>La synchronisation du fichier n&apos;a pas encore pu être effectuée.</translation>
</message>
@@ -2344,69 +2367,69 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>L&apos;encodage du nom de fichier n&apos;est pas valide</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Impossible d&apos;initialiser un journal de synchronisation.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Impossible d&apos;ouvrir le journal de synchronisation</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignoré à cause de la liste noire &quot;Choisir le contenu à synchroniser&quot;.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Non autorisé car vous n&apos;avez pas la permission d&apos;ajouter des sous-dossiers dans ce dossier</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Non autorisé car vous n&apos;avez pas la permission d&apos;ajouter des dossiers parents</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Non autorisé car vous n&apos;avez pas la permission d&apos;ajouter des fichiers dans ce dossier</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Non autorisé à envoyer ce fichier car il est en lecture seule sur le serveur. Restauration</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Non autorisé à supprimer. Restauration</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Fichiers locaux et répertoire de partage supprimés.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Déplacement non autorisé, élément restauré</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Déplacement non autorisé car %1 est en mode lecture seule</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>la destination</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>la source</translation>
</message>
@@ -2422,21 +2445,35 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Version %1. Pour plus d&apos;information, visitez &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Distribué par %1 et sous licence GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 et le logo %2 sont des marques enregistrées de %1 aux Etats-Unis, dans d&apos;autres pays, ou les deux.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>L&apos;entête de somme de contrôle est mal formée.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>Le fichier téléchargé ne correspond pas à la somme de contrôle, il va être téléchargé à nouveau.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2709,8 +2746,8 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>Message d&apos;erreur</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>Zone de texte</translation>
</message>
@@ -2830,27 +2867,27 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 Tio</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 Gio</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 Mio</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 Kio</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 octets</translation>
</message>
@@ -2871,7 +2908,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Construit à partir de la révision Git &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; du %3, %4 en utilisant Qt %5, %6.&lt;/small&gt;&lt;p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="gl" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>O ficheiro de destino ten un tamaño ou unha hora de modificación non agardados</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Conectado con &lt;server&gt; como &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Engadir un cartafol...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pausa</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Retirar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Escolla que sincronizar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Uso do almacenamento</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Recuperando a información de uso...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Nota:&lt;/b&gt; Algúns cartafoles, como os cartafoles de rede montados ou os compartidos, poden ten diferentes límites.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Mantemento da conta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Editar os ficheiros ignorados</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Modificar a conta</translation>
</message>
@@ -705,22 +713,22 @@ Confirma que quere realizar esta operación?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Non se recibiu a «E-Tag» do servidor, comprobe o proxy e/ou a pasarela</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recibiuse unha «E-Tag» diferente para continuar. Tentándoo outra vez.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>O servidor devolveu un intervalo de contidos estragado</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Esgotouse o tempo de conexión</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Os elementos marcados tamén se eliminarán se impiden retirar un directorio. Isto é útil para os metadatos.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Non foi posíbel abrir o ficheiro</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Non é posíbel escribir os cambios en «%1».</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Engadir o patrón a ignorar</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Engadir un novo patrón a ignorar:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Editar o patrón a ignorar</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Editar o patrón a ignorar:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Esta entrada é fornecida polo sistema en «%1» e non pode ser modificado nesta vista.</translation>
</message>
@@ -1192,24 +1200,24 @@ actualización pode pedir privilexios adicionais durante o procedemento.</transl
<translation>Estabelecer o servidor %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Este sitio de Internet non é seguro, xa que non está cifrado.
Recomendámoslle que non o use.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Este URL é seguro. Pode utilizalo.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>&amp;Seguinte &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Actualizar o servidor %1</translation>
</message>
@@ -1227,129 +1235,129 @@ Recomendámoslle que non o use.</translation>
<translation>Non foi posíbel conectar con %1 en %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Esgotouse o tempo tentando conectarse a %1 en %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Tentando conectarse a %1 en %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>A solicitude autenticada no servidor foi redirixida a «%1», O URL é incorrecto, o servidor está mal configurado.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Deuse unha resposta incorrecta a unha solicitude de WebDAV autenticada</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Acceso prohibido polo servidor. Para comprobar que dispón do acceso axeitado, &lt;a href=&quot;%1&quot;&gt;prema aquí&lt;/a&gt; para acceder ao servizo co seu navegador.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>O cartafol de sincronización local %1 xa existe. Configurándoo para a sincronización.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Creando un cartafol local de sincronización %1...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>aceptar</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>fallou.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Non foi posíbel crear o cartafol local %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Non foi especificado o cartafol remoto!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Erro: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>creando o cartafol en ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>O cartafol remoto %1 creouse correctamente.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>O cartafol remoto %1 xa existe. Conectándoo para a sincronización.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>A creación do cartafol resultou nun código de erro HTTP %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>A creación do cartafol remoto fracasou por por de seren incorrectas as credenciais!&lt;br/&gt;Volva atrás e comprobe as súas credenciais.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;A creación do cartafol remoto fallou probabelmente debido a que as credenciais que se deron non foran as correctas.&lt;/font&gt;&lt;br/&gt;Volva atrás e comprobe as súas credenciais.&lt;/p&gt; </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Produciuse un fallo ao crear o cartafol remoto %1 e dou o erro &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Estabeleceuse a conexión de sincronización de %1 ao directorio remoto %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Conectou satisfactoriamente con %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>Non foi posíbel estabelecer a conexión con %1. Compróbeo de novo.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Non foi posíbel renomear o cartafol</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Non é posíbel retirar e facer copia de seguranza do cartafol, xa que o cartafol ou un ficheiro está aberto noutro programa Peche o cartafol ou o ficheiro e ténteo de novo, ou cancele a acción.</translation>
<translation>Non é posíbel retirar e facer unha copia de seguranza do cartafol, xa que o cartafol ou un ficheiro está aberto noutro programa Peche o cartafol ou o ficheiro e ténteo de novo, ou cancele a acción.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;O cartafol local de sincronización %1 creouse correctamente!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1388,7 +1396,7 @@ Recomendámoslle que non o use.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Esgotouse o tempo de conexión</translation>
</message>
@@ -1396,7 +1404,7 @@ Recomendámoslle que non o use.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>O URL requirido devolveu unha resposta JSON incorrecta</translation>
</message>
@@ -1432,20 +1440,25 @@ Recomendámoslle que non o use.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Non é posíbel descargar o ficheiro %1 por mor dunha colisión co nome dun ficheiro local!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Non foi posíbel descargar completamente o ficheiro.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Non foi posíbel gardar o ficheiro %1 por mor dunha colisión co nome dun ficheiro local!</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>O ficheiro cambiou após seren atopado</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1473,7 +1486,7 @@ Recomendámoslle que non o use.</translation>
<translation>Atención, posíbel colisión entre maiúsculas e minúsculas con %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>non foi posíbel crear o directorio %1</translation>
</message>
@@ -1499,7 +1512,7 @@ Recomendámoslle que non o use.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>Non é posíbel renomear o ficheiro %1 como %2 por mor dunha colisión co nome dun ficheiro local</translation>
</message>
@@ -1570,33 +1583,43 @@ Recomendámoslle que non o use.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>Ficheiro retirado</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>O ficheiro local cambiou durante a sincronización. Retomase.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>O ficheiro local cambiou durante a sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Forzando a interrupción do traballo na conexión HTTP reiniciandoa con Qt &lt;5.4.2.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>O ficheiro foi editado localmente mais é parte dunha compartición de lectura. O ficheiro foi restaurado e a súa edición atopase no ficheiro de conflitos.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>Non se atopa o URL requirido</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>O ficheiro local retirarase durante a sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>O servidor non recoñeceu o último fragmento. (Non hai e-tag presente)</translation>
</message>
@@ -1846,7 +1869,7 @@ Recomendámoslle que non o use.</translation>
<translation>Estabelecer o contrasinal</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>Ruta a %1: %2</translation>
</message>
@@ -1871,73 +1894,73 @@ Recomendámoslle que non o use.</translation>
<translation>Contr&amp;asinal de protección</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Protexido con contrasinal</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>Non é posíbel compartir o ficheiro, xa que foi compartido sen permisis para compartir.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>A comp&amp;artición pública precisa de contrasinal </translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Escolla un contrasinal para a ligazón pública</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>&amp;Ligazón para compartir</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>API OCS API código de erro: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>Non hai ningún cartafol de sincronización configurado.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>Non é posíbel atopar un cartafol que enviar.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Xa existe un ficheiro de sincronización co mesmo nome. Non é posíbel rexistrar o ficheiro para sincronizar.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Non é posíbel sincronizar o ficheiro.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>A compartición de directorios externos aínda non está a funcionar.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>A comp&amp;artición pública precisa de contrasinal </translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Contrasinal</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>Agardando polo envío...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>Non é posíbel facer un rexistro no espazo de sincronización.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>A sincronización di ficheiro rexistrado no non foi satisfactoria.</translation>
</message>
@@ -2341,69 +2364,69 @@ Recomendámoslle que non o use.</translation>
<translation>O nome de ficheiro codificado non é correcto</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Non é posíbel preparar un rexistro de sincronización.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Non foi posíbel abrir o rexistro de sincronización</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorado por mor da lista negra de «escolla que sincronizar»</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Non está permitido xa que non ten permiso para engadir subdirectorios nese directorio</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Non está permitido xa que non ten permiso para engadir un directorio pai</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Non está permitido xa que non ten permiso para engadir ficheiros nese directorio</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Non está permitido o envío xa que o ficheiro é de lectura no servidor, restaurando</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Non está permitido retiralo, restaurando</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>Retirados os ficheiros locais e o cartafol compartido.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Nos está permitido movelo, elemento restaurado</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Bon está permitido movelo xa que %1 é de lectura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>o destino</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>a orixe</translation>
</message>
@@ -2419,21 +2442,35 @@ Recomendámoslle que non o use.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Versión %1. Para obter máis información visite &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Distribuído por %1 e licenciado baixo a Licenza Pública Xeral (GPL) GNU Versión 2.0.&lt;br/&gt;Os logotipos %2 e %2 son marcas rexistradas de %1 nos Estados Unidos de Norte América e/ou outros países.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>A cabeceira da suma de comprobación é incorrecta.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>O ficheiro descargado non coincide coa suma de comprobación. Retomase.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2706,8 +2743,8 @@ Recomendámoslle que non o use.</translation>
<translation>Etiqueta de erro</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>Etiqueta de texto</translation>
</message>
@@ -2827,27 +2864,27 @@ Recomendámoslle que non o use.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2868,7 +2905,7 @@ Recomendámoslle que non o use.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Construído a partir de la revisión Git &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; en %3, %4 usando Qt %5, %6&lt;/small&gt;&lt;/p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="hu_HU" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Mappa lètrehozása...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Szünet</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Eltávolítás</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Szinkronizálandó elemek kiválasztása</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Tárhelyhasználat</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Fiókkarbantartás</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Kihagyott fájlok szerkesztése</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Fiók módosítása</translation>
</message>
@@ -702,22 +710,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -809,37 +817,37 @@ Checked items will also be deleted if they prevent a directory from being remove
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Nem sikerült a fájl megnyitása</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation type="unfinished"/>
</message>
@@ -1186,23 +1194,23 @@ for additional privileges during the process.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Ez az url biztonságos.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation type="unfinished"/>
</message>
@@ -1220,129 +1228,129 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Próbál kapcsolódni az %1-hoz: %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>A helyi %1 mappa már létezik, állítsa be a szinkronizálódását.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ok</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation> sikertelen.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Hiba: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>%1 távoli nappa sikeresen létrehozva.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>A %1 távoli mappa már létezik. Csatlakoztassa a szinkronizációhoz.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>A könyvtár létrehozásakor keletkezett HTTP hibakód %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;A távoli mappa létrehozása sikertelen, valószínűleg mivel hibásak a megdott hitelesítési adatok.&lt;/font&gt;&lt;br/&gt;Lépjen vissza és ellenőrizze a belépési adatokat.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>A távoli %1 mappa létrehozása nem sikerült. Hibaüzenet: &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>A szinkronizációs kapcsolat a %1 és a %2 távoli mappa között létrejött.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Sikeresen csatlakozva: %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>A kapcsolat a %1 kiszolgálóhoz sikertelen. Ellenőrizze újra.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>A mappa átnevezése nem sikerült</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Helyi %1 szinkronizációs mappa sikeresen létrehozva!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1381,7 +1389,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -1389,7 +1397,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -1425,20 +1433,25 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1466,7 +1479,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation type="unfinished"/>
</message>
@@ -1492,7 +1505,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation type="unfinished"/>
</message>
@@ -1563,33 +1576,43 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1836,7 +1859,7 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation type="unfinished"/>
</message>
@@ -1861,73 +1884,73 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Válasszon egy jelszót a nyilvános linkhez</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Jelszó</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation type="unfinished"/>
</message>
@@ -2329,69 +2352,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
@@ -2407,21 +2430,35 @@ It is not advisable to use it.</source>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2694,8 +2731,8 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>TextLabel</translation>
</message>
@@ -2815,27 +2852,27 @@ It is not advisable to use it.</source>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2856,7 +2893,7 @@ It is not advisable to use it.</source>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="it" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation>Il file di destinazione ha una dimensione o un&apos;ora di modifica inattesa</translation>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>Connesso a &lt;server&gt; come &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation>Aggiungi cartella...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation>Pausa</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation>Rimuovi</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation>Scegli cosa sincronizzare</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation>Utilizzo archiviazione</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>Recupero delle informazioni di utilizzo in corso...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;Nota:&lt;/b&gt; alcune cartelle, incluse le cartelle montate o condivise in rete, potrebbero avere limiti diversi.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation>Gestione account</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation>Modifica file ignorati</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation>Modifica account</translation>
</message>
@@ -705,22 +713,22 @@ Sei sicuro di voler eseguire questa operazione?</translation>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nessun e-tag ricevuto dal server, controlla il proxy/gateway</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Abbiamo ricevuto un e-tag diverso per il recupero. Riprova più tardi.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>Il server ha restituito un content-range errato</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation>Connessione scaduta</translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
Gli elementi marcati saranno inoltre eliminati se impediscono la rimozione di una cartella. Utile per i metadati.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation>Impossibile aprire il file</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>Impossibile scrivere le modifiche in &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation>Aggiungi modello Ignora</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>Aggiungi un nuovo modello di esclusione:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation>Modifica modello Ignora</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>Modifica modello Ignora:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation>Questa voce è fornita dal sistema in &apos;%1&apos; e non può essere modificata in questa vista.</translation>
</message>
@@ -1191,24 +1199,24 @@ for additional privileges during the process.</source>
<translation>Configura il server %1</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>Questo URL NON è sicuro poiché non è cifrato.
Non è consigliabile utilizzarlo.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>Questo URL è sicuro. Puoi utilizzarlo.</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>Ava&amp;nti &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>Aggiorna il server %1</translation>
</message>
@@ -1226,129 +1234,129 @@ Non è consigliabile utilizzarlo.</translation>
<translation>Connessione a %1 su %2:&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>Tempo scaduto durante il tentativo di connessione a %1 su %2.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>Tentativo di connessione a %1 su %2...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation>La richiesta autenticata al server è stata rediretta a &apos;%1&apos;. L&apos;URL è errato, il server non è configurato correttamente.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation>Ricevuta una risposta non valida a una richiesta webdav autenticata.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>Accesso negato dal server. Per verificare di avere i permessi appropriati, &lt;a href=&quot;%1&quot;&gt;fai clic qui&lt;/a&gt; per accedere al servizio con il tuo browser.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation>La cartella di sincronizzazione locale %1 esiste già, impostata per la sincronizzazione.&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation>Creazione della cartella locale di sincronizzazione %1... </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>ok</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation>non riuscita.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation>Impossibile creare la cartella locale %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation>Nessuna cartella remota specificata!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>Errore: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>creazione cartella su ownCloud: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation>La cartella remota %1 è stata creata correttamente.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation>La cartella remota %1 esiste già. Connessione in corso per la sincronizzazione</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>La creazione della cartella ha restituito un codice di errore HTTP %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>La creazione della cartella remota non è riuscita poiché le credenziali fornite sono errate!&lt;br/&gt;Torna indietro e verifica le credenziali.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;La creazione della cartella remota non è riuscita probabilmente perché le credenziali fornite non sono corrette.&lt;/font&gt;&lt;br/&gt;Torna indietro e controlla le credenziali inserite.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation>Creazione della cartella remota %1 non riuscita con errore &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>Una connessione di sincronizzazione da %1 alla cartella remota %2 è stata stabilita.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>Connesso con successo a %1!</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>La connessione a %1 non può essere stabilita. Prova ancora.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation>Rinomina della cartella non riuscita</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation>Impossibile rimuovere o creare una copia di sicurezza della cartella poiché la cartella o un file in essa contenuto è aperta in un altro programma. Chiudi la cartella o il file e premi Riprova o annulla la configurazione.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Cartella locale %1 creata correttamente!&lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1387,7 +1395,7 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation>Connessione scaduta</translation>
</message>
@@ -1395,7 +1403,7 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Risposta JSON non valida dall&apos;URL di richiesta</translation>
</message>
@@ -1431,20 +1439,25 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Il file %1 non può essere scaricato a causa di un conflitto con un file locale.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation>Il file non può essere scaricato completamente.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Il file %1 non può essere salvato a causa di un conflitto con un file locale.</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation>Il file è stato modificato dal suo rilevamento</translation>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1472,7 +1485,7 @@ Non è consigliabile utilizzarlo.</translation>
<translation>Attenzione, possibile conflitto relativo all&apos;uso di maiuscole e minuscole con %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation>impossibile creare la cartella %1</translation>
</message>
@@ -1498,7 +1511,7 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation>Il file %1 non può essere rinominato in %2 a causa di un conflitto con il nome di un file locale</translation>
</message>
@@ -1569,33 +1582,43 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation>File rimosso</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Il file locale è stato modificato durante la sincronizzazione. Sarà ripristinato.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation>Un file locale è cambiato durante la sincronizzazione.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Forzare l&apos;interruzione dell&apos;operazione in caso di ripristino della connessione HTTP con Qt &lt; 5.4.2.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Il file è stato modificato localmente, ma è parte di una condivisione in sola lettura. È stato ripristinato e la tua modifica è nel file di conflitto.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>URL di richiesta mancante</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation>Il file locale è stato rimosso durante la sincronizzazione.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Il server non ha riconosciuto l&apos;ultimo pezzo. (Non era presente alcun e-tag)</translation>
</message>
@@ -1846,7 +1869,7 @@ Non è consigliabile utilizzarlo.</translation>
<translation>imposta la password</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>Percorso %1: %2</translation>
</message>
@@ -1871,73 +1894,73 @@ Non è consigliabile utilizzarlo.</translation>
<translation>Proteggi con p&amp;assword</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation>Protetta da password</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation>Il file non può essere condiviso poiché è stato condiviso senza il permesso di condivisione.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>La condivisione pubblic&amp;a richiede una password:</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>Scegli una password per il collegamento pubblico</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>Condividi colle&amp;gamento</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>Codice di errore API OCS: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation>Non è stata configurata alcuna cartella per la sincronizzazione.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation>Impossibile trovare una cartella di destinazione.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation>Un file di sincronizzazione con lo stesso nome esiste già. Il file non può essere registrato per la sincronizzazione.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation>Il file non può essere sincronizzato.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation>La condivisione di cartelle esterne non funziona ancora.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation>La condivisione pubblic&amp;a richiede una password</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation>Password</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>In attesa di caricamento...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation>Impossibile registrare nello spazio di sincronizzazione.</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation>La sincronizzazione del file registrato non è stata ancora completata.</translation>
</message>
@@ -2341,69 +2364,69 @@ Non è consigliabile utilizzarlo.</translation>
<translation>La codifica del nome del file non è valida</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation>Impossibile inizializzare il registro di sincronizzazione.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation>Impossibile aprire il registro di sincronizzazione</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorato in base alla lista nera per la scelta di cosa sincronizzare</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Non consentito poiché non disponi dei permessi per aggiungere sottocartelle in quella cartella</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Non consentito poiché non disponi dei permessi per aggiungere la cartella superiore</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Non consentito poiché non disponi dei permessi per aggiungere file in quella cartella</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Il caricamento di questo file non è consentito poiché è in sola lettura sul server, ripristino</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation>Rimozione non consentita, ripristino</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation>I file locali e la cartella condivisa sono stati rimossi.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation>Spostamento non consentito, elemento ripristinato</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Spostamento non consentito poiché %1 è in sola lettura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation>la destinazione</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation>l&apos;origine</translation>
</message>
@@ -2419,21 +2442,35 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;Versione %1. Per ulteriori informazioni vedi &lt;a href=&quot;%2&quot;&gt;3&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;Distribuito da %1 e sotto licenza GNU General Public License (GPL) versione 2.0.&lt;br/&gt;%2 e il logo di %2 sono marchi registrati di %1 negli Stati Uniti, in altri paesi o entrambi.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation>L&apos;intestazione del codice di controllo è malformata.</translation>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation>Il file scaricato non verifica il codice di controllo, sarà ripristinato.</translation>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2706,8 +2743,8 @@ Non è consigliabile utilizzarlo.</translation>
<translation>Etichetta di errore</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation>EtichettaTesto</translation>
</message>
@@ -2827,27 +2864,27 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2868,7 +2905,7 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;small&gt;Compilato dalla revisione Git &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; il %3, %4 utilizzando Qt %5, %6&lt;/small&gt;&lt;p&gt;</translation>
</message>

View File

@@ -1,4 +1,12 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="ja_JP" version="2.0">
<context>
<name>FileSystem</name>
<message>
<location filename="../src/libsync/filesystem.cpp" line="196"/>
<source>The destination file has an unexpected size or modification time</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FolderWizardSourcePage</name>
<message>
@@ -73,53 +81,53 @@
<translation>&lt;server&gt; &lt;user&gt; </translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="55"/>
<location filename="../src/gui/accountsettings.ui" line="58"/>
<source>Add Folder...</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="62"/>
<location filename="../src/gui/accountsettings.ui" line="65"/>
<location filename="../src/gui/accountsettings.cpp" line="167"/>
<source>Pause</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="69"/>
<location filename="../src/gui/accountsettings.ui" line="72"/>
<source>Remove</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="76"/>
<location filename="../src/gui/accountsettings.ui" line="79"/>
<source>Choose What to Sync</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="101"/>
<location filename="../src/gui/accountsettings.ui" line="104"/>
<source>Storage Usage</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="123"/>
<location filename="../src/gui/accountsettings.ui" line="126"/>
<source>Retrieving usage information...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="130"/>
<location filename="../src/gui/accountsettings.ui" line="133"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>&lt;b&gt;:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="143"/>
<location filename="../src/gui/accountsettings.ui" line="146"/>
<source>Account Maintenance</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="152"/>
<location filename="../src/gui/accountsettings.ui" line="155"/>
<source>Edit Ignored Files</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="159"/>
<location filename="../src/gui/accountsettings.ui" line="162"/>
<source>Modify Account</source>
<translation></translation>
</message>
@@ -705,22 +713,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>OCC::GETFileJob</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="123"/>
<location filename="../src/libsync/propagatedownload.cpp" line="150"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>E-Tagを受信できません/</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="130"/>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation> E-Tagを受信しました</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="157"/>
<location filename="../src/libsync/propagatedownload.cpp" line="184"/>
<source>Server returned wrong content-range</source>
<translation>content-rangeを返しました</translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="262"/>
<location filename="../src/libsync/propagatedownload.cpp" line="289"/>
<source>Connection Timeout</source>
<translation></translation>
</message>
@@ -814,37 +822,37 @@ Checked items will also be deleted if they prevent a directory from being remove
</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="96"/>
<source>Could not open file</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="98"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="97"/>
<source>Cannot write changes to &apos;%1&apos;.</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="104"/>
<source>Add Ignore Pattern</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="106"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="105"/>
<source>Add a new ignore pattern:</source>
<translation>:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="127"/>
<source>Edit Ignore Pattern</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="129"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="128"/>
<source>Edit ignore pattern:</source>
<translation>:</translation>
</message>
<message>
<location filename="../src/gui/ignorelisteditor.cpp" line="140"/>
<location filename="../src/gui/ignorelisteditor.cpp" line="139"/>
<source>This entry is provided by the system at &apos;%1&apos; and cannot be modified in this view.</source>
<translation> &apos;%1&apos; </translation>
</message>
@@ -1191,23 +1199,23 @@ for additional privileges during the process.</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="120"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="121"/>
<source>This url is NOT secure as it is not encrypted.
It is not advisable to use it.</source>
<translation>URLは暗号化されていないため安全ではありません</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="124"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="125"/>
<source>This url is secure. You can use it.</source>
<translation>URLは安全です</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="163"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="164"/>
<source>&amp;Next &gt;</source>
<translation>(&amp;N) &gt;</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="295"/>
<location filename="../src/gui/wizard/owncloudsetuppage.cpp" line="296"/>
<source>Update %1 server</source>
<translation>%1 </translation>
</message>
@@ -1225,129 +1233,129 @@ It is not advisable to use it.</source>
<translation>%2 %1 :&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="196"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="200"/>
<source>Timeout while trying to connect to %1 at %2.</source>
<translation>%2 %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="207"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="211"/>
<source>Trying to connect to %1 at %2...</source>
<translation>%2 %1 ...</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="254"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="258"/>
<source>The authenticated request to the server was redirected to &apos;%1&apos;. The URL is bad, the server is misconfigured.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="275"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
<source>There was an invalid response to an authenticated webdav request</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="268"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="271"/>
<source>Access forbidden by server. To verify that you have proper access, &lt;a href=&quot;%1&quot;&gt;click here&lt;/a&gt; to access the service with your browser.</source>
<translation>&lt;a href=&quot;%1&quot;&gt;&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="317"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="322"/>
<source>Local sync folder %1 already exists, setting it up for sync.&lt;br/&gt;&lt;br/&gt;</source>
<translation> %1 &lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="319"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="324"/>
<source>Creating local sync folder %1...</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="323"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="328"/>
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="325"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="330"/>
<source>failed.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="327"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="332"/>
<source>Could not create local folder %1</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="352"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="357"/>
<source>No remote folder specified!</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="358"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="363"/>
<source>Error: %1</source>
<translation>: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="371"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="376"/>
<source>creating folder on ownCloud: %1</source>
<translation>ownCloud上にフォルダーを作成中: %1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="387"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="392"/>
<source>Remote folder %1 created successfully.</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="389"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="394"/>
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="391"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="393"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="396"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<source>The folder creation resulted in HTTP error code %1</source>
<translation>HTTPのエラーコード %1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="395"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="400"/>
<source>The remote folder creation failed because the provided credentials are wrong!&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;br/&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<source>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;Remote folder creation failed probably because the provided credentials are wrong.&lt;/font&gt;&lt;br/&gt;Please go back and check your credentials.&lt;/p&gt;</source>
<translation>&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;/font&gt;&lt;br/&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="403"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="404"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="408"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="409"/>
<source>Remote folder %1 creation failed with error &lt;tt&gt;%2&lt;/tt&gt;.</source>
<translation> %1 &lt;tt&gt;%2&lt;/tt&gt;.</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="420"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<source>A sync connection from %1 to remote directory %2 was set up.</source>
<translation>%1 %2 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="430"/>
<source>Successfully connected to %1!</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="432"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="437"/>
<source>Connection to %1 could not be established. Please check again.</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="445"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="450"/>
<source>Folder rename failed</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="446"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
<location filename="../src/gui/owncloudsetupwizard.cpp" line="497"/>
<source>&lt;font color=&quot;green&quot;&gt;&lt;b&gt;Local sync folder %1 successfully created!&lt;/b&gt;&lt;/font&gt;</source>
<translation>&lt;font color=&quot;green&quot;&gt;&lt;b&gt; %1 &lt;/b&gt;&lt;/font&gt;</translation>
</message>
@@ -1386,7 +1394,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="93"/>
<location filename="../src/libsync/propagateupload.cpp" line="113"/>
<source>Connection Timeout</source>
<translation></translation>
</message>
@@ -1394,7 +1402,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="143"/>
<location filename="../src/libsync/propagateupload.cpp" line="170"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>JSONがポーリングURLから返りました</translation>
</message>
@@ -1430,20 +1438,25 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateDownloadFileQNAM</name>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="287"/>
<location filename="../src/libsync/propagatedownload.cpp" line="314"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="463"/>
<location filename="../src/libsync/propagatedownload.cpp" line="485"/>
<source>The file could not be downloaded completely.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="498"/>
<location filename="../src/libsync/propagatedownload.cpp" line="580"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/libsync/propagatedownload.cpp" line="620"/>
<source>File has changed since discovery</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::PropagateItemJob</name>
@@ -1471,7 +1484,7 @@ It is not advisable to use it.</source>
<translation>: %1 </translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="124"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="125"/>
<source>could not create directory %1</source>
<translation> %1 </translation>
</message>
@@ -1497,7 +1510,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateLocalRename</name>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="151"/>
<location filename="../src/libsync/propagatorjobs.cpp" line="152"/>
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
<translation> %1 %2 </translation>
</message>
@@ -1568,33 +1581,43 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="180"/>
<location filename="../src/libsync/propagateupload.cpp" line="226"/>
<source>File Removed</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="194"/>
<location filename="../src/libsync/propagateupload.cpp" line="552"/>
<location filename="../src/libsync/propagateupload.cpp" line="238"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="250"/>
<location filename="../src/libsync/propagateupload.cpp" line="628"/>
<source>Local file changed during sync.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="477"/>
<location filename="../src/libsync/propagateupload.cpp" line="557"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="565"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="511"/>
<location filename="../src/libsync/propagateupload.cpp" line="594"/>
<source>Poll URL missing</source>
<translation>URLがありません</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="534"/>
<location filename="../src/libsync/propagateupload.cpp" line="617"/>
<source>The local file was removed during sync.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="567"/>
<location filename="../src/libsync/propagateupload.cpp" line="643"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>(e-tag )</translation>
</message>
@@ -1843,7 +1866,7 @@ It is not advisable to use it.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="649"/>
<location filename="../src/gui/sharedialog.cpp" line="634"/>
<source>%1 path: %2</source>
<translation>%1 : %2</translation>
</message>
@@ -1868,73 +1891,73 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="196"/>
<location filename="../src/gui/sharedialog.cpp" line="203"/>
<source>Password Protected</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="341"/>
<location filename="../src/gui/sharedialog.cpp" line="343"/>
<source>The file can not be shared because it was shared without sharing permission.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="447"/>
<source>Public sh&amp;aring requires a password:</source>
<translation>(&amp;a)</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="469"/>
<source>Choose a password for the public link</source>
<translation>URLによる共有のパスワードを入力</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="521"/>
<location filename="../src/gui/sharedialog.cpp" line="522"/>
<location filename="../src/gui/sharedialog.cpp" line="506"/>
<location filename="../src/gui/sharedialog.cpp" line="507"/>
<source>&amp;Share link</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="540"/>
<location filename="../src/gui/sharedialog.cpp" line="525"/>
<source>OCS API error code: %1</source>
<translation>OCS APIエラーコード: %1</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="562"/>
<location filename="../src/gui/sharedialog.cpp" line="547"/>
<source>There is no sync folder configured.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="574"/>
<location filename="../src/gui/sharedialog.cpp" line="559"/>
<source>Cannot find an folder to upload to.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="596"/>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<source>A sync file with the same name exists. The file cannot be registered to sync.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="641"/>
<location filename="../src/gui/sharedialog.cpp" line="626"/>
<source>The file cannot be synced.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="581"/>
<location filename="../src/gui/sharedialog.cpp" line="566"/>
<source>Sharing of external directories is not yet working.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="608"/>
<location filename="../src/gui/sharedialog.cpp" line="448"/>
<source>Public sh&amp;aring requires a password</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="470"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="593"/>
<source>Waiting to upload...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="610"/>
<location filename="../src/gui/sharedialog.cpp" line="595"/>
<source>Unable to register in sync space.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/sharedialog.cpp" line="651"/>
<location filename="../src/gui/sharedialog.cpp" line="636"/>
<source>Sync of registered file was not successful yet.</source>
<translation></translation>
</message>
@@ -2338,69 +2361,69 @@ It is not advisable to use it.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="602"/>
<location filename="../src/libsync/syncengine.cpp" line="601"/>
<source>Unable to initialize a sync journal.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="694"/>
<location filename="../src/libsync/syncengine.cpp" line="680"/>
<source>Cannot open the sync journal</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="955"/>
<location filename="../src/libsync/syncengine.cpp" line="962"/>
<location filename="../src/libsync/syncengine.cpp" line="941"/>
<location filename="../src/libsync/syncengine.cpp" line="948"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>&quot;&quot; </translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="980"/>
<location filename="../src/libsync/syncengine.cpp" line="966"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="986"/>
<location filename="../src/libsync/syncengine.cpp" line="972"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="993"/>
<location filename="../src/libsync/syncengine.cpp" line="979"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1013"/>
<location filename="../src/libsync/syncengine.cpp" line="999"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1030"/>
<location filename="../src/libsync/syncengine.cpp" line="1050"/>
<location filename="../src/libsync/syncengine.cpp" line="1016"/>
<location filename="../src/libsync/syncengine.cpp" line="1036"/>
<source>Not allowed to remove, restoring</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1063"/>
<location filename="../src/libsync/syncengine.cpp" line="1049"/>
<source>Local files and share folder removed.</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1118"/>
<location filename="../src/libsync/syncengine.cpp" line="1104"/>
<source>Move not allowed, item restored</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1127"/>
<location filename="../src/libsync/syncengine.cpp" line="1113"/>
<source>Move not allowed because %1 is read-only</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the destination</source>
<translation></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1128"/>
<location filename="../src/libsync/syncengine.cpp" line="1114"/>
<source>the source</source>
<translation></translation>
</message>
@@ -2416,21 +2439,35 @@ It is not advisable to use it.</source>
<context>
<name>OCC::Theme</name>
<message>
<location filename="../src/libsync/theme.cpp" line="265"/>
<location filename="../src/libsync/theme.cpp" line="270"/>
<source>&lt;p&gt;Version %1. For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt; %1. &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="269"/>
<location filename="../src/libsync/theme.cpp" line="274"/>
<source>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</source>
<translation>&lt;p&gt;Copyright ownCloud, Incorporated&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/libsync/theme.cpp" line="270"/>
<location filename="../src/libsync/theme.cpp" line="275"/>
<source>&lt;p&gt;Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.&lt;/p&gt;</source>
<translation>&lt;p&gt;%1 GNU General Public License (GPL) 2.0 &lt;br/&gt;%2 %2 %1 &lt;/p&gt;</translation>
</message>
</context>
<context>
<name>OCC::TransmissionChecksumValidator</name>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="111"/>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="133"/>
<source>The checksum header is malformed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/transmissionchecksumvalidator.cpp" line="143"/>
<source>The downloaded file does not match the checksum, it will be resumed.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>OCC::ownCloudGui</name>
<message>
@@ -2703,8 +2740,8 @@ It is not advisable to use it.</source>
<translation></translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="109"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="122"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="112"/>
<location filename="../src/gui/wizard/owncloudhttpcredspage.ui" line="125"/>
<source>TextLabel</source>
<translation></translation>
</message>
@@ -2824,27 +2861,27 @@ It is not advisable to use it.</source>
<context>
<name>Utility</name>
<message>
<location filename="../src/libsync/utility.cpp" line="113"/>
<location filename="../src/libsync/utility.cpp" line="114"/>
<source>%L1 TiB</source>
<translation>%L1 TiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="116"/>
<location filename="../src/libsync/utility.cpp" line="117"/>
<source>%L1 GiB</source>
<translation>%L1 GiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="119"/>
<location filename="../src/libsync/utility.cpp" line="120"/>
<source>%L1 MiB</source>
<translation>%L1 MiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="122"/>
<location filename="../src/libsync/utility.cpp" line="123"/>
<source>%L1 KiB</source>
<translation>%L1 KiB</translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="125"/>
<location filename="../src/libsync/utility.cpp" line="126"/>
<source>%L1 B</source>
<translation>%L1 B</translation>
</message>
@@ -2865,7 +2902,7 @@ It is not advisable to use it.</source>
<context>
<name>ownCloudTheme::about()</name>
<message>
<location filename="../src/libsync/theme.cpp" line="251"/>
<location filename="../src/libsync/theme.cpp" line="256"/>
<source>&lt;p&gt;&lt;small&gt;Built from Git revision &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; on %3, %4 using Qt %5, %6&lt;/small&gt;&lt;/p&gt;</source>
<translation type="unfinished"/>
</message>

3047
translations/client_nb_NO.ts Normal file

File diff suppressed because it is too large Load Diff

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