Codebase list seafile-client / 6cbb371
New upstream version 7.0.5 Moritz Schlarb 4 years ago
56 changed file(s) with 1530 addition(s) and 779 deletion(s). Raw diff Collapse all Expand all
22 PROJECT(seafile-client)
33 SET(SEAFILE_CLIENT_VERSION_MAJOR 7)
44 SET(SEAFILE_CLIENT_VERSION_MINOR 0)
5 SET(SEAFILE_CLIENT_VERSION_PATCH 4)
5 SET(SEAFILE_CLIENT_VERSION_PATCH 5)
66 SET(PROJECT_VERSION "${SEAFILE_CLIENT_VERSION_MAJOR}.${SEAFILE_CLIENT_VERSION_MINOR}.${SEAFILE_CLIENT_VERSION_PATCH}")
77 ADD_DEFINITIONS(-DSEAFILE_CLIENT_VERSION=${PROJECT_VERSION})
88 INCLUDE(FindPkgConfig)
1919 ENDIF()
2020
2121 IF (APPLE AND NOT CMAKE_OSX_DEPLOYMENT_TARGET)
22 SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.7")
22 SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
2323 ENDIF()
2424
2525 FIND_PROGRAM(git_executable NAMES git git.exe git.cmd)
824824 SET(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
825825 SET(CMAKE_XCODE_ATTRIBUTE_GCC_ENABLE_PASCAL_STRINGS "NO")
826826 SET(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES")
827 SET(CMAKE_XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "TRUE")
827828 ENDIF()
828829
829830 SET(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION})
1414 <key>CFBundleName</key>
1515 <string>Seafile</string>
1616 <key>CFBundleShortVersionString</key>
17 <string>7.0.4</string>
17 <string>7.0.5</string>
1818 <key>CFBundleVersion</key>
19 <string>7.0.4</string>
19 <string>7.0.5</string>
2020 <key>CFBundleSignature</key>
2121 <string>????</string>
2222 <key>CFBundleURLTypes</key>
382382
383383 // we don't have a lock-file menuitem for folders
384384 // early return
385 if (is_dir)
385 if (is_dir) {
386 NSMenuItem *showUploadLinkByMenuItem =
387 [menu addItemWithTitle:NSLocalizedString(@"Get Seafile Upload Link",
388 @"Get Seafile Upload Link")
389 action:@selector(getUploadLinkAction:)
390 keyEquivalent:@""];
391 [showUploadLinkByMenuItem setImage:seafileImage];
386392 return menu;
393 }
387394
388395 // find where we have it
389396 auto file = file_status_.find(is_dir ? file_path + "/" : file_path);
620627 });
621628 }
622629
630 - (IBAction)getUploadLinkAction:(id)sender {
631 NSArray *items =
632 [[FIFinderSyncController defaultController] selectedItemURLs];
633 if (![items count])
634 return;
635 NSURL *item = items.firstObject;
636
637 // do it in another thread
638 std::string path =
639 item.path.precomposedStringWithCanonicalMapping.UTF8String;
640 dispatch_async(self.client_command_queue_, ^{
641 client_->doSendCommandWithPath(FinderSyncClient::DoGetUploadLink,
642 path.c_str());
643 });
644 }
645
623646 @end
7171 DoUnlockFile = 5,
7272 DoShowFileHistory = 6,
7373 DoShowFileLockedBy = 7,
74 DoGetUploadLink = 8,
7475 };
7576
7677 FinderSyncClient(FinderSync *parent);
1919 rm -rf CMakeCache.txt CMakeFiles
2020 CONFIG=Release
2121 fi
22 cmake -G Xcode -DCMAKE_BUILD_TYPE="$CONFIG"
22 cmake -GXcode -DCMAKE_BUILD_TYPE="$CONFIG"
2323 xcodebuild clean
2424 xcodebuild -jobs "$(sysctl -n hw.ncpu)" -configuration "$CONFIG"
2525 popd
847847 <source>Failed to get link</source>
848848 <translation type="unfinished"/>
849849 </message>
850 <message>
851 <source>Failed to get upload link information for file &quot;%1&quot;</source>
852 <translation type="unfinished"/>
853 </message>
850854 </context>
851855 <context>
852856 <name>FileBrowserProgressDialog</name>
10751079 </message>
10761080 <message>
10771081 <source>Open Local Cache Folder</source>
1082 <translation type="unfinished"/>
1083 </message>
1084 <message>
1085 <source>&amp;Generate %1 Upload Link</source>
1086 <translation type="unfinished"/>
1087 </message>
1088 </context>
1089 <context>
1090 <name>FinderSyncHost</name>
1091 <message>
1092 <source>Failed to get link</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>File &quot;%1&quot; is locked by %2</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 <message>
1100 <source>Failed to get lock information for file &quot;%1&quot;</source>
1101 <translation type="unfinished"/>
1102 </message>
1103 <message>
1104 <source>Failed to get upload link for file &quot;%1&quot;</source>
10781105 <translation type="unfinished"/>
10791106 </message>
10801107 </context>
21292156 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21302157 <translation type="unfinished"/>
21312158 </message>
2159 <message>
2160 <source>failed to open sync error id database</source>
2161 <translation type="unfinished"/>
2162 </message>
21322163 </context>
21332164 <context>
21342165 <name>ReliablePostFileTask</name>
25162547 </message>
25172548 </context>
25182549 <context>
2519 <name>SeafileExtensionHandler</name>
2520 <message>
2521 <source>Failed to get link</source>
2522 <translation type="unfinished"/>
2523 </message>
2524 <message>
2525 <source>Failed to lock file</source>
2526 <translation type="unfinished"/>
2527 </message>
2528 <message>
2529 <source>Failed to unlock file</source>
2530 <translation type="unfinished"/>
2531 </message>
2532 <message>
2533 <source>File &quot;%1&quot; is locked by %2</source>
2534 <translation type="unfinished"/>
2535 </message>
2536 <message>
2537 <source>Failed to get lock information for file &quot;%1&quot;</source>
2538 <translation type="unfinished"/>
2539 </message>
2540 </context>
2541 <context>
25422550 <name>SeafileLinkDialog</name>
25432551 <message>
25442552 <source>%1 Internal Link</source>
30023010 <source>OK</source>
30033011 <translation type="unfinished"/>
30043012 </message>
3013 <message>
3014 <source>Upload Link</source>
3015 <translation type="unfinished"/>
3016 </message>
3017 <message>
3018 <source>Upload link:</source>
3019 <translation type="unfinished"/>
3020 </message>
30053021 </context>
30063022 <context>
30073023 <name>SslConfirmDialog</name>
854854 <source>Failed to get link</source>
855855 <translation type="unfinished"/>
856856 </message>
857 <message>
858 <source>Failed to get upload link information for file &quot;%1&quot;</source>
859 <translation type="unfinished"/>
860 </message>
857861 </context>
858862 <context>
859863 <name>FileBrowserProgressDialog</name>
10821086 </message>
10831087 <message>
10841088 <source>Open Local Cache Folder</source>
1089 <translation type="unfinished"/>
1090 </message>
1091 <message>
1092 <source>&amp;Generate %1 Upload Link</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 </context>
1096 <context>
1097 <name>FinderSyncHost</name>
1098 <message>
1099 <source>Failed to get link</source>
1100 <translation type="unfinished"/>
1101 </message>
1102 <message>
1103 <source>File &quot;%1&quot; is locked by %2</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>Failed to get lock information for file &quot;%1&quot;</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get upload link for file &quot;%1&quot;</source>
10851112 <translation type="unfinished"/>
10861113 </message>
10871114 </context>
21412168 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21422169 <translation type="unfinished"/>
21432170 </message>
2171 <message>
2172 <source>failed to open sync error id database</source>
2173 <translation type="unfinished"/>
2174 </message>
21442175 </context>
21452176 <context>
21462177 <name>ReliablePostFileTask</name>
25302561 </message>
25312562 </context>
25322563 <context>
2533 <name>SeafileExtensionHandler</name>
2534 <message>
2535 <source>Failed to get link</source>
2536 <translation type="unfinished"/>
2537 </message>
2538 <message>
2539 <source>Failed to lock file</source>
2540 <translation type="unfinished"/>
2541 </message>
2542 <message>
2543 <source>Failed to unlock file</source>
2544 <translation type="unfinished"/>
2545 </message>
2546 <message>
2547 <source>File &quot;%1&quot; is locked by %2</source>
2548 <translation type="unfinished"/>
2549 </message>
2550 <message>
2551 <source>Failed to get lock information for file &quot;%1&quot;</source>
2552 <translation type="unfinished"/>
2553 </message>
2554 </context>
2555 <context>
25562564 <name>SeafileLinkDialog</name>
25572565 <message>
25582566 <source>%1 Internal Link</source>
30163024 <source>OK</source>
30173025 <translation>D&apos;acord</translation>
30183026 </message>
3027 <message>
3028 <source>Upload Link</source>
3029 <translation type="unfinished"/>
3030 </message>
3031 <message>
3032 <source>Upload link:</source>
3033 <translation type="unfinished"/>
3034 </message>
30193035 </context>
30203036 <context>
30213037 <name>SslConfirmDialog</name>
858858 <source>Failed to get link</source>
859859 <translation type="unfinished"/>
860860 </message>
861 <message>
862 <source>Failed to get upload link information for file &quot;%1&quot;</source>
863 <translation type="unfinished"/>
864 </message>
861865 </context>
862866 <context>
863867 <name>FileBrowserProgressDialog</name>
10871091 </message>
10881092 <message>
10891093 <source>Open Local Cache Folder</source>
1094 <translation type="unfinished"/>
1095 </message>
1096 <message>
1097 <source>&amp;Generate %1 Upload Link</source>
1098 <translation type="unfinished"/>
1099 </message>
1100 </context>
1101 <context>
1102 <name>FinderSyncHost</name>
1103 <message>
1104 <source>Failed to get link</source>
1105 <translation type="unfinished"/>
1106 </message>
1107 <message>
1108 <source>File &quot;%1&quot; is locked by %2</source>
1109 <translation type="unfinished"/>
1110 </message>
1111 <message>
1112 <source>Failed to get lock information for file &quot;%1&quot;</source>
1113 <translation type="unfinished"/>
1114 </message>
1115 <message>
1116 <source>Failed to get upload link for file &quot;%1&quot;</source>
10901117 <translation type="unfinished"/>
10911118 </message>
10921119 </context>
21502177 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21512178 <translation type="unfinished"/>
21522179 </message>
2180 <message>
2181 <source>failed to open sync error id database</source>
2182 <translation type="unfinished"/>
2183 </message>
21532184 </context>
21542185 <context>
21552186 <name>ReliablePostFileTask</name>
25392570 </message>
25402571 </context>
25412572 <context>
2542 <name>SeafileExtensionHandler</name>
2543 <message>
2544 <source>Failed to get link</source>
2545 <translation type="unfinished"/>
2546 </message>
2547 <message>
2548 <source>Failed to lock file</source>
2549 <translation type="unfinished"/>
2550 </message>
2551 <message>
2552 <source>Failed to unlock file</source>
2553 <translation type="unfinished"/>
2554 </message>
2555 <message>
2556 <source>File &quot;%1&quot; is locked by %2</source>
2557 <translation type="unfinished"/>
2558 </message>
2559 <message>
2560 <source>Failed to get lock information for file &quot;%1&quot;</source>
2561 <translation type="unfinished"/>
2562 </message>
2563 </context>
2564 <context>
25652573 <name>SeafileLinkDialog</name>
25662574 <message>
25672575 <source>%1 Internal Link</source>
25772585 </message>
25782586 <message>
25792587 <source>%1 Internal Link:</source>
2580 <translation type="unfinished"/>
2588 <translation>%1 Interní odkaz:</translation>
25812589 </message>
25822590 <message>
25832591 <source>%1 Desktop Access Link:</source>
30253033 <source>OK</source>
30263034 <translation>OK</translation>
30273035 </message>
3036 <message>
3037 <source>Upload Link</source>
3038 <translation type="unfinished"/>
3039 </message>
3040 <message>
3041 <source>Upload link:</source>
3042 <translation type="unfinished"/>
3043 </message>
30283044 </context>
30293045 <context>
30303046 <name>SslConfirmDialog</name>
856856 <source>Failed to get link</source>
857857 <translation>Fehler beim Ermitteln des Links</translation>
858858 </message>
859 <message>
860 <source>Failed to get upload link information for file &quot;%1&quot;</source>
861 <translation type="unfinished"/>
862 </message>
859863 </context>
860864 <context>
861865 <name>FileBrowserProgressDialog</name>
10861090 <message>
10871091 <source>Open Local Cache Folder</source>
10881092 <translation>Lokalen Zwischenspeicher öffnen</translation>
1093 </message>
1094 <message>
1095 <source>&amp;Generate %1 Upload Link</source>
1096 <translation type="unfinished"/>
1097 </message>
1098 </context>
1099 <context>
1100 <name>FinderSyncHost</name>
1101 <message>
1102 <source>Failed to get link</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>File &quot;%1&quot; is locked by %2</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get lock information for file &quot;%1&quot;</source>
1111 <translation type="unfinished"/>
1112 </message>
1113 <message>
1114 <source>Failed to get upload link for file &quot;%1&quot;</source>
1115 <translation type="unfinished"/>
10891116 </message>
10901117 </context>
10911118 <context>
21552182 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21562183 <translation>Ein Ordner, der noch nicht hochgeladene Dateien enthalten könnte, wurde in den Papierkorb von Seafile verschoben.</translation>
21572184 </message>
2185 <message>
2186 <source>failed to open sync error id database</source>
2187 <translation type="unfinished"/>
2188 </message>
21582189 </context>
21592190 <context>
21602191 <name>ReliablePostFileTask</name>
25442575 </message>
25452576 </context>
25462577 <context>
2547 <name>SeafileExtensionHandler</name>
2548 <message>
2549 <source>Failed to get link</source>
2550 <translation type="unfinished"/>
2551 </message>
2552 <message>
2553 <source>Failed to lock file</source>
2554 <translation type="unfinished"/>
2555 </message>
2556 <message>
2557 <source>Failed to unlock file</source>
2558 <translation type="unfinished"/>
2559 </message>
2560 <message>
2561 <source>File &quot;%1&quot; is locked by %2</source>
2562 <translation type="unfinished"/>
2563 </message>
2564 <message>
2565 <source>Failed to get lock information for file &quot;%1&quot;</source>
2566 <translation type="unfinished"/>
2567 </message>
2568 </context>
2569 <context>
25702578 <name>SeafileLinkDialog</name>
25712579 <message>
25722580 <source>%1 Internal Link</source>
27042712 </message>
27052713 <message>
27062714 <source>have some sync error</source>
2707 <translation type="unfinished"/>
2715 <translation>Fehler beim Synchronisieren</translation>
27082716 </message>
27092717 </context>
27102718 <context>
30303038 <source>OK</source>
30313039 <translation>OK</translation>
30323040 </message>
3041 <message>
3042 <source>Upload Link</source>
3043 <translation type="unfinished"/>
3044 </message>
3045 <message>
3046 <source>Upload link:</source>
3047 <translation type="unfinished"/>
3048 </message>
30333049 </context>
30343050 <context>
30353051 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation type="unfinished"/>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10861090 </message>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
10891116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
21482175 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21492176 <translation type="unfinished"/>
21502177 </message>
2178 <message>
2179 <source>failed to open sync error id database</source>
2180 <translation type="unfinished"/>
2181 </message>
21512182 </context>
21522183 <context>
21532184 <name>ReliablePostFileTask</name>
25372568 </message>
25382569 </context>
25392570 <context>
2540 <name>SeafileExtensionHandler</name>
2541 <message>
2542 <source>Failed to get link</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>Failed to lock file</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to unlock file</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>File &quot;%1&quot; is locked by %2</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to get lock information for file &quot;%1&quot;</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 </context>
2562 <context>
25632571 <name>SeafileLinkDialog</name>
25642572 <message>
25652573 <source>%1 Internal Link</source>
30233031 <source>OK</source>
30243032 <translation>OK</translation>
30253033 </message>
3034 <message>
3035 <source>Upload Link</source>
3036 <translation type="unfinished"/>
3037 </message>
3038 <message>
3039 <source>Upload link:</source>
3040 <translation type="unfinished"/>
3041 </message>
30263042 </context>
30273043 <context>
30283044 <name>SslConfirmDialog</name>
849849 <source>Failed to get link</source>
850850 <translation type="unfinished"></translation>
851851 </message>
852 <message>
853 <source>Failed to get upload link information for file &quot;%1&quot;</source>
854 <translation type="unfinished"></translation>
855 </message>
852856 </context>
853857 <context>
854858 <name>FileBrowserProgressDialog</name>
10771081 </message>
10781082 <message>
10791083 <source>Open Local Cache Folder</source>
1084 <translation type="unfinished"></translation>
1085 </message>
1086 <message>
1087 <source>&amp;Generate %1 Upload Link</source>
1088 <translation type="unfinished"></translation>
1089 </message>
1090 </context>
1091 <context>
1092 <name>FinderSyncHost</name>
1093 <message>
1094 <source>Failed to get link</source>
1095 <translation type="unfinished"></translation>
1096 </message>
1097 <message>
1098 <source>File &quot;%1&quot; is locked by %2</source>
1099 <translation type="unfinished"></translation>
1100 </message>
1101 <message>
1102 <source>Failed to get lock information for file &quot;%1&quot;</source>
1103 <translation type="unfinished"></translation>
1104 </message>
1105 <message>
1106 <source>Failed to get upload link for file &quot;%1&quot;</source>
10801107 <translation type="unfinished"></translation>
10811108 </message>
10821109 </context>
21312158 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21322159 <translation type="unfinished"></translation>
21332160 </message>
2161 <message>
2162 <source>failed to open sync error id database</source>
2163 <translation type="unfinished"></translation>
2164 </message>
21342165 </context>
21352166 <context>
21362167 <name>ReliablePostFileTask</name>
25182549 </message>
25192550 </context>
25202551 <context>
2521 <name>SeafileExtensionHandler</name>
2522 <message>
2523 <source>Failed to get link</source>
2524 <translation type="unfinished"></translation>
2525 </message>
2526 <message>
2527 <source>Failed to lock file</source>
2528 <translation type="unfinished"></translation>
2529 </message>
2530 <message>
2531 <source>Failed to unlock file</source>
2532 <translation type="unfinished"></translation>
2533 </message>
2534 <message>
2535 <source>File &quot;%1&quot; is locked by %2</source>
2536 <translation type="unfinished"></translation>
2537 </message>
2538 <message>
2539 <source>Failed to get lock information for file &quot;%1&quot;</source>
2540 <translation type="unfinished"></translation>
2541 </message>
2542 </context>
2543 <context>
25442552 <name>SeafileLinkDialog</name>
25452553 <message>
25462554 <source>%1 Internal Link</source>
30043012 <source>OK</source>
30053013 <translation type="unfinished"></translation>
30063014 </message>
3015 <message>
3016 <source>Upload Link</source>
3017 <translation type="unfinished"></translation>
3018 </message>
3019 <message>
3020 <source>Upload link:</source>
3021 <translation type="unfinished"></translation>
3022 </message>
30073023 </context>
30083024 <context>
30093025 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation>Fallo al obtener enlace</translation>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Abrir carpeta de caché local</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
21562183 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21572184 <translation>Una carpeta que podría contener archivos todavía no subidos es movida a la carpeta seafile-recycle-bin</translation>
21582185 </message>
2186 <message>
2187 <source>failed to open sync error id database</source>
2188 <translation type="unfinished"/>
2189 </message>
21592190 </context>
21602191 <context>
21612192 <name>ReliablePostFileTask</name>
25452576 </message>
25462577 </context>
25472578 <context>
2548 <name>SeafileExtensionHandler</name>
2549 <message>
2550 <source>Failed to get link</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>Failed to lock file</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to unlock file</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 <message>
2562 <source>File &quot;%1&quot; is locked by %2</source>
2563 <translation type="unfinished"/>
2564 </message>
2565 <message>
2566 <source>Failed to get lock information for file &quot;%1&quot;</source>
2567 <translation type="unfinished"/>
2568 </message>
2569 </context>
2570 <context>
25712579 <name>SeafileLinkDialog</name>
25722580 <message>
25732581 <source>%1 Internal Link</source>
27052713 </message>
27062714 <message>
27072715 <source>have some sync error</source>
2708 <translation type="unfinished"/>
2716 <translation>tiene algún error de sincronización</translation>
27092717 </message>
27102718 </context>
27112719 <context>
30313039 <source>OK</source>
30323040 <translation>OK</translation>
30333041 </message>
3042 <message>
3043 <source>Upload Link</source>
3044 <translation type="unfinished"/>
3045 </message>
3046 <message>
3047 <source>Upload link:</source>
3048 <translation type="unfinished"/>
3049 </message>
30343050 </context>
30353051 <context>
30363052 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation>Fallo al obtener enlace</translation>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Abrir carpeta de caché local</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
21562183 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21572184 <translation>Una carpeta que podría contener archivos todavía no subidos es movida a la carpeta seafile-recycle-bin</translation>
21582185 </message>
2186 <message>
2187 <source>failed to open sync error id database</source>
2188 <translation type="unfinished"/>
2189 </message>
21592190 </context>
21602191 <context>
21612192 <name>ReliablePostFileTask</name>
25452576 </message>
25462577 </context>
25472578 <context>
2548 <name>SeafileExtensionHandler</name>
2549 <message>
2550 <source>Failed to get link</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>Failed to lock file</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to unlock file</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 <message>
2562 <source>File &quot;%1&quot; is locked by %2</source>
2563 <translation type="unfinished"/>
2564 </message>
2565 <message>
2566 <source>Failed to get lock information for file &quot;%1&quot;</source>
2567 <translation type="unfinished"/>
2568 </message>
2569 </context>
2570 <context>
25712579 <name>SeafileLinkDialog</name>
25722580 <message>
25732581 <source>%1 Internal Link</source>
27052713 </message>
27062714 <message>
27072715 <source>have some sync error</source>
2708 <translation type="unfinished"/>
2716 <translation>tiene algún error de sincronización</translation>
27092717 </message>
27102718 </context>
27112719 <context>
30313039 <source>OK</source>
30323040 <translation>OK</translation>
30333041 </message>
3042 <message>
3043 <source>Upload Link</source>
3044 <translation type="unfinished"/>
3045 </message>
3046 <message>
3047 <source>Upload link:</source>
3048 <translation type="unfinished"/>
3049 </message>
30343050 </context>
30353051 <context>
30363052 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation>Fallo al obtener enlace</translation>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Abrir carpeta de caché local</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
21562183 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21572184 <translation>Una carpeta que podría contener archivos todavía no subidos es movida a la carpeta seafile-recycle-bin</translation>
21582185 </message>
2186 <message>
2187 <source>failed to open sync error id database</source>
2188 <translation type="unfinished"/>
2189 </message>
21592190 </context>
21602191 <context>
21612192 <name>ReliablePostFileTask</name>
25452576 </message>
25462577 </context>
25472578 <context>
2548 <name>SeafileExtensionHandler</name>
2549 <message>
2550 <source>Failed to get link</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>Failed to lock file</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to unlock file</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 <message>
2562 <source>File &quot;%1&quot; is locked by %2</source>
2563 <translation type="unfinished"/>
2564 </message>
2565 <message>
2566 <source>Failed to get lock information for file &quot;%1&quot;</source>
2567 <translation type="unfinished"/>
2568 </message>
2569 </context>
2570 <context>
25712579 <name>SeafileLinkDialog</name>
25722580 <message>
25732581 <source>%1 Internal Link</source>
27052713 </message>
27062714 <message>
27072715 <source>have some sync error</source>
2708 <translation type="unfinished"/>
2716 <translation>tiene algún error de sincronización</translation>
27092717 </message>
27102718 </context>
27112719 <context>
30313039 <source>OK</source>
30323040 <translation>OK</translation>
30333041 </message>
3042 <message>
3043 <source>Upload Link</source>
3044 <translation type="unfinished"/>
3045 </message>
3046 <message>
3047 <source>Upload link:</source>
3048 <translation type="unfinished"/>
3049 </message>
30343050 </context>
30353051 <context>
30363052 <name>SslConfirmDialog</name>
847847 <source>Failed to get link</source>
848848 <translation type="unfinished"/>
849849 </message>
850 <message>
851 <source>Failed to get upload link information for file &quot;%1&quot;</source>
852 <translation type="unfinished"/>
853 </message>
850854 </context>
851855 <context>
852856 <name>FileBrowserProgressDialog</name>
10751079 </message>
10761080 <message>
10771081 <source>Open Local Cache Folder</source>
1082 <translation type="unfinished"/>
1083 </message>
1084 <message>
1085 <source>&amp;Generate %1 Upload Link</source>
1086 <translation type="unfinished"/>
1087 </message>
1088 </context>
1089 <context>
1090 <name>FinderSyncHost</name>
1091 <message>
1092 <source>Failed to get link</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>File &quot;%1&quot; is locked by %2</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 <message>
1100 <source>Failed to get lock information for file &quot;%1&quot;</source>
1101 <translation type="unfinished"/>
1102 </message>
1103 <message>
1104 <source>Failed to get upload link for file &quot;%1&quot;</source>
10781105 <translation type="unfinished"/>
10791106 </message>
10801107 </context>
21292156 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21302157 <translation type="unfinished"/>
21312158 </message>
2159 <message>
2160 <source>failed to open sync error id database</source>
2161 <translation type="unfinished"/>
2162 </message>
21322163 </context>
21332164 <context>
21342165 <name>ReliablePostFileTask</name>
25162547 </message>
25172548 </context>
25182549 <context>
2519 <name>SeafileExtensionHandler</name>
2520 <message>
2521 <source>Failed to get link</source>
2522 <translation type="unfinished"/>
2523 </message>
2524 <message>
2525 <source>Failed to lock file</source>
2526 <translation type="unfinished"/>
2527 </message>
2528 <message>
2529 <source>Failed to unlock file</source>
2530 <translation type="unfinished"/>
2531 </message>
2532 <message>
2533 <source>File &quot;%1&quot; is locked by %2</source>
2534 <translation type="unfinished"/>
2535 </message>
2536 <message>
2537 <source>Failed to get lock information for file &quot;%1&quot;</source>
2538 <translation type="unfinished"/>
2539 </message>
2540 </context>
2541 <context>
25422550 <name>SeafileLinkDialog</name>
25432551 <message>
25442552 <source>%1 Internal Link</source>
30023010 <source>OK</source>
30033011 <translation type="unfinished"/>
30043012 </message>
3013 <message>
3014 <source>Upload Link</source>
3015 <translation type="unfinished"/>
3016 </message>
3017 <message>
3018 <source>Upload link:</source>
3019 <translation type="unfinished"/>
3020 </message>
30053021 </context>
30063022 <context>
30073023 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation>Impossible d&apos;obtenir le lien</translation>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Ouvrir le dossier du cache local</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
15271554 </message>
15281555 <message>
15291556 <source>No permission to sync folder %1.</source>
1530 <translation type="unfinished"/>
1557 <translation>Pas de permission pour synchroniser le dossier %1.</translation>
15311558 </message>
15321559 <message>
15331560 <source>Updates in read-only library %1 will not be uploaded.</source>
1534 <translation type="unfinished"/>
1561 <translation>Les mises à jour dans la bibliothèque en lecture seule %1 ne seront pas envoyées.</translation>
15351562 </message>
15361563 <message>
15371564 <source>Concurrent updates to file. File %1 is saved as conflict file</source>
1538 <translation type="unfinished"/>
1565 <translation>Mises à jour simultanées du fichier. Le fichier %1 est enregistré en tant que fichier de conflit.</translation>
15391566 </message>
15401567 <message>
15411568 <source>Folder %1 is moved to seafile-recycle-bin folder since it contains not-yet uploaded files.</source>
1542 <translation type="unfinished"/>
1569 <translation>Le dossier %1 est déplacé dans le dossier seafile-recycle-bin car il contient des fichiers qui n&apos;ont pas encore été chargés.</translation>
15431570 </message>
15441571 <message>
15451572 <source>Folder for library %1 is removed or moved. The library is unsynced.</source>
1546 <translation type="unfinished"/>
1573 <translation>Le dossier de la bibliothèque %1 a été supprimé ou déplacé. La bibliothèque n&apos;est pas synchronisée.</translation>
15471574 </message>
15481575 </context>
15491576 <context>
21412168 </message>
21422169 <message>
21432170 <source>Created or updated a file in a non-writable library or folder</source>
2144 <translation type="unfinished"/>
2171 <translation>Fichier créé ou mis à jour dans une bibliothèque ou un dossier non inscriptible.</translation>
21452172 </message>
21462173 <message>
21472174 <source>Permission denied on server</source>
2148 <translation type="unfinished"/>
2175 <translation>Permission refusée sur le serveur</translation>
21492176 </message>
21502177 <message>
21512178 <source>Concurrent updates to file. File is saved as conflict file</source>
2152 <translation type="unfinished"/>
2179 <translation>Mises à jour simultanées du fichier. Le fichier est sauvegardé en tant que fichier de conflit.</translation>
21532180 </message>
21542181 <message>
21552182 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
2183 <translation>Un dossier qui peut contenir des fichiers qui ne sont pas encore téléchargés est déplacé dans le dossier seafile-recycle-bin.</translation>
2184 </message>
2185 <message>
2186 <source>failed to open sync error id database</source>
21562187 <translation type="unfinished"/>
21572188 </message>
21582189 </context>
25442575 </message>
25452576 </context>
25462577 <context>
2547 <name>SeafileExtensionHandler</name>
2548 <message>
2549 <source>Failed to get link</source>
2550 <translation type="unfinished"/>
2551 </message>
2552 <message>
2553 <source>Failed to lock file</source>
2554 <translation type="unfinished"/>
2555 </message>
2556 <message>
2557 <source>Failed to unlock file</source>
2558 <translation type="unfinished"/>
2559 </message>
2560 <message>
2561 <source>File &quot;%1&quot; is locked by %2</source>
2562 <translation type="unfinished"/>
2563 </message>
2564 <message>
2565 <source>Failed to get lock information for file &quot;%1&quot;</source>
2566 <translation type="unfinished"/>
2567 </message>
2568 </context>
2569 <context>
25702578 <name>SeafileLinkDialog</name>
25712579 <message>
25722580 <source>%1 Internal Link</source>
25862594 </message>
25872595 <message>
25882596 <source>%1 Desktop Access Link:</source>
2589 <translation type="unfinished"/>
2597 <translation>%1 Lien d&apos;accès au bureau :</translation>
25902598 </message>
25912599 </context>
25922600 <context>
27042712 </message>
27052713 <message>
27062714 <source>have some sync error</source>
2707 <translation type="unfinished"/>
2715 <translation>Il y a une erreur de synchromisation</translation>
27082716 </message>
27092717 </context>
27102718 <context>
30303038 <source>OK</source>
30313039 <translation>OK</translation>
30323040 </message>
3041 <message>
3042 <source>Upload Link</source>
3043 <translation type="unfinished"/>
3044 </message>
3045 <message>
3046 <source>Upload link:</source>
3047 <translation type="unfinished"/>
3048 </message>
30333049 </context>
30343050 <context>
30353051 <name>SslConfirmDialog</name>
853853 <source>Failed to get link</source>
854854 <translation type="unfinished"/>
855855 </message>
856 <message>
857 <source>Failed to get upload link information for file &quot;%1&quot;</source>
858 <translation type="unfinished"/>
859 </message>
856860 </context>
857861 <context>
858862 <name>FileBrowserProgressDialog</name>
10811085 </message>
10821086 <message>
10831087 <source>Open Local Cache Folder</source>
1088 <translation type="unfinished"/>
1089 </message>
1090 <message>
1091 <source>&amp;Generate %1 Upload Link</source>
1092 <translation type="unfinished"/>
1093 </message>
1094 </context>
1095 <context>
1096 <name>FinderSyncHost</name>
1097 <message>
1098 <source>Failed to get link</source>
1099 <translation type="unfinished"/>
1100 </message>
1101 <message>
1102 <source>File &quot;%1&quot; is locked by %2</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>Failed to get lock information for file &quot;%1&quot;</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get upload link for file &quot;%1&quot;</source>
10841111 <translation type="unfinished"/>
10851112 </message>
10861113 </context>
21402167 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21412168 <translation type="unfinished"/>
21422169 </message>
2170 <message>
2171 <source>failed to open sync error id database</source>
2172 <translation type="unfinished"/>
2173 </message>
21432174 </context>
21442175 <context>
21452176 <name>ReliablePostFileTask</name>
25292560 </message>
25302561 </context>
25312562 <context>
2532 <name>SeafileExtensionHandler</name>
2533 <message>
2534 <source>Failed to get link</source>
2535 <translation type="unfinished"/>
2536 </message>
2537 <message>
2538 <source>Failed to lock file</source>
2539 <translation type="unfinished"/>
2540 </message>
2541 <message>
2542 <source>Failed to unlock file</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>File &quot;%1&quot; is locked by %2</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to get lock information for file &quot;%1&quot;</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 </context>
2554 <context>
25552563 <name>SeafileLinkDialog</name>
25562564 <message>
25572565 <source>%1 Internal Link</source>
30153023 <source>OK</source>
30163024 <translation type="unfinished"/>
30173025 </message>
3026 <message>
3027 <source>Upload Link</source>
3028 <translation type="unfinished"/>
3029 </message>
3030 <message>
3031 <source>Upload link:</source>
3032 <translation type="unfinished"/>
3033 </message>
30183034 </context>
30193035 <context>
30203036 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation type="unfinished"/>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10861090 </message>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
10891116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
21502177 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21512178 <translation type="unfinished"/>
21522179 </message>
2180 <message>
2181 <source>failed to open sync error id database</source>
2182 <translation type="unfinished"/>
2183 </message>
21532184 </context>
21542185 <context>
21552186 <name>ReliablePostFileTask</name>
25392570 </message>
25402571 </context>
25412572 <context>
2542 <name>SeafileExtensionHandler</name>
2543 <message>
2544 <source>Failed to get link</source>
2545 <translation type="unfinished"/>
2546 </message>
2547 <message>
2548 <source>Failed to lock file</source>
2549 <translation type="unfinished"/>
2550 </message>
2551 <message>
2552 <source>Failed to unlock file</source>
2553 <translation type="unfinished"/>
2554 </message>
2555 <message>
2556 <source>File &quot;%1&quot; is locked by %2</source>
2557 <translation type="unfinished"/>
2558 </message>
2559 <message>
2560 <source>Failed to get lock information for file &quot;%1&quot;</source>
2561 <translation type="unfinished"/>
2562 </message>
2563 </context>
2564 <context>
25652573 <name>SeafileLinkDialog</name>
25662574 <message>
25672575 <source>%1 Internal Link</source>
30253033 <source>OK</source>
30263034 <translation>Rendben</translation>
30273035 </message>
3036 <message>
3037 <source>Upload Link</source>
3038 <translation type="unfinished"/>
3039 </message>
3040 <message>
3041 <source>Upload link:</source>
3042 <translation type="unfinished"/>
3043 </message>
30283044 </context>
30293045 <context>
30303046 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation type="unfinished"/>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10861090 </message>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
10891116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
21482175 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21492176 <translation type="unfinished"/>
21502177 </message>
2178 <message>
2179 <source>failed to open sync error id database</source>
2180 <translation type="unfinished"/>
2181 </message>
21512182 </context>
21522183 <context>
21532184 <name>ReliablePostFileTask</name>
25372568 </message>
25382569 </context>
25392570 <context>
2540 <name>SeafileExtensionHandler</name>
2541 <message>
2542 <source>Failed to get link</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>Failed to lock file</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to unlock file</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>File &quot;%1&quot; is locked by %2</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to get lock information for file &quot;%1&quot;</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 </context>
2562 <context>
25632571 <name>SeafileLinkDialog</name>
25642572 <message>
25652573 <source>%1 Internal Link</source>
30233031 <source>OK</source>
30243032 <translation>Í Lagi</translation>
30253033 </message>
3034 <message>
3035 <source>Upload Link</source>
3036 <translation type="unfinished"/>
3037 </message>
3038 <message>
3039 <source>Upload link:</source>
3040 <translation type="unfinished"/>
3041 </message>
30263042 </context>
30273043 <context>
30283044 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation type="unfinished"/>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Apri la cartella locale della Cache</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
21502177 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21512178 <translation type="unfinished"/>
21522179 </message>
2180 <message>
2181 <source>failed to open sync error id database</source>
2182 <translation type="unfinished"/>
2183 </message>
21532184 </context>
21542185 <context>
21552186 <name>ReliablePostFileTask</name>
25392570 </message>
25402571 </context>
25412572 <context>
2542 <name>SeafileExtensionHandler</name>
2543 <message>
2544 <source>Failed to get link</source>
2545 <translation type="unfinished"/>
2546 </message>
2547 <message>
2548 <source>Failed to lock file</source>
2549 <translation type="unfinished"/>
2550 </message>
2551 <message>
2552 <source>Failed to unlock file</source>
2553 <translation type="unfinished"/>
2554 </message>
2555 <message>
2556 <source>File &quot;%1&quot; is locked by %2</source>
2557 <translation type="unfinished"/>
2558 </message>
2559 <message>
2560 <source>Failed to get lock information for file &quot;%1&quot;</source>
2561 <translation type="unfinished"/>
2562 </message>
2563 </context>
2564 <context>
25652573 <name>SeafileLinkDialog</name>
25662574 <message>
25672575 <source>%1 Internal Link</source>
30253033 <source>OK</source>
30263034 <translation>OK</translation>
30273035 </message>
3036 <message>
3037 <source>Upload Link</source>
3038 <translation type="unfinished"/>
3039 </message>
3040 <message>
3041 <source>Upload link:</source>
3042 <translation type="unfinished"/>
3043 </message>
30283044 </context>
30293045 <context>
30303046 <name>SslConfirmDialog</name>
855855 <source>Failed to get link</source>
856856 <translation type="unfinished"/>
857857 </message>
858 <message>
859 <source>Failed to get upload link information for file &quot;%1&quot;</source>
860 <translation type="unfinished"/>
861 </message>
858862 </context>
859863 <context>
860864 <name>FileBrowserProgressDialog</name>
10861090 <source>Open Local Cache Folder</source>
10871091 <translation type="unfinished"/>
10881092 </message>
1093 <message>
1094 <source>&amp;Generate %1 Upload Link</source>
1095 <translation type="unfinished"/>
1096 </message>
1097 </context>
1098 <context>
1099 <name>FinderSyncHost</name>
1100 <message>
1101 <source>Failed to get link</source>
1102 <translation type="unfinished"/>
1103 </message>
1104 <message>
1105 <source>File &quot;%1&quot; is locked by %2</source>
1106 <translation type="unfinished"/>
1107 </message>
1108 <message>
1109 <source>Failed to get lock information for file &quot;%1&quot;</source>
1110 <translation type="unfinished"/>
1111 </message>
1112 <message>
1113 <source>Failed to get upload link for file &quot;%1&quot;</source>
1114 <translation type="unfinished"/>
1115 </message>
10891116 </context>
10901117 <context>
10911118 <name>GetFileTask</name>
21372164 </message>
21382165 <message>
21392166 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
2167 <translation type="unfinished"/>
2168 </message>
2169 <message>
2170 <source>failed to open sync error id database</source>
21402171 <translation type="unfinished"/>
21412172 </message>
21422173 </context>
25282559 </message>
25292560 </context>
25302561 <context>
2531 <name>SeafileExtensionHandler</name>
2532 <message>
2533 <source>Failed to get link</source>
2534 <translation type="unfinished"/>
2535 </message>
2536 <message>
2537 <source>Failed to lock file</source>
2538 <translation type="unfinished"/>
2539 </message>
2540 <message>
2541 <source>Failed to unlock file</source>
2542 <translation type="unfinished"/>
2543 </message>
2544 <message>
2545 <source>File &quot;%1&quot; is locked by %2</source>
2546 <translation type="unfinished"/>
2547 </message>
2548 <message>
2549 <source>Failed to get lock information for file &quot;%1&quot;</source>
2550 <translation type="unfinished"/>
2551 </message>
2552 </context>
2553 <context>
25542562 <name>SeafileLinkDialog</name>
25552563 <message>
25562564 <source>%1 Internal Link</source>
30143022 <source>OK</source>
30153023 <translation type="unfinished"/>
30163024 </message>
3025 <message>
3026 <source>Upload Link</source>
3027 <translation type="unfinished"/>
3028 </message>
3029 <message>
3030 <source>Upload link:</source>
3031 <translation type="unfinished"/>
3032 </message>
30173033 </context>
30183034 <context>
30193035 <name>SslConfirmDialog</name>
858858 <source>Failed to get link</source>
859859 <translation>링크 가져오기에 실패했습니다</translation>
860860 </message>
861 <message>
862 <source>Failed to get upload link information for file &quot;%1&quot;</source>
863 <translation type="unfinished"/>
864 </message>
861865 </context>
862866 <context>
863867 <name>FileBrowserProgressDialog</name>
10881092 <message>
10891093 <source>Open Local Cache Folder</source>
10901094 <translation>로컬 캐시 폴더 열기</translation>
1095 </message>
1096 <message>
1097 <source>&amp;Generate %1 Upload Link</source>
1098 <translation type="unfinished"/>
1099 </message>
1100 </context>
1101 <context>
1102 <name>FinderSyncHost</name>
1103 <message>
1104 <source>Failed to get link</source>
1105 <translation type="unfinished"/>
1106 </message>
1107 <message>
1108 <source>File &quot;%1&quot; is locked by %2</source>
1109 <translation type="unfinished"/>
1110 </message>
1111 <message>
1112 <source>Failed to get lock information for file &quot;%1&quot;</source>
1113 <translation type="unfinished"/>
1114 </message>
1115 <message>
1116 <source>Failed to get upload link for file &quot;%1&quot;</source>
1117 <translation type="unfinished"/>
10911118 </message>
10921119 </context>
10931120 <context>
21572184 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21582185 <translation type="unfinished"/>
21592186 </message>
2187 <message>
2188 <source>failed to open sync error id database</source>
2189 <translation type="unfinished"/>
2190 </message>
21602191 </context>
21612192 <context>
21622193 <name>ReliablePostFileTask</name>
25462577 </message>
25472578 </context>
25482579 <context>
2549 <name>SeafileExtensionHandler</name>
2550 <message>
2551 <source>Failed to get link</source>
2552 <translation type="unfinished"/>
2553 </message>
2554 <message>
2555 <source>Failed to lock file</source>
2556 <translation type="unfinished"/>
2557 </message>
2558 <message>
2559 <source>Failed to unlock file</source>
2560 <translation type="unfinished"/>
2561 </message>
2562 <message>
2563 <source>File &quot;%1&quot; is locked by %2</source>
2564 <translation type="unfinished"/>
2565 </message>
2566 <message>
2567 <source>Failed to get lock information for file &quot;%1&quot;</source>
2568 <translation type="unfinished"/>
2569 </message>
2570 </context>
2571 <context>
25722580 <name>SeafileLinkDialog</name>
25732581 <message>
25742582 <source>%1 Internal Link</source>
30333041 <source>OK</source>
30343042 <translation>확인</translation>
30353043 </message>
3044 <message>
3045 <source>Upload Link</source>
3046 <translation type="unfinished"/>
3047 </message>
3048 <message>
3049 <source>Upload link:</source>
3050 <translation type="unfinished"/>
3051 </message>
30363052 </context>
30373053 <context>
30383054 <name>SslConfirmDialog</name>
851851 <source>Failed to get link</source>
852852 <translation type="unfinished"/>
853853 </message>
854 <message>
855 <source>Failed to get upload link information for file &quot;%1&quot;</source>
856 <translation type="unfinished"/>
857 </message>
854858 </context>
855859 <context>
856860 <name>FileBrowserProgressDialog</name>
10791083 </message>
10801084 <message>
10811085 <source>Open Local Cache Folder</source>
1086 <translation type="unfinished"/>
1087 </message>
1088 <message>
1089 <source>&amp;Generate %1 Upload Link</source>
1090 <translation type="unfinished"/>
1091 </message>
1092 </context>
1093 <context>
1094 <name>FinderSyncHost</name>
1095 <message>
1096 <source>Failed to get link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 <message>
1100 <source>File &quot;%1&quot; is locked by %2</source>
1101 <translation type="unfinished"/>
1102 </message>
1103 <message>
1104 <source>Failed to get lock information for file &quot;%1&quot;</source>
1105 <translation type="unfinished"/>
1106 </message>
1107 <message>
1108 <source>Failed to get upload link for file &quot;%1&quot;</source>
10821109 <translation type="unfinished"/>
10831110 </message>
10841111 </context>
21342161 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21352162 <translation type="unfinished"/>
21362163 </message>
2164 <message>
2165 <source>failed to open sync error id database</source>
2166 <translation type="unfinished"/>
2167 </message>
21372168 </context>
21382169 <context>
21392170 <name>ReliablePostFileTask</name>
25212552 </message>
25222553 </context>
25232554 <context>
2524 <name>SeafileExtensionHandler</name>
2525 <message>
2526 <source>Failed to get link</source>
2527 <translation type="unfinished"/>
2528 </message>
2529 <message>
2530 <source>Failed to lock file</source>
2531 <translation type="unfinished"/>
2532 </message>
2533 <message>
2534 <source>Failed to unlock file</source>
2535 <translation type="unfinished"/>
2536 </message>
2537 <message>
2538 <source>File &quot;%1&quot; is locked by %2</source>
2539 <translation type="unfinished"/>
2540 </message>
2541 <message>
2542 <source>Failed to get lock information for file &quot;%1&quot;</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 </context>
2546 <context>
25472555 <name>SeafileLinkDialog</name>
25482556 <message>
25492557 <source>%1 Internal Link</source>
30073015 <source>OK</source>
30083016 <translation>Labi</translation>
30093017 </message>
3018 <message>
3019 <source>Upload Link</source>
3020 <translation type="unfinished"/>
3021 </message>
3022 <message>
3023 <source>Upload link:</source>
3024 <translation type="unfinished"/>
3025 </message>
30103026 </context>
30113027 <context>
30123028 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation type="unfinished"/>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10861090 </message>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
10891116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
21482175 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21492176 <translation type="unfinished"/>
21502177 </message>
2178 <message>
2179 <source>failed to open sync error id database</source>
2180 <translation type="unfinished"/>
2181 </message>
21512182 </context>
21522183 <context>
21532184 <name>ReliablePostFileTask</name>
25372568 </message>
25382569 </context>
25392570 <context>
2540 <name>SeafileExtensionHandler</name>
2541 <message>
2542 <source>Failed to get link</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>Failed to lock file</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to unlock file</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>File &quot;%1&quot; is locked by %2</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to get lock information for file &quot;%1&quot;</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 </context>
2562 <context>
25632571 <name>SeafileLinkDialog</name>
25642572 <message>
25652573 <source>%1 Internal Link</source>
30233031 <source>OK</source>
30243032 <translation type="unfinished"/>
30253033 </message>
3034 <message>
3035 <source>Upload Link</source>
3036 <translation type="unfinished"/>
3037 </message>
3038 <message>
3039 <source>Upload link:</source>
3040 <translation type="unfinished"/>
3041 </message>
30263042 </context>
30273043 <context>
30283044 <name>SslConfirmDialog</name>
855855 <source>Failed to get link</source>
856856 <translation type="unfinished"/>
857857 </message>
858 <message>
859 <source>Failed to get upload link information for file &quot;%1&quot;</source>
860 <translation type="unfinished"/>
861 </message>
858862 </context>
859863 <context>
860864 <name>FileBrowserProgressDialog</name>
10831087 </message>
10841088 <message>
10851089 <source>Open Local Cache Folder</source>
1090 <translation type="unfinished"/>
1091 </message>
1092 <message>
1093 <source>&amp;Generate %1 Upload Link</source>
1094 <translation type="unfinished"/>
1095 </message>
1096 </context>
1097 <context>
1098 <name>FinderSyncHost</name>
1099 <message>
1100 <source>Failed to get link</source>
1101 <translation type="unfinished"/>
1102 </message>
1103 <message>
1104 <source>File &quot;%1&quot; is locked by %2</source>
1105 <translation type="unfinished"/>
1106 </message>
1107 <message>
1108 <source>Failed to get lock information for file &quot;%1&quot;</source>
1109 <translation type="unfinished"/>
1110 </message>
1111 <message>
1112 <source>Failed to get upload link for file &quot;%1&quot;</source>
10861113 <translation type="unfinished"/>
10871114 </message>
10881115 </context>
21452172 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21462173 <translation type="unfinished"/>
21472174 </message>
2175 <message>
2176 <source>failed to open sync error id database</source>
2177 <translation type="unfinished"/>
2178 </message>
21482179 </context>
21492180 <context>
21502181 <name>ReliablePostFileTask</name>
25342565 </message>
25352566 </context>
25362567 <context>
2537 <name>SeafileExtensionHandler</name>
2538 <message>
2539 <source>Failed to get link</source>
2540 <translation type="unfinished"/>
2541 </message>
2542 <message>
2543 <source>Failed to lock file</source>
2544 <translation type="unfinished"/>
2545 </message>
2546 <message>
2547 <source>Failed to unlock file</source>
2548 <translation type="unfinished"/>
2549 </message>
2550 <message>
2551 <source>File &quot;%1&quot; is locked by %2</source>
2552 <translation type="unfinished"/>
2553 </message>
2554 <message>
2555 <source>Failed to get lock information for file &quot;%1&quot;</source>
2556 <translation type="unfinished"/>
2557 </message>
2558 </context>
2559 <context>
25602568 <name>SeafileLinkDialog</name>
25612569 <message>
25622570 <source>%1 Internal Link</source>
30203028 <source>OK</source>
30213029 <translation type="unfinished"/>
30223030 </message>
3031 <message>
3032 <source>Upload Link</source>
3033 <translation type="unfinished"/>
3034 </message>
3035 <message>
3036 <source>Upload link:</source>
3037 <translation type="unfinished"/>
3038 </message>
30233039 </context>
30243040 <context>
30253041 <name>SslConfirmDialog</name>
856856 <source>Failed to get link</source>
857857 <translation type="unfinished"/>
858858 </message>
859 <message>
860 <source>Failed to get upload link information for file &quot;%1&quot;</source>
861 <translation type="unfinished"/>
862 </message>
859863 </context>
860864 <context>
861865 <name>FileBrowserProgressDialog</name>
10851089 </message>
10861090 <message>
10871091 <source>Open Local Cache Folder</source>
1092 <translation type="unfinished"/>
1093 </message>
1094 <message>
1095 <source>&amp;Generate %1 Upload Link</source>
1096 <translation type="unfinished"/>
1097 </message>
1098 </context>
1099 <context>
1100 <name>FinderSyncHost</name>
1101 <message>
1102 <source>Failed to get link</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>File &quot;%1&quot; is locked by %2</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get lock information for file &quot;%1&quot;</source>
1111 <translation type="unfinished"/>
1112 </message>
1113 <message>
1114 <source>Failed to get upload link for file &quot;%1&quot;</source>
10881115 <translation type="unfinished"/>
10891116 </message>
10901117 </context>
21472174 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21482175 <translation type="unfinished"/>
21492176 </message>
2177 <message>
2178 <source>failed to open sync error id database</source>
2179 <translation type="unfinished"/>
2180 </message>
21502181 </context>
21512182 <context>
21522183 <name>ReliablePostFileTask</name>
25362567 </message>
25372568 </context>
25382569 <context>
2539 <name>SeafileExtensionHandler</name>
2540 <message>
2541 <source>Failed to get link</source>
2542 <translation type="unfinished"/>
2543 </message>
2544 <message>
2545 <source>Failed to lock file</source>
2546 <translation type="unfinished"/>
2547 </message>
2548 <message>
2549 <source>Failed to unlock file</source>
2550 <translation type="unfinished"/>
2551 </message>
2552 <message>
2553 <source>File &quot;%1&quot; is locked by %2</source>
2554 <translation type="unfinished"/>
2555 </message>
2556 <message>
2557 <source>Failed to get lock information for file &quot;%1&quot;</source>
2558 <translation type="unfinished"/>
2559 </message>
2560 </context>
2561 <context>
25622570 <name>SeafileLinkDialog</name>
25632571 <message>
25642572 <source>%1 Internal Link</source>
30233031 <source>OK</source>
30243032 <translation>Ok</translation>
30253033 </message>
3034 <message>
3035 <source>Upload Link</source>
3036 <translation type="unfinished"/>
3037 </message>
3038 <message>
3039 <source>Upload link:</source>
3040 <translation type="unfinished"/>
3041 </message>
30263042 </context>
30273043 <context>
30283044 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation>Nie udało się pobrać łącza</translation>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Otwórz lokalny folder pamięci podręcznej</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
21562183 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21572184 <translation type="unfinished"/>
21582185 </message>
2186 <message>
2187 <source>failed to open sync error id database</source>
2188 <translation type="unfinished"/>
2189 </message>
21592190 </context>
21602191 <context>
21612192 <name>ReliablePostFileTask</name>
25452576 </message>
25462577 </context>
25472578 <context>
2548 <name>SeafileExtensionHandler</name>
2549 <message>
2550 <source>Failed to get link</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>Failed to lock file</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to unlock file</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 <message>
2562 <source>File &quot;%1&quot; is locked by %2</source>
2563 <translation type="unfinished"/>
2564 </message>
2565 <message>
2566 <source>Failed to get lock information for file &quot;%1&quot;</source>
2567 <translation type="unfinished"/>
2568 </message>
2569 </context>
2570 <context>
25712579 <name>SeafileLinkDialog</name>
25722580 <message>
25732581 <source>%1 Internal Link</source>
30313039 <source>OK</source>
30323040 <translation>OK</translation>
30333041 </message>
3042 <message>
3043 <source>Upload Link</source>
3044 <translation type="unfinished"/>
3045 </message>
3046 <message>
3047 <source>Upload link:</source>
3048 <translation type="unfinished"/>
3049 </message>
30343050 </context>
30353051 <context>
30363052 <name>SslConfirmDialog</name>
856856 <source>Failed to get link</source>
857857 <translation type="unfinished"/>
858858 </message>
859 <message>
860 <source>Failed to get upload link information for file &quot;%1&quot;</source>
861 <translation type="unfinished"/>
862 </message>
859863 </context>
860864 <context>
861865 <name>FileBrowserProgressDialog</name>
10851089 </message>
10861090 <message>
10871091 <source>Open Local Cache Folder</source>
1092 <translation type="unfinished"/>
1093 </message>
1094 <message>
1095 <source>&amp;Generate %1 Upload Link</source>
1096 <translation type="unfinished"/>
1097 </message>
1098 </context>
1099 <context>
1100 <name>FinderSyncHost</name>
1101 <message>
1102 <source>Failed to get link</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>File &quot;%1&quot; is locked by %2</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get lock information for file &quot;%1&quot;</source>
1111 <translation type="unfinished"/>
1112 </message>
1113 <message>
1114 <source>Failed to get upload link for file &quot;%1&quot;</source>
10881115 <translation type="unfinished"/>
10891116 </message>
10901117 </context>
21472174 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21482175 <translation type="unfinished"/>
21492176 </message>
2177 <message>
2178 <source>failed to open sync error id database</source>
2179 <translation type="unfinished"/>
2180 </message>
21502181 </context>
21512182 <context>
21522183 <name>ReliablePostFileTask</name>
25362567 </message>
25372568 </context>
25382569 <context>
2539 <name>SeafileExtensionHandler</name>
2540 <message>
2541 <source>Failed to get link</source>
2542 <translation type="unfinished"/>
2543 </message>
2544 <message>
2545 <source>Failed to lock file</source>
2546 <translation type="unfinished"/>
2547 </message>
2548 <message>
2549 <source>Failed to unlock file</source>
2550 <translation type="unfinished"/>
2551 </message>
2552 <message>
2553 <source>File &quot;%1&quot; is locked by %2</source>
2554 <translation type="unfinished"/>
2555 </message>
2556 <message>
2557 <source>Failed to get lock information for file &quot;%1&quot;</source>
2558 <translation type="unfinished"/>
2559 </message>
2560 </context>
2561 <context>
25622570 <name>SeafileLinkDialog</name>
25632571 <message>
25642572 <source>%1 Internal Link</source>
30233031 <source>OK</source>
30243032 <translation>OK</translation>
30253033 </message>
3034 <message>
3035 <source>Upload Link</source>
3036 <translation type="unfinished"/>
3037 </message>
3038 <message>
3039 <source>Upload link:</source>
3040 <translation type="unfinished"/>
3041 </message>
30263042 </context>
30273043 <context>
30283044 <name>SslConfirmDialog</name>
853853 <source>Failed to get link</source>
854854 <translation type="unfinished"/>
855855 </message>
856 <message>
857 <source>Failed to get upload link information for file &quot;%1&quot;</source>
858 <translation type="unfinished"/>
859 </message>
856860 </context>
857861 <context>
858862 <name>FileBrowserProgressDialog</name>
10811085 </message>
10821086 <message>
10831087 <source>Open Local Cache Folder</source>
1088 <translation type="unfinished"/>
1089 </message>
1090 <message>
1091 <source>&amp;Generate %1 Upload Link</source>
1092 <translation type="unfinished"/>
1093 </message>
1094 </context>
1095 <context>
1096 <name>FinderSyncHost</name>
1097 <message>
1098 <source>Failed to get link</source>
1099 <translation type="unfinished"/>
1100 </message>
1101 <message>
1102 <source>File &quot;%1&quot; is locked by %2</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>Failed to get lock information for file &quot;%1&quot;</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get upload link for file &quot;%1&quot;</source>
10841111 <translation type="unfinished"/>
10851112 </message>
10861113 </context>
21402167 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21412168 <translation type="unfinished"/>
21422169 </message>
2170 <message>
2171 <source>failed to open sync error id database</source>
2172 <translation type="unfinished"/>
2173 </message>
21432174 </context>
21442175 <context>
21452176 <name>ReliablePostFileTask</name>
25292560 </message>
25302561 </context>
25312562 <context>
2532 <name>SeafileExtensionHandler</name>
2533 <message>
2534 <source>Failed to get link</source>
2535 <translation type="unfinished"/>
2536 </message>
2537 <message>
2538 <source>Failed to lock file</source>
2539 <translation type="unfinished"/>
2540 </message>
2541 <message>
2542 <source>Failed to unlock file</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>File &quot;%1&quot; is locked by %2</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to get lock information for file &quot;%1&quot;</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 </context>
2554 <context>
25552563 <name>SeafileLinkDialog</name>
25562564 <message>
25572565 <source>%1 Internal Link</source>
30153023 <source>OK</source>
30163024 <translation type="unfinished"/>
30173025 </message>
3026 <message>
3027 <source>Upload Link</source>
3028 <translation type="unfinished"/>
3029 </message>
3030 <message>
3031 <source>Upload link:</source>
3032 <translation type="unfinished"/>
3033 </message>
30183034 </context>
30193035 <context>
30203036 <name>SslConfirmDialog</name>
857857 <source>Failed to get link</source>
858858 <translation>Не удалось получить ссылку</translation>
859859 </message>
860 <message>
861 <source>Failed to get upload link information for file &quot;%1&quot;</source>
862 <translation type="unfinished"/>
863 </message>
860864 </context>
861865 <context>
862866 <name>FileBrowserProgressDialog</name>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
10891093 <translation>Открыть локальную папку кэша</translation>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
1116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
10921119 <context>
21562183 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21572184 <translation>Папка, которая может содержать еще не загруженные файлы, перемещена в папку seafile-recycle-bin.</translation>
21582185 </message>
2186 <message>
2187 <source>failed to open sync error id database</source>
2188 <translation type="unfinished"/>
2189 </message>
21592190 </context>
21602191 <context>
21612192 <name>ReliablePostFileTask</name>
25432574 </message>
25442575 </context>
25452576 <context>
2546 <name>SeafileExtensionHandler</name>
2547 <message>
2548 <source>Failed to get link</source>
2549 <translation type="unfinished"/>
2550 </message>
2551 <message>
2552 <source>Failed to lock file</source>
2553 <translation type="unfinished"/>
2554 </message>
2555 <message>
2556 <source>Failed to unlock file</source>
2557 <translation type="unfinished"/>
2558 </message>
2559 <message>
2560 <source>File &quot;%1&quot; is locked by %2</source>
2561 <translation type="unfinished"/>
2562 </message>
2563 <message>
2564 <source>Failed to get lock information for file &quot;%1&quot;</source>
2565 <translation type="unfinished"/>
2566 </message>
2567 </context>
2568 <context>
25692577 <name>SeafileLinkDialog</name>
25702578 <message>
25712579 <source>%1 Internal Link</source>
27032711 </message>
27042712 <message>
27052713 <source>have some sync error</source>
2706 <translation type="unfinished"/>
2714 <translation>есть некоторые ошибки при синхронизации</translation>
27072715 </message>
27082716 </context>
27092717 <context>
30293037 <source>OK</source>
30303038 <translation>ОК</translation>
30313039 </message>
3040 <message>
3041 <source>Upload Link</source>
3042 <translation type="unfinished"/>
3043 </message>
3044 <message>
3045 <source>Upload link:</source>
3046 <translation type="unfinished"/>
3047 </message>
30323048 </context>
30333049 <context>
30343050 <name>SslConfirmDialog</name>
853853 <source>Failed to get link</source>
854854 <translation type="unfinished"/>
855855 </message>
856 <message>
857 <source>Failed to get upload link information for file &quot;%1&quot;</source>
858 <translation type="unfinished"/>
859 </message>
856860 </context>
857861 <context>
858862 <name>FileBrowserProgressDialog</name>
10811085 </message>
10821086 <message>
10831087 <source>Open Local Cache Folder</source>
1088 <translation type="unfinished"/>
1089 </message>
1090 <message>
1091 <source>&amp;Generate %1 Upload Link</source>
1092 <translation type="unfinished"/>
1093 </message>
1094 </context>
1095 <context>
1096 <name>FinderSyncHost</name>
1097 <message>
1098 <source>Failed to get link</source>
1099 <translation type="unfinished"/>
1100 </message>
1101 <message>
1102 <source>File &quot;%1&quot; is locked by %2</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>Failed to get lock information for file &quot;%1&quot;</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get upload link for file &quot;%1&quot;</source>
10841111 <translation type="unfinished"/>
10851112 </message>
10861113 </context>
21402167 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21412168 <translation type="unfinished"/>
21422169 </message>
2170 <message>
2171 <source>failed to open sync error id database</source>
2172 <translation type="unfinished"/>
2173 </message>
21432174 </context>
21442175 <context>
21452176 <name>ReliablePostFileTask</name>
25292560 </message>
25302561 </context>
25312562 <context>
2532 <name>SeafileExtensionHandler</name>
2533 <message>
2534 <source>Failed to get link</source>
2535 <translation type="unfinished"/>
2536 </message>
2537 <message>
2538 <source>Failed to lock file</source>
2539 <translation type="unfinished"/>
2540 </message>
2541 <message>
2542 <source>Failed to unlock file</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>File &quot;%1&quot; is locked by %2</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to get lock information for file &quot;%1&quot;</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 </context>
2554 <context>
25552563 <name>SeafileLinkDialog</name>
25562564 <message>
25572565 <source>%1 Internal Link</source>
30153023 <source>OK</source>
30163024 <translation type="unfinished"/>
30173025 </message>
3026 <message>
3027 <source>Upload Link</source>
3028 <translation type="unfinished"/>
3029 </message>
3030 <message>
3031 <source>Upload link:</source>
3032 <translation type="unfinished"/>
3033 </message>
30183034 </context>
30193035 <context>
30203036 <name>SslConfirmDialog</name>
847847 <source>Failed to get link</source>
848848 <translation type="unfinished"/>
849849 </message>
850 <message>
851 <source>Failed to get upload link information for file &quot;%1&quot;</source>
852 <translation type="unfinished"/>
853 </message>
850854 </context>
851855 <context>
852856 <name>FileBrowserProgressDialog</name>
10751079 </message>
10761080 <message>
10771081 <source>Open Local Cache Folder</source>
1082 <translation type="unfinished"/>
1083 </message>
1084 <message>
1085 <source>&amp;Generate %1 Upload Link</source>
1086 <translation type="unfinished"/>
1087 </message>
1088 </context>
1089 <context>
1090 <name>FinderSyncHost</name>
1091 <message>
1092 <source>Failed to get link</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>File &quot;%1&quot; is locked by %2</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 <message>
1100 <source>Failed to get lock information for file &quot;%1&quot;</source>
1101 <translation type="unfinished"/>
1102 </message>
1103 <message>
1104 <source>Failed to get upload link for file &quot;%1&quot;</source>
10781105 <translation type="unfinished"/>
10791106 </message>
10801107 </context>
21292156 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21302157 <translation type="unfinished"/>
21312158 </message>
2159 <message>
2160 <source>failed to open sync error id database</source>
2161 <translation type="unfinished"/>
2162 </message>
21322163 </context>
21332164 <context>
21342165 <name>ReliablePostFileTask</name>
25162547 </message>
25172548 </context>
25182549 <context>
2519 <name>SeafileExtensionHandler</name>
2520 <message>
2521 <source>Failed to get link</source>
2522 <translation type="unfinished"/>
2523 </message>
2524 <message>
2525 <source>Failed to lock file</source>
2526 <translation type="unfinished"/>
2527 </message>
2528 <message>
2529 <source>Failed to unlock file</source>
2530 <translation type="unfinished"/>
2531 </message>
2532 <message>
2533 <source>File &quot;%1&quot; is locked by %2</source>
2534 <translation type="unfinished"/>
2535 </message>
2536 <message>
2537 <source>Failed to get lock information for file &quot;%1&quot;</source>
2538 <translation type="unfinished"/>
2539 </message>
2540 </context>
2541 <context>
25422550 <name>SeafileLinkDialog</name>
25432551 <message>
25442552 <source>%1 Internal Link</source>
30003008 </message>
30013009 <message>
30023010 <source>OK</source>
3011 <translation type="unfinished"/>
3012 </message>
3013 <message>
3014 <source>Upload Link</source>
3015 <translation type="unfinished"/>
3016 </message>
3017 <message>
3018 <source>Upload link:</source>
30033019 <translation type="unfinished"/>
30043020 </message>
30053021 </context>
858858 <source>Failed to get link</source>
859859 <translation type="unfinished"/>
860860 </message>
861 <message>
862 <source>Failed to get upload link information for file &quot;%1&quot;</source>
863 <translation type="unfinished"/>
864 </message>
861865 </context>
862866 <context>
863867 <name>FileBrowserProgressDialog</name>
10861090 </message>
10871091 <message>
10881092 <source>Open Local Cache Folder</source>
1093 <translation type="unfinished"/>
1094 </message>
1095 <message>
1096 <source>&amp;Generate %1 Upload Link</source>
1097 <translation type="unfinished"/>
1098 </message>
1099 </context>
1100 <context>
1101 <name>FinderSyncHost</name>
1102 <message>
1103 <source>Failed to get link</source>
1104 <translation type="unfinished"/>
1105 </message>
1106 <message>
1107 <source>File &quot;%1&quot; is locked by %2</source>
1108 <translation type="unfinished"/>
1109 </message>
1110 <message>
1111 <source>Failed to get lock information for file &quot;%1&quot;</source>
1112 <translation type="unfinished"/>
1113 </message>
1114 <message>
1115 <source>Failed to get upload link for file &quot;%1&quot;</source>
10891116 <translation type="unfinished"/>
10901117 </message>
10911118 </context>
21482175 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21492176 <translation type="unfinished"/>
21502177 </message>
2178 <message>
2179 <source>failed to open sync error id database</source>
2180 <translation type="unfinished"/>
2181 </message>
21512182 </context>
21522183 <context>
21532184 <name>ReliablePostFileTask</name>
25372568 </message>
25382569 </context>
25392570 <context>
2540 <name>SeafileExtensionHandler</name>
2541 <message>
2542 <source>Failed to get link</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>Failed to lock file</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to unlock file</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 <message>
2554 <source>File &quot;%1&quot; is locked by %2</source>
2555 <translation type="unfinished"/>
2556 </message>
2557 <message>
2558 <source>Failed to get lock information for file &quot;%1&quot;</source>
2559 <translation type="unfinished"/>
2560 </message>
2561 </context>
2562 <context>
25632571 <name>SeafileLinkDialog</name>
25642572 <message>
25652573 <source>%1 Internal Link</source>
30233031 <source>OK</source>
30243032 <translation>Tamam</translation>
30253033 </message>
3034 <message>
3035 <source>Upload Link</source>
3036 <translation type="unfinished"/>
3037 </message>
3038 <message>
3039 <source>Upload link:</source>
3040 <translation type="unfinished"/>
3041 </message>
30263042 </context>
30273043 <context>
30283044 <name>SslConfirmDialog</name>
853853 <source>Failed to get link</source>
854854 <translation type="unfinished"/>
855855 </message>
856 <message>
857 <source>Failed to get upload link information for file &quot;%1&quot;</source>
858 <translation type="unfinished"/>
859 </message>
856860 </context>
857861 <context>
858862 <name>FileBrowserProgressDialog</name>
10811085 </message>
10821086 <message>
10831087 <source>Open Local Cache Folder</source>
1088 <translation type="unfinished"/>
1089 </message>
1090 <message>
1091 <source>&amp;Generate %1 Upload Link</source>
1092 <translation type="unfinished"/>
1093 </message>
1094 </context>
1095 <context>
1096 <name>FinderSyncHost</name>
1097 <message>
1098 <source>Failed to get link</source>
1099 <translation type="unfinished"/>
1100 </message>
1101 <message>
1102 <source>File &quot;%1&quot; is locked by %2</source>
1103 <translation type="unfinished"/>
1104 </message>
1105 <message>
1106 <source>Failed to get lock information for file &quot;%1&quot;</source>
1107 <translation type="unfinished"/>
1108 </message>
1109 <message>
1110 <source>Failed to get upload link for file &quot;%1&quot;</source>
10841111 <translation type="unfinished"/>
10851112 </message>
10861113 </context>
21402167 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21412168 <translation type="unfinished"/>
21422169 </message>
2170 <message>
2171 <source>failed to open sync error id database</source>
2172 <translation type="unfinished"/>
2173 </message>
21432174 </context>
21442175 <context>
21452176 <name>ReliablePostFileTask</name>
25292560 </message>
25302561 </context>
25312562 <context>
2532 <name>SeafileExtensionHandler</name>
2533 <message>
2534 <source>Failed to get link</source>
2535 <translation type="unfinished"/>
2536 </message>
2537 <message>
2538 <source>Failed to lock file</source>
2539 <translation type="unfinished"/>
2540 </message>
2541 <message>
2542 <source>Failed to unlock file</source>
2543 <translation type="unfinished"/>
2544 </message>
2545 <message>
2546 <source>File &quot;%1&quot; is locked by %2</source>
2547 <translation type="unfinished"/>
2548 </message>
2549 <message>
2550 <source>Failed to get lock information for file &quot;%1&quot;</source>
2551 <translation type="unfinished"/>
2552 </message>
2553 </context>
2554 <context>
25552563 <name>SeafileLinkDialog</name>
25562564 <message>
25572565 <source>%1 Internal Link</source>
30153023 <source>OK</source>
30163024 <translation type="unfinished"/>
30173025 </message>
3026 <message>
3027 <source>Upload Link</source>
3028 <translation type="unfinished"/>
3029 </message>
3030 <message>
3031 <source>Upload link:</source>
3032 <translation type="unfinished"/>
3033 </message>
30183034 </context>
30193035 <context>
30203036 <name>SslConfirmDialog</name>
852852 <source>Failed to get link</source>
853853 <translation>获取链接失败</translation>
854854 </message>
855 <message>
856 <source>Failed to get upload link information for file &quot;%1&quot;</source>
857 <translation>无法获取文件 &quot;%1&quot; 的上传链接</translation>
858 </message>
855859 </context>
856860 <context>
857861 <name>FileBrowserProgressDialog</name>
10811085 <message>
10821086 <source>Open Local Cache Folder</source>
10831087 <translation>打开本地缓存目录</translation>
1088 </message>
1089 <message>
1090 <source>&amp;Generate %1 Upload Link</source>
1091 <translation>&amp;获取 %1 上传链接</translation>
1092 </message>
1093 </context>
1094 <context>
1095 <name>FinderSyncHost</name>
1096 <message>
1097 <source>Failed to get link</source>
1098 <translation>获取链接失败</translation>
1099 </message>
1100 <message>
1101 <source>File &quot;%1&quot; is locked by %2</source>
1102 <translation>文件 &quot;%1&quot; 被 %2 锁定</translation>
1103 </message>
1104 <message>
1105 <source>Failed to get lock information for file &quot;%1&quot;</source>
1106 <translation>获取文件 &quot;%1&quot; 的锁定信息失败</translation>
1107 </message>
1108 <message>
1109 <source>Failed to get upload link for file &quot;%1&quot;</source>
1110 <translation>获取文件 &quot;%1&quot; 的上传链接失败</translation>
10841111 </message>
10851112 </context>
10861113 <context>
21482175 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21492176 <translation>一个文件夹中包含未上传的文件,文件夹被移动到 seafile-recycle-bin 文件夹。</translation>
21502177 </message>
2178 <message>
2179 <source>failed to open sync error id database</source>
2180 <translation>获取同步错误标识数据库失败</translation>
2181 </message>
21512182 </context>
21522183 <context>
21532184 <name>ReliablePostFileTask</name>
25352566 </message>
25362567 </context>
25372568 <context>
2538 <name>SeafileExtensionHandler</name>
2539 <message>
2540 <source>Failed to get link</source>
2541 <translation>获取链接失败</translation>
2542 </message>
2543 <message>
2544 <source>Failed to lock file</source>
2545 <translation>锁定文件失败</translation>
2546 </message>
2547 <message>
2548 <source>Failed to unlock file</source>
2549 <translation>解锁文件失败</translation>
2550 </message>
2551 <message>
2552 <source>File &quot;%1&quot; is locked by %2</source>
2553 <translation>文件 %1 被 %2 锁定</translation>
2554 </message>
2555 <message>
2556 <source>Failed to get lock information for file &quot;%1&quot;</source>
2557 <translation>获得文件 %1 的锁定信息失败</translation>
2558 </message>
2559 </context>
2560 <context>
25612569 <name>SeafileLinkDialog</name>
25622570 <message>
25632571 <source>%1 Internal Link</source>
30213029 <source>OK</source>
30223030 <translation>确认</translation>
30233031 </message>
3032 <message>
3033 <source>Upload Link</source>
3034 <translation>上传链接</translation>
3035 </message>
3036 <message>
3037 <source>Upload link:</source>
3038 <translation>上传链接:</translation>
3039 </message>
30243040 </context>
30253041 <context>
30263042 <name>SslConfirmDialog</name>
859859 <source>Failed to get link</source>
860860 <translation type="unfinished"/>
861861 </message>
862 <message>
863 <source>Failed to get upload link information for file &quot;%1&quot;</source>
864 <translation type="unfinished"/>
865 </message>
862866 </context>
863867 <context>
864868 <name>FileBrowserProgressDialog</name>
10871091 </message>
10881092 <message>
10891093 <source>Open Local Cache Folder</source>
1094 <translation type="unfinished"/>
1095 </message>
1096 <message>
1097 <source>&amp;Generate %1 Upload Link</source>
1098 <translation type="unfinished"/>
1099 </message>
1100 </context>
1101 <context>
1102 <name>FinderSyncHost</name>
1103 <message>
1104 <source>Failed to get link</source>
1105 <translation type="unfinished"/>
1106 </message>
1107 <message>
1108 <source>File &quot;%1&quot; is locked by %2</source>
1109 <translation type="unfinished"/>
1110 </message>
1111 <message>
1112 <source>Failed to get lock information for file &quot;%1&quot;</source>
1113 <translation type="unfinished"/>
1114 </message>
1115 <message>
1116 <source>Failed to get upload link for file &quot;%1&quot;</source>
10901117 <translation type="unfinished"/>
10911118 </message>
10921119 </context>
21492176 <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source>
21502177 <translation type="unfinished"/>
21512178 </message>
2179 <message>
2180 <source>failed to open sync error id database</source>
2181 <translation type="unfinished"/>
2182 </message>
21522183 </context>
21532184 <context>
21542185 <name>ReliablePostFileTask</name>
25392570 </message>
25402571 </context>
25412572 <context>
2542 <name>SeafileExtensionHandler</name>
2543 <message>
2544 <source>Failed to get link</source>
2545 <translation type="unfinished"/>
2546 </message>
2547 <message>
2548 <source>Failed to lock file</source>
2549 <translation type="unfinished"/>
2550 </message>
2551 <message>
2552 <source>Failed to unlock file</source>
2553 <translation type="unfinished"/>
2554 </message>
2555 <message>
2556 <source>File &quot;%1&quot; is locked by %2</source>
2557 <translation type="unfinished"/>
2558 </message>
2559 <message>
2560 <source>Failed to get lock information for file &quot;%1&quot;</source>
2561 <translation type="unfinished"/>
2562 </message>
2563 </context>
2564 <context>
25652573 <name>SeafileLinkDialog</name>
25662574 <message>
25672575 <source>%1 Internal Link</source>
30253033 <source>OK</source>
30263034 <translation>確認</translation>
30273035 </message>
3036 <message>
3037 <source>Upload Link</source>
3038 <translation type="unfinished"/>
3039 </message>
3040 <message>
3041 <source>Upload link:</source>
3042 <translation type="unfinished"/>
3043 </message>
30283044 </context>
30293045 <context>
30303046 <name>SslConfirmDialog</name>
2020 #include "settings-mgr.h"
2121
2222 namespace {
23 const char *kRepoRelayAddrProperty = "relay-address";
23 const char *kRepoServerUrlProperty = "server-url";
2424 const char *kVersionKeyName = "version";
2525 const char *kFeaturesKeyName = "features";
2626 const char *kEncryptedLibraryVersionName = "encrypted_library_version";
102102 for (size_t i = 0; i < repos.size(); i++) {
103103 LocalRepo repo = repos[i];
104104 QString repo_server_url;
105 if (rpc->getRepoProperty(repo.id, "server-url", &repo_server_url) < 0) {
105 if (rpc->getRepoProperty(repo.id, kRepoServerUrlProperty, &repo_server_url) < 0) {
106106 continue;
107107 }
108108 if (QUrl(repo_server_url).host() != account.serverUrl.host()) {
663663 QMutexLocker cache_lock(&accounts_cache_mutex_);
664664
665665 if (!accounts_cache_.contains(repo_id)) {
666 QString relay_addr;
667 if (rpc->getRepoProperty(repo_id, kRepoRelayAddrProperty, &relay_addr) < 0) {
666 QString server_url;
667 if (rpc->getRepoProperty(repo_id, kRepoServerUrlProperty, &server_url) < 0) {
668668 return Account();
669669 }
670
670 QString server_host = QUrl(server_url).host();
671671 for (size_t i = 0; i < accounts.size(); i++) {
672672 const Account& account = accounts[i];
673 if (account.serverUrl.host() == relay_addr) {
673 if (account.serverUrl.host() == server_host) {
674674 accounts_cache_[repo_id] = account;
675675 break;
676676 }
77 #include "open-local-helper.h"
88 #include "ui/main-window.h"
99 #include "seafile-applet.h"
10 static bool dockClickHandler(id self,SEL _cmd,...)
11 {
12 Q_UNUSED(self)
13 Q_UNUSED(_cmd)
14 if (seafApplet) {
15 MainWindow *main_win = seafApplet->mainWindow();
16 if (main_win)
17 main_win->showWindow();
18 }
19 return true;
20 }
10
11 // static bool dockClickHandler(id self,SEL _cmd,...)
12 // {
13 // Q_UNUSED(self)
14 // Q_UNUSED(_cmd)
15 // if (seafApplet) {
16 // MainWindow *main_win = seafApplet->mainWindow();
17 // if (main_win)
18 // main_win->showWindow();
19 // }
20 // return true;
21 // }
2122
2223 Application::Application (int &argc, char **argv):QApplication(argc, argv)
2324 {
24 objc_object* cls = (objc_object *)objc_getClass("NSApplication");
25 SEL sharedApplication = sel_registerName("sharedApplication");
26 objc_object* appInst = objc_msgSend(cls,sharedApplication);
25 // objc_object* cls = (objc_object *)objc_getClass("NSApplication");
26 // SEL sharedApplication = sel_registerName("sharedApplication");
27 // objc_object* appInst = objc_msgSend(cls,sharedApplication);
2728
28 if(appInst != NULL)
29 {
30 objc_object* delegate = objc_msgSend(appInst, sel_registerName("delegate"));
31 objc_object* delClass = objc_msgSend(delegate, sel_registerName("class"));
32 class_addMethod((Class)delClass, sel_registerName("applicationShouldHandleReopen:hasVisibleWindows:"), (IMP)dockClickHandler, "B@:");
33 }
29 // if(appInst != NULL)
30 // {
31 // objc_object* delegate = objc_msgSend(appInst, sel_registerName("delegate"));
32 // objc_object* delClass = objc_msgSend(delegate, sel_registerName("class"));
33 // class_addMethod((Class)delClass, sel_registerName("applicationShouldHandleReopen:hasVisibleWindows:"), (IMP)dockClickHandler, "B@:");
34 // }
3435 }
3536
3637 bool Application::event(QEvent *e)
3030 return;
3131 }
3232
33 QString next = absolute_url.path();
34 if (absolute_url.hasQuery()) {
35 next += "?" + absolute_url.query();
36 }
37 if (!absolute_url.fragment().isEmpty()) {
38 next += "#" + absolute_url.fragment();
39 }
33 absolute_url.setScheme("");
34 absolute_url.setHost("");
35 QString next = absolute_url.toString().mid(2);
4036 GetLoginTokenRequest *req = new GetLoginTokenRequest(account, next);
4137
4238 connect(req, SIGNAL(success(const QString&)),
163163
164164 connect(listener_thread_, SIGNAL(showLockedBy(const QString&, const QString&)),
165165 this, SLOT(showLockedBy(const QString&, const QString&)));
166
167 connect(listener_thread_, SIGNAL(getUploadLink(const QString&, const QString&)),
168 this, SLOT(getUploadLink(const QString&, const QString&)));
166169 }
167170
168171 void SeafileExtensionHandler::start()
305308 LockFileRequest *req = qobject_cast<LockFileRequest *>(sender());
306309 QString str = req->lock() ? tr("Failed to lock file") : tr("Failed to unlock file");
307310 seafApplet->warningBox(QString("%1: %2").arg(str, error.toString()));
311 }
312
313 void SeafileExtensionHandler::getUploadLink(const QString& repo_id, const QString& path_in_repo)
314 {
315 const Account account =
316 seafApplet->accountManager()->getAccountByRepo(repo_id);
317 if (!account.isValid()) {
318 return;
319 }
320
321 GetUploadLinkRequest *req = new GetUploadLinkRequest(
322 account, repo_id, "/" + path_in_repo);
323 connect(req, SIGNAL(success(const QString&)), this,
324 SLOT(onGetUploadLinkSuccess(const QString)));
325 connect(req, SIGNAL(failed(const ApiError&)), this,
326 SLOT(onGetUploadLinkFailed(const ApiError&)));
327 req->send();
328
329 }
330
331 void SeafileExtensionHandler::onGetUploadLinkSuccess(const QString& upload_link)
332 {
333 SharedLinkDialog *dialog = new SharedLinkDialog(upload_link, NULL, false);
334 dialog->setAttribute(Qt::WA_DeleteOnClose);
335 dialog->show();
336 dialog->raise();
337 dialog->activateWindow();
338 }
339
340 void SeafileExtensionHandler::onGetUploadLinkFailed(const ApiError& error)
341 {
342 GetUploadLinkRequest *req = qobject_cast<GetUploadLinkRequest *>(sender());
343 const QString file = ::getBaseName(req->path());
344 seafApplet->messageBox(tr("Failed to get upload link information for file \"%1\"").arg(file));
345 req->deleteLater();
308346 }
309347
310348 void SeafileExtensionHandler::showLockedBy(const QString& repo_id, const QString& path_in_repo)
410448 this, SIGNAL(openUrlWithAutoLogin(const QUrl&)));
411449 connect(t, SIGNAL(showLockedBy(const QString&, const QString&)),
412450 this, SIGNAL(showLockedBy(const QString&, const QString&)));
451 connect(t, SIGNAL(getUploadLink(const QString&, const QString&)),
452 this, SIGNAL(getUploadLink(const QString&, const QString&)));
413453 t->start();
414454 }
415455
450490 handleShowHistory(args);
451491 } else if (cmd == "show-locked-by") {
452492 handleShowLockedBy(args);
493 } else if (cmd == "get-upload-link") {
494 handleGetUploadLink(args);
453495 } else {
454496 qWarning ("[ext] unknown request command: %s", cmd.toUtf8().data());
455497 }
685727 }
686728 }
687729
730 void ExtCommandsHandler::handleGetUploadLink(const QStringList& args)
731 {
732 if (args.size() != 1) {
733 return;
734 }
735 QString path = normalizedPath(args[0]);
736 foreach (const LocalRepo& repo, listLocalRepos()) {
737 QString wt = normalizedPath(repo.worktree);
738 // qDebug("path: %s, repo: %s", path.toUtf8().data(), wt.toUtf8().data());
739 if (path.length() > wt.length() && path.startsWith(wt) && path.at(wt.length()) == '/') {
740 QString path_in_repo = path.mid(wt.size());
741 emit getUploadLink(repo.id, path_in_repo);
742 break;
743 }
744 }
745 }
746
688747 SINGLETON_IMPL(ReposInfoCache)
689748
690749 ReposInfoCache::ReposInfoCache(QObject * parent)
2222 class SeafileExtensionHandler : public QObject {
2323 SINGLETON_DEFINE(SeafileExtensionHandler)
2424 Q_OBJECT
25
2526 public:
2627 SeafileExtensionHandler();
2728 void start();
4445 void openUrlWithAutoLogin(const QUrl& url);
4546 void onGetSmartLinkSuccess(const QString& smart_link, const QString& protocol_link);
4647 void onGetSmartLinkFailed(const ApiError& error);
48 void getUploadLink(const QString& repo, const QString& path_in_repo);
49 void onGetUploadLinkSuccess(const QString &upload_link);
50 void onGetUploadLinkFailed(const ApiError& error);
4751 void showLockedBy(const QString& repo_id, const QString& path_in_repo);
4852 void onGetFileLockInfoSuccess(bool found, const QString &owner);
4953 void onGetFileLockInfoFailed(const ApiError& error);
7983 bool to_group);
8084 void openUrlWithAutoLogin(const QUrl& url);
8185 void showLockedBy(const QString& repo_id, const QString& path_in_repo);
86 void getUploadLink(const QString& repo_id, const QString& path_in_repo);
8287
8388 private:
8489 void servePipeInNewThread(HANDLE pipe);
108113 bool to_group);
109114 void openUrlWithAutoLogin(const QUrl& url);
110115 void showLockedBy(const QString& repo_id, const QString& path_in_repo);
116 void getUploadLink(const QString& repo_id, const QString& path_in_repo);
111117
112118 private:
113119 HANDLE pipe_;
123129 void handlePrivateShare(const QStringList& args, bool to_group);
124130 void handleShowHistory(const QStringList& args);
125131 void handleShowLockedBy(const QStringList& args);
132 void handleGetUploadLink(const QStringList& args);
126133 };
127134
128135 class ReposInfoCache : public QObject {
196196 this, SLOT(onGetDirentShareToUserOrGroup(const SeafDirent&, bool)));
197197 connect(table_view_, SIGNAL(direntShareSeafile(const SeafDirent&)),
198198 this, SLOT(onGetDirentShareSeafile(const SeafDirent&)));
199 connect(table_view_, SIGNAL(direntUploadLink(const SeafDirent&)),
200 this, SLOT(onGetDirentUploadLink(const SeafDirent&)));
199201 connect(table_view_, SIGNAL(direntUpdate(const SeafDirent&)),
200202 this, SLOT(onGetDirentUpdate(const SeafDirent&)));
201203 connect(table_view_, SIGNAL(direntPaste()),
12301232 dialog.exec();
12311233 }
12321234
1235 void FileBrowserDialog::onGetDirentUploadLink(const SeafDirent& dirent) {
1236 QString repo_id = repo_.id;
1237 QString path = ::pathJoin(current_path_, dirent.name);
1238 if (dirent.isDir())
1239 path += "/";
1240 GetUploadLinkRequest *req = new GetUploadLinkRequest(account_, repo_id, path);
1241 connect(req, SIGNAL(success(const QString&)), this,
1242 SLOT(onGetUploadLinkSuccess(const QString)));
1243 connect(req, SIGNAL(failed(const ApiError&)), this,
1244 SLOT(onGetUploadLinkFailed(const ApiError&)));
1245
1246 req->send();
1247 }
1248
1249 void FileBrowserDialog::onGetUploadLinkSuccess(const QString& upload_link) {
1250 SharedLinkDialog *dialog = new SharedLinkDialog(upload_link, NULL, false);
1251 dialog->setAttribute(Qt::WA_DeleteOnClose);
1252 dialog->show();
1253 dialog->raise();
1254 dialog->activateWindow();
1255 }
1256
1257 void FileBrowserDialog::onGetUploadLinkFailed(const ApiError&) {
1258 GetUploadLinkRequest *req = qobject_cast<GetUploadLinkRequest *>(sender());
1259 const QString file = ::getBaseName(req->path());
1260 seafApplet->messageBox(tr("Failed to get upload link information for file \"%1\"").arg(file));
1261 req->deleteLater();
1262 }
12331263 void FileBrowserDialog::onGetDirentShareSeafile(const SeafDirent& dirent)
12341264 {
12351265 QString repo_id = repo_.id;
101101 void onGetDirentShare(const SeafDirent& dirent);
102102 void onGetDirentShareToUserOrGroup(const SeafDirent& dirent, bool to_group);
103103 void onGetDirentShareSeafile(const SeafDirent& dirent);
104 void onGetDirentUploadLink(const SeafDirent& dirent);
105 void onGetUploadLinkSuccess(const QString& upload_link);
106 void onGetUploadLinkFailed(const ApiError&);
104107 void onGetDirentUpdate(const SeafDirent& dirent);
105108 void onGetDirentsPaste();
106109 void onGetSyncSubdirectory(const QString &folder_name);
2323 const char kRemoveDirentsURL[] = "api2/repos/%1/fileops/delete/";
2424 const char kGetFileUploadedBytesUrl[] = "api/v2.1/repos/%1/file-uploaded-bytes/";
2525 const char kGetSmartLink[] = "api/v2.1/smart-link/";
26 const char kGetUploadLinkUrl[] = "api/v2.1/upload-links/";
27
2628 //const char kGetFileFromRevisionUrl[] = "api2/repos/%1/file/revision/";
2729 //const char kGetFileDetailUrl[] = "api2/repos/%1/file/detail/";
2830 //const char kGetFileHistoryUrl[] = "api2/repos/%1/file/history/";
508510 }
509511 emit success(false, "");
510512 }
513
514 GetUploadLinkRequest::GetUploadLinkRequest(const Account& account,
515 const QString& repo_id,
516 const QString& path)
517 : SeafileApiRequest(
518 account.getAbsoluteUrl(QString(kGetUploadLinkUrl)),
519 SeafileApiRequest::METHOD_POST, account.token),
520 path_(path)
521 {
522 setFormParam("repo_id", repo_id);
523 setFormParam("path", path);
524 }
525
526 void GetUploadLinkRequest::requestSuccess(QNetworkReply& reply)
527 {
528 json_error_t error;
529 json_t* root = parseJSON(reply, &error);
530 if (!root) {
531 qWarning("failed to parse json:%s\n", error.text);
532 emit failed(ApiError::fromJsonError());
533 return;
534 }
535 QScopedPointer<json_t, JsonPointerCustomDeleter> json(root);
536 QMap<QString, QVariant> dict = mapFromJSON(json.data(), &error);
537 QString upload_link = dict["link"].toString();
538 emit success(upload_link);
539 }
416416 QScopedPointer<GetDirentsRequest, QScopedPointerDeleteLater> dirents_req_;
417417 };
418418
419 class GetUploadLinkRequest : public SeafileApiRequest
420 {
421 Q_OBJECT
422 public:
423 GetUploadLinkRequest(const Account& account,
424 const QString& repo_id,
425 const QString& path);
426 const QString& path() const { return path_; }
427 signals:
428 void success(const QString& upload_link);
429
430 protected slots:
431 void requestSuccess(QNetworkReply& reply);
432
433 private:
434 Q_DISABLE_COPY(GetUploadLinkRequest);
435 QString path_;
436 };
437
419438 #endif // SEAFILE_CLIENT_FILE_BROWSER_REQUESTS_H
367367 this, SLOT(onShare()));
368368 share_action_->setShortcut(Qt::ALT + Qt::Key_G);
369369
370 upload_link_action_ = new QAction(tr("&Generate %1 Upload Link").arg(getBrand()), this);
371 connect(upload_link_action_, SIGNAL(triggered()),
372 this, SLOT(onGenUploadLink()));
373 upload_link_action_->setShortcut(Qt::ALT + Qt::Key_L);
374
370375 share_to_user_action_ = new QAction(tr("Share to User"), this);
371376 connect(share_to_user_action_, SIGNAL(triggered()),
372377 this, SLOT(onShareToUser()));
382387
383388 if (parent_->repo_.encrypted) {
384389 share_action_->setEnabled(false);
390 upload_link_action_->setEnabled(false);
385391 share_to_user_action_->setEnabled(false);
386392 share_to_group_action_->setEnabled(false);
387393 }
431437 context_menu_->addSeparator();
432438 context_menu_->addAction(saveas_action_);
433439 context_menu_->addAction(share_action_);
440 context_menu_->addAction(upload_link_action_);
434441 context_menu_->addAction(share_seafile_action_);
435442 context_menu_->addAction(share_to_user_action_);
436443 context_menu_->addAction(share_to_group_action_);
549556 lock_action_->setVisible(false);
550557 rename_action_->setVisible(false);
551558 share_action_->setVisible(false);
559 upload_link_action_->setVisible(false);
552560 share_seafile_action_->setVisible(false);
553561 share_to_user_action_->setVisible(false);
554562 share_to_group_action_->setVisible(false);
597605 sync_subdirectory_action_->setVisible(true);
598606 share_to_user_action_->setVisible(true);
599607 share_to_group_action_->setVisible(true);
608 upload_link_action_->setVisible(true);
600609 } else {
601610 if (item_->locked_by_me) {
602611 lock_action_->setText(tr("Un&lock"));
622631 sync_subdirectory_action_->setVisible(false);
623632 share_to_user_action_->setVisible(false);
624633 share_to_group_action_->setVisible(false);
634 upload_link_action_->setVisible(false);
625635
626636 if (TransferManager::instance()->getDownloadTask(parent_->repo_.id,
627637 ::pathJoin(parent_->current_path_, dirent->name))) {
772782 return;
773783 }
774784 emit direntShare(*item_);
785 }
786
787 void FileTableView::onGenUploadLink()
788 {
789 if (item_ == NULL) {
790 const SeafDirent *selected_item = getSelectedItemFromSource();
791 if (selected_item && selected_item->isDir())
792 emit direntUploadLink(*selected_item);
793 return;
794 }
795 emit direntUploadLink(*item_);
775796 }
776797
777798 void FileTableView::onShareToUser()
4747 void direntShare(const SeafDirent& dirent);
4848 void direntShareToUserOrGroup(const SeafDirent& dirent, bool to_group);
4949 void direntShareSeafile(const SeafDirent& dirent);
50 void direntUploadLink(const SeafDirent& dirent);
5051 void direntPaste();
5152
5253 void cancelDownload(const SeafDirent& dirent);
6364 void onRename();
6465 void onRemove();
6566 void onShare();
67 void onGenUploadLink();
6668 void onShareToUser();
6769 void onShareToGroup();
6870 void onShareSeafile();
104106 QAction *rename_action_;
105107 QAction *remove_action_;
106108 QAction *share_action_;
109 QAction *upload_link_action_;
107110 QAction *share_to_user_action_;
108111 QAction *share_to_group_action_;
109112 QAction *share_seafile_action_;
33 #include <QtWidgets>
44 #include "utils/utils-mac.h"
55
6 SharedLinkDialog::SharedLinkDialog(const QString &text, QWidget *parent)
6 SharedLinkDialog::SharedLinkDialog(const QString &text, QWidget *parent, bool is_shared_link)
77 : text_(text)
88 {
9 setWindowTitle(tr("Share Link"));
9 if (is_shared_link) {
10 setWindowTitle(tr("Share Link"));
11 } else {
12 setWindowTitle(tr("Upload Link"));
13 }
1014 setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
1115 setWindowIcon(QIcon(":/images/seafile.png"));
1216 QVBoxLayout *layout = new QVBoxLayout;
1317
14 QLabel *label = new QLabel(tr("Share link:"));
18 QLabel *label;
19 if (is_shared_link) {
20 label = new QLabel(tr("Share link:"));
21 } else {
22 label = new QLabel(tr("Upload link:"));
23 }
1524 layout->addWidget(label);
1625 layout->setSpacing(5);
1726 layout->setContentsMargins(9, 9, 9, 9);
2534 QHBoxLayout *hlayout = new QHBoxLayout;
2635
2736 QCheckBox *is_download_checked = new QCheckBox(tr("Direct Download"));
37 if (!is_shared_link) {
38 is_download_checked->hide();
39 }
2840 connect(is_download_checked, SIGNAL(stateChanged(int)),
2941 this, SLOT(onDownloadStateChanged(int)));
3042 hlayout->addWidget(is_download_checked);
66 {
77 Q_OBJECT
88 public:
9 SharedLinkDialog(const QString &text, QWidget *parent);
9 SharedLinkDialog(const QString &text, QWidget *parent, bool is_shared_link = true);
1010
1111 private slots:
1212 void onCopyText();
6969 static std::unique_ptr<GetSharedLinkRequest, QtLaterDeleter> get_shared_link_req_;
7070 static std::unique_ptr<LockFileRequest, QtLaterDeleter> lock_file_req_;
7171 static std::unique_ptr<GetFileLockInfoRequest, QtLaterDeleter> get_lock_info_req_;
72 static std::unique_ptr<GetUploadLinkRequest, QtLaterDeleter> get_upload_link_req_;
7273
7374 FinderSyncHost::FinderSyncHost() : rpc_client_(new SeafileRpcClient) {
7475 rpc_client_->tryConnectDaemon();
357358 const QString file = ::getBaseName(get_lock_info_req_->path());
358359 seafApplet->messageBox(tr("Failed to get lock information for file \"%1\"").arg(file));
359360 }
361
362 void FinderSyncHost::doGetUploadLink(const QString &path)
363 {
364 QString repo_id;
365 Account account;
366 QString path_in_repo;
367 if (!lookUpFileInformation(path, &repo_id, &account, &path_in_repo)) {
368 qWarning("[FinderSync] invalid path %s", path.toUtf8().data());
369 return;
370 }
371
372 // printf ("get upload link for %s\n", toCStr(path));
373 get_upload_link_req_.reset(new GetUploadLinkRequest(
374 account, repo_id, QString("/").append(path_in_repo)));
375
376 connect(get_upload_link_req_.get(), SIGNAL(success(const QString&)), this,
377 SLOT(onGetUploadLinkSuccess(const QString &)));
378 connect(get_upload_link_req_.get(), SIGNAL(failed(const ApiError&)), this,
379 SLOT(onGetUploadLinkFailed(const ApiError&)));
380
381 get_upload_link_req_->send();
382 }
383
384 void FinderSyncHost::onGetUploadLinkSuccess(const QString& upload_link)
385 {
386 // printf ("get upload link is %s", toCStr(upload_link));
387 SharedLinkDialog *dialog = new SharedLinkDialog(upload_link, NULL, false);
388 dialog->setAttribute(Qt::WA_DeleteOnClose);
389 dialog->show();
390 dialog->raise();
391 dialog->activateWindow();
392 }
393
394 void FinderSyncHost::onGetUploadLinkFailed(const ApiError& error)
395 {
396 const QString file = ::getBaseName(get_upload_link_req_->path());
397 seafApplet->messageBox(tr("Failed to get upload link for file \"%1\"").arg(file));
398 }
3333 void onGetFileLockInfoFailed(const ApiError& error);
3434 void onGetSmartLinkSuccess(const QString& smart_link, const QString& protocol_link);
3535 void onGetSmartLinkFailed(const ApiError& error);
36 void doGetUploadLink(const QString& path);
37 void onGetUploadLinkSuccess(const QString& upload_link);
38 void onGetUploadLinkFailed(const ApiError& error);
39
3640 private:
3741 bool lookUpFileInformation(const QString &path, QString *repo_id, Account *account, QString *path_in_repo);
3842 SeafileRpcClient *rpc_client_;
3030 DoUnlockFile = 5,
3131 DoShowFileHistory = 6,
3232 DoShowFileLockedBy = 7,
33 DoGetUploadLink = 8,
3334 };
3435
3536 struct mach_msg_command_send_t {
257258 Qt::QueuedConnection,
258259 Q_ARG(QString, msg->body));
259260 break;
261 case DoGetUploadLink:
262 QMetaObject::invokeMethod(finder_sync_host_.get(), "doGetUploadLink",
263 Qt::QueuedConnection,
264 Q_ARG(QString, msg->body));
265 break;
260266 default:
261267 qWarning("[FinderSync] received unknown command %u", msg->command);
262268 break;
179179 const int kIntervalForUpdateRepoProperty = 1000;
180180
181181 const char *kRepoServerUrlProperty = "server-url";
182 const char *kRepoRelayAddrProperty = "relay-address";
183182
184183 } // namespace
185184
638637 for (size_t i = 0; i < repos.size(); i++) {
639638 const LocalRepo& repo = repos[i];
640639 QString repo_server_url;
641 QString relay_addr;
640 QString server_url;
642641 if (rpc_client_->getRepoProperty(repo.id, kRepoServerUrlProperty, &repo_server_url) < 0) {
643642 continue;
644643 }
645644 if (!repo_server_url.isEmpty()) {
646645 continue;
647646 }
648 if (rpc_client_->getRepoProperty(repo.id, kRepoRelayAddrProperty, &relay_addr) < 0) {
647 if (rpc_client_->getRepoProperty(repo.id, kRepoServerUrlProperty, &server_url) < 0) {
649648 continue;
650649 }
650
651 QString server_host = QUrl(server_url).host();
651652 for (size_t i = 0; i < accounts.size(); i++) {
652653 const Account& account = accounts[i];
653 if (account.serverUrl.host() == relay_addr) {
654 if (account.serverUrl.host() == server_host) {
654655 QUrl url(account.serverUrl);
655656 url.setPath("/");
656657 rpc_client_->setRepoProperty(repo.id, kRepoServerUrlProperty, url.toString());
545545 if (!account.isAtLeastVersion(4, 2, 0)) {
546546 QDesktopServices::openUrl(account.getAbsoluteUrl("repo/" + selected_repo_.id));
547547 } else {
548 AutoLoginService::instance()->startAutoLogin("/#common/lib/" + selected_repo_.id + "/");
548 AutoLoginService::instance()->startAutoLogin("/library/" + selected_repo_.id + "/" + selected_repo_.name + "/");
549549 }
550550 }
551551 }
538538 {
539539 QString url;
540540 if (QLocale::system().name() == "zh_CN") {
541 url = "https://www.seafile.com/help/install/";
541 url = "https://cloud.seafile.com/published/seafile-user-manual/syncing_client/install_syncing_client.md";
542542 } else {
543 url = "https://www.seafile.com/en/help/install/";
543 url = "https://download.seafile.com/published/seafile-user-manual/syncing_client/install_sync.md";
544544 }
545545
546546 QDesktopServices::openUrl(QUrl(url));