New upstream version 7.0.5
Moritz Schlarb
4 years ago
2 | 2 | PROJECT(seafile-client) |
3 | 3 | SET(SEAFILE_CLIENT_VERSION_MAJOR 7) |
4 | 4 | SET(SEAFILE_CLIENT_VERSION_MINOR 0) |
5 | SET(SEAFILE_CLIENT_VERSION_PATCH 4) | |
5 | SET(SEAFILE_CLIENT_VERSION_PATCH 5) | |
6 | 6 | SET(PROJECT_VERSION "${SEAFILE_CLIENT_VERSION_MAJOR}.${SEAFILE_CLIENT_VERSION_MINOR}.${SEAFILE_CLIENT_VERSION_PATCH}") |
7 | 7 | ADD_DEFINITIONS(-DSEAFILE_CLIENT_VERSION=${PROJECT_VERSION}) |
8 | 8 | INCLUDE(FindPkgConfig) |
19 | 19 | ENDIF() |
20 | 20 | |
21 | 21 | IF (APPLE AND NOT CMAKE_OSX_DEPLOYMENT_TARGET) |
22 | SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.7") | |
22 | SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.9") | |
23 | 23 | ENDIF() |
24 | 24 | |
25 | 25 | FIND_PROGRAM(git_executable NAMES git git.exe git.cmd) |
824 | 824 | SET(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym") |
825 | 825 | SET(CMAKE_XCODE_ATTRIBUTE_GCC_ENABLE_PASCAL_STRINGS "NO") |
826 | 826 | SET(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES") |
827 | SET(CMAKE_XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "TRUE") | |
827 | 828 | ENDIF() |
828 | 829 | |
829 | 830 | SET(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}) |
14 | 14 | <key>CFBundleName</key> |
15 | 15 | <string>Seafile</string> |
16 | 16 | <key>CFBundleShortVersionString</key> |
17 | <string>7.0.4</string> | |
17 | <string>7.0.5</string> | |
18 | 18 | <key>CFBundleVersion</key> |
19 | <string>7.0.4</string> | |
19 | <string>7.0.5</string> | |
20 | 20 | <key>CFBundleSignature</key> |
21 | 21 | <string>????</string> |
22 | 22 | <key>CFBundleURLTypes</key> |
382 | 382 | |
383 | 383 | // we don't have a lock-file menuitem for folders |
384 | 384 | // 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]; | |
386 | 392 | return menu; |
393 | } | |
387 | 394 | |
388 | 395 | // find where we have it |
389 | 396 | auto file = file_status_.find(is_dir ? file_path + "/" : file_path); |
620 | 627 | }); |
621 | 628 | } |
622 | 629 | |
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 | ||
623 | 646 | @end |
71 | 71 | DoUnlockFile = 5, |
72 | 72 | DoShowFileHistory = 6, |
73 | 73 | DoShowFileLockedBy = 7, |
74 | DoGetUploadLink = 8, | |
74 | 75 | }; |
75 | 76 | |
76 | 77 | FinderSyncClient(FinderSync *parent); |
19 | 19 | rm -rf CMakeCache.txt CMakeFiles |
20 | 20 | CONFIG=Release |
21 | 21 | fi |
22 | cmake -G Xcode -DCMAKE_BUILD_TYPE="$CONFIG" | |
22 | cmake -GXcode -DCMAKE_BUILD_TYPE="$CONFIG" | |
23 | 23 | xcodebuild clean |
24 | 24 | xcodebuild -jobs "$(sysctl -n hw.ncpu)" -configuration "$CONFIG" |
25 | 25 | popd |
Binary diff not shown
847 | 847 | <source>Failed to get link</source> |
848 | 848 | <translation type="unfinished"/> |
849 | 849 | </message> |
850 | <message> | |
851 | <source>Failed to get upload link information for file "%1"</source> | |
852 | <translation type="unfinished"/> | |
853 | </message> | |
850 | 854 | </context> |
851 | 855 | <context> |
852 | 856 | <name>FileBrowserProgressDialog</name> |
1075 | 1079 | </message> |
1076 | 1080 | <message> |
1077 | 1081 | <source>Open Local Cache Folder</source> |
1082 | <translation type="unfinished"/> | |
1083 | </message> | |
1084 | <message> | |
1085 | <source>&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 "%1" is locked by %2</source> | |
1097 | <translation type="unfinished"/> | |
1098 | </message> | |
1099 | <message> | |
1100 | <source>Failed to get lock information for file "%1"</source> | |
1101 | <translation type="unfinished"/> | |
1102 | </message> | |
1103 | <message> | |
1104 | <source>Failed to get upload link for file "%1"</source> | |
1078 | 1105 | <translation type="unfinished"/> |
1079 | 1106 | </message> |
1080 | 1107 | </context> |
2129 | 2156 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2130 | 2157 | <translation type="unfinished"/> |
2131 | 2158 | </message> |
2159 | <message> | |
2160 | <source>failed to open sync error id database</source> | |
2161 | <translation type="unfinished"/> | |
2162 | </message> | |
2132 | 2163 | </context> |
2133 | 2164 | <context> |
2134 | 2165 | <name>ReliablePostFileTask</name> |
2516 | 2547 | </message> |
2517 | 2548 | </context> |
2518 | 2549 | <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 "%1" is locked by %2</source> | |
2534 | <translation type="unfinished"/> | |
2535 | </message> | |
2536 | <message> | |
2537 | <source>Failed to get lock information for file "%1"</source> | |
2538 | <translation type="unfinished"/> | |
2539 | </message> | |
2540 | </context> | |
2541 | <context> | |
2542 | 2550 | <name>SeafileLinkDialog</name> |
2543 | 2551 | <message> |
2544 | 2552 | <source>%1 Internal Link</source> |
3002 | 3010 | <source>OK</source> |
3003 | 3011 | <translation type="unfinished"/> |
3004 | 3012 | </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> | |
3005 | 3021 | </context> |
3006 | 3022 | <context> |
3007 | 3023 | <name>SslConfirmDialog</name> |
854 | 854 | <source>Failed to get link</source> |
855 | 855 | <translation type="unfinished"/> |
856 | 856 | </message> |
857 | <message> | |
858 | <source>Failed to get upload link information for file "%1"</source> | |
859 | <translation type="unfinished"/> | |
860 | </message> | |
857 | 861 | </context> |
858 | 862 | <context> |
859 | 863 | <name>FileBrowserProgressDialog</name> |
1082 | 1086 | </message> |
1083 | 1087 | <message> |
1084 | 1088 | <source>Open Local Cache Folder</source> |
1089 | <translation type="unfinished"/> | |
1090 | </message> | |
1091 | <message> | |
1092 | <source>&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 "%1" is locked by %2</source> | |
1104 | <translation type="unfinished"/> | |
1105 | </message> | |
1106 | <message> | |
1107 | <source>Failed to get lock information for file "%1"</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get upload link for file "%1"</source> | |
1085 | 1112 | <translation type="unfinished"/> |
1086 | 1113 | </message> |
1087 | 1114 | </context> |
2141 | 2168 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2142 | 2169 | <translation type="unfinished"/> |
2143 | 2170 | </message> |
2171 | <message> | |
2172 | <source>failed to open sync error id database</source> | |
2173 | <translation type="unfinished"/> | |
2174 | </message> | |
2144 | 2175 | </context> |
2145 | 2176 | <context> |
2146 | 2177 | <name>ReliablePostFileTask</name> |
2530 | 2561 | </message> |
2531 | 2562 | </context> |
2532 | 2563 | <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 "%1" is locked by %2</source> | |
2548 | <translation type="unfinished"/> | |
2549 | </message> | |
2550 | <message> | |
2551 | <source>Failed to get lock information for file "%1"</source> | |
2552 | <translation type="unfinished"/> | |
2553 | </message> | |
2554 | </context> | |
2555 | <context> | |
2556 | 2564 | <name>SeafileLinkDialog</name> |
2557 | 2565 | <message> |
2558 | 2566 | <source>%1 Internal Link</source> |
3016 | 3024 | <source>OK</source> |
3017 | 3025 | <translation>D'acord</translation> |
3018 | 3026 | </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> | |
3019 | 3035 | </context> |
3020 | 3036 | <context> |
3021 | 3037 | <name>SslConfirmDialog</name> |
858 | 858 | <source>Failed to get link</source> |
859 | 859 | <translation type="unfinished"/> |
860 | 860 | </message> |
861 | <message> | |
862 | <source>Failed to get upload link information for file "%1"</source> | |
863 | <translation type="unfinished"/> | |
864 | </message> | |
861 | 865 | </context> |
862 | 866 | <context> |
863 | 867 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | </message> |
1088 | 1092 | <message> |
1089 | 1093 | <source>Open Local Cache Folder</source> |
1094 | <translation type="unfinished"/> | |
1095 | </message> | |
1096 | <message> | |
1097 | <source>&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 "%1" is locked by %2</source> | |
1109 | <translation type="unfinished"/> | |
1110 | </message> | |
1111 | <message> | |
1112 | <source>Failed to get lock information for file "%1"</source> | |
1113 | <translation type="unfinished"/> | |
1114 | </message> | |
1115 | <message> | |
1116 | <source>Failed to get upload link for file "%1"</source> | |
1090 | 1117 | <translation type="unfinished"/> |
1091 | 1118 | </message> |
1092 | 1119 | </context> |
2150 | 2177 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2151 | 2178 | <translation type="unfinished"/> |
2152 | 2179 | </message> |
2180 | <message> | |
2181 | <source>failed to open sync error id database</source> | |
2182 | <translation type="unfinished"/> | |
2183 | </message> | |
2153 | 2184 | </context> |
2154 | 2185 | <context> |
2155 | 2186 | <name>ReliablePostFileTask</name> |
2539 | 2570 | </message> |
2540 | 2571 | </context> |
2541 | 2572 | <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 "%1" is locked by %2</source> | |
2557 | <translation type="unfinished"/> | |
2558 | </message> | |
2559 | <message> | |
2560 | <source>Failed to get lock information for file "%1"</source> | |
2561 | <translation type="unfinished"/> | |
2562 | </message> | |
2563 | </context> | |
2564 | <context> | |
2565 | 2573 | <name>SeafileLinkDialog</name> |
2566 | 2574 | <message> |
2567 | 2575 | <source>%1 Internal Link</source> |
2577 | 2585 | </message> |
2578 | 2586 | <message> |
2579 | 2587 | <source>%1 Internal Link:</source> |
2580 | <translation type="unfinished"/> | |
2588 | <translation>%1 Interní odkaz:</translation> | |
2581 | 2589 | </message> |
2582 | 2590 | <message> |
2583 | 2591 | <source>%1 Desktop Access Link:</source> |
3025 | 3033 | <source>OK</source> |
3026 | 3034 | <translation>OK</translation> |
3027 | 3035 | </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> | |
3028 | 3044 | </context> |
3029 | 3045 | <context> |
3030 | 3046 | <name>SslConfirmDialog</name> |
856 | 856 | <source>Failed to get link</source> |
857 | 857 | <translation>Fehler beim Ermitteln des Links</translation> |
858 | 858 | </message> |
859 | <message> | |
860 | <source>Failed to get upload link information for file "%1"</source> | |
861 | <translation type="unfinished"/> | |
862 | </message> | |
859 | 863 | </context> |
860 | 864 | <context> |
861 | 865 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | <message> |
1087 | 1091 | <source>Open Local Cache Folder</source> |
1088 | 1092 | <translation>Lokalen Zwischenspeicher öffnen</translation> |
1093 | </message> | |
1094 | <message> | |
1095 | <source>&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 "%1" is locked by %2</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get lock information for file "%1"</source> | |
1111 | <translation type="unfinished"/> | |
1112 | </message> | |
1113 | <message> | |
1114 | <source>Failed to get upload link for file "%1"</source> | |
1115 | <translation type="unfinished"/> | |
1089 | 1116 | </message> |
1090 | 1117 | </context> |
1091 | 1118 | <context> |
2155 | 2182 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2156 | 2183 | <translation>Ein Ordner, der noch nicht hochgeladene Dateien enthalten könnte, wurde in den Papierkorb von Seafile verschoben.</translation> |
2157 | 2184 | </message> |
2185 | <message> | |
2186 | <source>failed to open sync error id database</source> | |
2187 | <translation type="unfinished"/> | |
2188 | </message> | |
2158 | 2189 | </context> |
2159 | 2190 | <context> |
2160 | 2191 | <name>ReliablePostFileTask</name> |
2544 | 2575 | </message> |
2545 | 2576 | </context> |
2546 | 2577 | <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 "%1" is locked by %2</source> | |
2562 | <translation type="unfinished"/> | |
2563 | </message> | |
2564 | <message> | |
2565 | <source>Failed to get lock information for file "%1"</source> | |
2566 | <translation type="unfinished"/> | |
2567 | </message> | |
2568 | </context> | |
2569 | <context> | |
2570 | 2578 | <name>SeafileLinkDialog</name> |
2571 | 2579 | <message> |
2572 | 2580 | <source>%1 Internal Link</source> |
2704 | 2712 | </message> |
2705 | 2713 | <message> |
2706 | 2714 | <source>have some sync error</source> |
2707 | <translation type="unfinished"/> | |
2715 | <translation>Fehler beim Synchronisieren</translation> | |
2708 | 2716 | </message> |
2709 | 2717 | </context> |
2710 | 2718 | <context> |
3030 | 3038 | <source>OK</source> |
3031 | 3039 | <translation>OK</translation> |
3032 | 3040 | </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> | |
3033 | 3049 | </context> |
3034 | 3050 | <context> |
3035 | 3051 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation type="unfinished"/> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | </message> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1093 | <translation type="unfinished"/> | |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1089 | 1116 | <translation type="unfinished"/> |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
2148 | 2175 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2149 | 2176 | <translation type="unfinished"/> |
2150 | 2177 | </message> |
2178 | <message> | |
2179 | <source>failed to open sync error id database</source> | |
2180 | <translation type="unfinished"/> | |
2181 | </message> | |
2151 | 2182 | </context> |
2152 | 2183 | <context> |
2153 | 2184 | <name>ReliablePostFileTask</name> |
2537 | 2568 | </message> |
2538 | 2569 | </context> |
2539 | 2570 | <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 "%1" is locked by %2</source> | |
2555 | <translation type="unfinished"/> | |
2556 | </message> | |
2557 | <message> | |
2558 | <source>Failed to get lock information for file "%1"</source> | |
2559 | <translation type="unfinished"/> | |
2560 | </message> | |
2561 | </context> | |
2562 | <context> | |
2563 | 2571 | <name>SeafileLinkDialog</name> |
2564 | 2572 | <message> |
2565 | 2573 | <source>%1 Internal Link</source> |
3023 | 3031 | <source>OK</source> |
3024 | 3032 | <translation>OK</translation> |
3025 | 3033 | </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> | |
3026 | 3042 | </context> |
3027 | 3043 | <context> |
3028 | 3044 | <name>SslConfirmDialog</name> |
849 | 849 | <source>Failed to get link</source> |
850 | 850 | <translation type="unfinished"></translation> |
851 | 851 | </message> |
852 | <message> | |
853 | <source>Failed to get upload link information for file "%1"</source> | |
854 | <translation type="unfinished"></translation> | |
855 | </message> | |
852 | 856 | </context> |
853 | 857 | <context> |
854 | 858 | <name>FileBrowserProgressDialog</name> |
1077 | 1081 | </message> |
1078 | 1082 | <message> |
1079 | 1083 | <source>Open Local Cache Folder</source> |
1084 | <translation type="unfinished"></translation> | |
1085 | </message> | |
1086 | <message> | |
1087 | <source>&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 "%1" is locked by %2</source> | |
1099 | <translation type="unfinished"></translation> | |
1100 | </message> | |
1101 | <message> | |
1102 | <source>Failed to get lock information for file "%1"</source> | |
1103 | <translation type="unfinished"></translation> | |
1104 | </message> | |
1105 | <message> | |
1106 | <source>Failed to get upload link for file "%1"</source> | |
1080 | 1107 | <translation type="unfinished"></translation> |
1081 | 1108 | </message> |
1082 | 1109 | </context> |
2131 | 2158 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2132 | 2159 | <translation type="unfinished"></translation> |
2133 | 2160 | </message> |
2161 | <message> | |
2162 | <source>failed to open sync error id database</source> | |
2163 | <translation type="unfinished"></translation> | |
2164 | </message> | |
2134 | 2165 | </context> |
2135 | 2166 | <context> |
2136 | 2167 | <name>ReliablePostFileTask</name> |
2518 | 2549 | </message> |
2519 | 2550 | </context> |
2520 | 2551 | <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 "%1" is locked by %2</source> | |
2536 | <translation type="unfinished"></translation> | |
2537 | </message> | |
2538 | <message> | |
2539 | <source>Failed to get lock information for file "%1"</source> | |
2540 | <translation type="unfinished"></translation> | |
2541 | </message> | |
2542 | </context> | |
2543 | <context> | |
2544 | 2552 | <name>SeafileLinkDialog</name> |
2545 | 2553 | <message> |
2546 | 2554 | <source>%1 Internal Link</source> |
3004 | 3012 | <source>OK</source> |
3005 | 3013 | <translation type="unfinished"></translation> |
3006 | 3014 | </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> | |
3007 | 3023 | </context> |
3008 | 3024 | <context> |
3009 | 3025 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation>Fallo al obtener enlace</translation> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Abrir carpeta de caché local</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
2156 | 2183 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2157 | 2184 | <translation>Una carpeta que podría contener archivos todavía no subidos es movida a la carpeta seafile-recycle-bin</translation> |
2158 | 2185 | </message> |
2186 | <message> | |
2187 | <source>failed to open sync error id database</source> | |
2188 | <translation type="unfinished"/> | |
2189 | </message> | |
2159 | 2190 | </context> |
2160 | 2191 | <context> |
2161 | 2192 | <name>ReliablePostFileTask</name> |
2545 | 2576 | </message> |
2546 | 2577 | </context> |
2547 | 2578 | <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 "%1" is locked by %2</source> | |
2563 | <translation type="unfinished"/> | |
2564 | </message> | |
2565 | <message> | |
2566 | <source>Failed to get lock information for file "%1"</source> | |
2567 | <translation type="unfinished"/> | |
2568 | </message> | |
2569 | </context> | |
2570 | <context> | |
2571 | 2579 | <name>SeafileLinkDialog</name> |
2572 | 2580 | <message> |
2573 | 2581 | <source>%1 Internal Link</source> |
2705 | 2713 | </message> |
2706 | 2714 | <message> |
2707 | 2715 | <source>have some sync error</source> |
2708 | <translation type="unfinished"/> | |
2716 | <translation>tiene algún error de sincronización</translation> | |
2709 | 2717 | </message> |
2710 | 2718 | </context> |
2711 | 2719 | <context> |
3031 | 3039 | <source>OK</source> |
3032 | 3040 | <translation>OK</translation> |
3033 | 3041 | </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> | |
3034 | 3050 | </context> |
3035 | 3051 | <context> |
3036 | 3052 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation>Fallo al obtener enlace</translation> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Abrir carpeta de caché local</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
2156 | 2183 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2157 | 2184 | <translation>Una carpeta que podría contener archivos todavía no subidos es movida a la carpeta seafile-recycle-bin</translation> |
2158 | 2185 | </message> |
2186 | <message> | |
2187 | <source>failed to open sync error id database</source> | |
2188 | <translation type="unfinished"/> | |
2189 | </message> | |
2159 | 2190 | </context> |
2160 | 2191 | <context> |
2161 | 2192 | <name>ReliablePostFileTask</name> |
2545 | 2576 | </message> |
2546 | 2577 | </context> |
2547 | 2578 | <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 "%1" is locked by %2</source> | |
2563 | <translation type="unfinished"/> | |
2564 | </message> | |
2565 | <message> | |
2566 | <source>Failed to get lock information for file "%1"</source> | |
2567 | <translation type="unfinished"/> | |
2568 | </message> | |
2569 | </context> | |
2570 | <context> | |
2571 | 2579 | <name>SeafileLinkDialog</name> |
2572 | 2580 | <message> |
2573 | 2581 | <source>%1 Internal Link</source> |
2705 | 2713 | </message> |
2706 | 2714 | <message> |
2707 | 2715 | <source>have some sync error</source> |
2708 | <translation type="unfinished"/> | |
2716 | <translation>tiene algún error de sincronización</translation> | |
2709 | 2717 | </message> |
2710 | 2718 | </context> |
2711 | 2719 | <context> |
3031 | 3039 | <source>OK</source> |
3032 | 3040 | <translation>OK</translation> |
3033 | 3041 | </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> | |
3034 | 3050 | </context> |
3035 | 3051 | <context> |
3036 | 3052 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation>Fallo al obtener enlace</translation> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Abrir carpeta de caché local</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
2156 | 2183 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2157 | 2184 | <translation>Una carpeta que podría contener archivos todavía no subidos es movida a la carpeta seafile-recycle-bin</translation> |
2158 | 2185 | </message> |
2186 | <message> | |
2187 | <source>failed to open sync error id database</source> | |
2188 | <translation type="unfinished"/> | |
2189 | </message> | |
2159 | 2190 | </context> |
2160 | 2191 | <context> |
2161 | 2192 | <name>ReliablePostFileTask</name> |
2545 | 2576 | </message> |
2546 | 2577 | </context> |
2547 | 2578 | <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 "%1" is locked by %2</source> | |
2563 | <translation type="unfinished"/> | |
2564 | </message> | |
2565 | <message> | |
2566 | <source>Failed to get lock information for file "%1"</source> | |
2567 | <translation type="unfinished"/> | |
2568 | </message> | |
2569 | </context> | |
2570 | <context> | |
2571 | 2579 | <name>SeafileLinkDialog</name> |
2572 | 2580 | <message> |
2573 | 2581 | <source>%1 Internal Link</source> |
2705 | 2713 | </message> |
2706 | 2714 | <message> |
2707 | 2715 | <source>have some sync error</source> |
2708 | <translation type="unfinished"/> | |
2716 | <translation>tiene algún error de sincronización</translation> | |
2709 | 2717 | </message> |
2710 | 2718 | </context> |
2711 | 2719 | <context> |
3031 | 3039 | <source>OK</source> |
3032 | 3040 | <translation>OK</translation> |
3033 | 3041 | </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> | |
3034 | 3050 | </context> |
3035 | 3051 | <context> |
3036 | 3052 | <name>SslConfirmDialog</name> |
847 | 847 | <source>Failed to get link</source> |
848 | 848 | <translation type="unfinished"/> |
849 | 849 | </message> |
850 | <message> | |
851 | <source>Failed to get upload link information for file "%1"</source> | |
852 | <translation type="unfinished"/> | |
853 | </message> | |
850 | 854 | </context> |
851 | 855 | <context> |
852 | 856 | <name>FileBrowserProgressDialog</name> |
1075 | 1079 | </message> |
1076 | 1080 | <message> |
1077 | 1081 | <source>Open Local Cache Folder</source> |
1082 | <translation type="unfinished"/> | |
1083 | </message> | |
1084 | <message> | |
1085 | <source>&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 "%1" is locked by %2</source> | |
1097 | <translation type="unfinished"/> | |
1098 | </message> | |
1099 | <message> | |
1100 | <source>Failed to get lock information for file "%1"</source> | |
1101 | <translation type="unfinished"/> | |
1102 | </message> | |
1103 | <message> | |
1104 | <source>Failed to get upload link for file "%1"</source> | |
1078 | 1105 | <translation type="unfinished"/> |
1079 | 1106 | </message> |
1080 | 1107 | </context> |
2129 | 2156 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2130 | 2157 | <translation type="unfinished"/> |
2131 | 2158 | </message> |
2159 | <message> | |
2160 | <source>failed to open sync error id database</source> | |
2161 | <translation type="unfinished"/> | |
2162 | </message> | |
2132 | 2163 | </context> |
2133 | 2164 | <context> |
2134 | 2165 | <name>ReliablePostFileTask</name> |
2516 | 2547 | </message> |
2517 | 2548 | </context> |
2518 | 2549 | <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 "%1" is locked by %2</source> | |
2534 | <translation type="unfinished"/> | |
2535 | </message> | |
2536 | <message> | |
2537 | <source>Failed to get lock information for file "%1"</source> | |
2538 | <translation type="unfinished"/> | |
2539 | </message> | |
2540 | </context> | |
2541 | <context> | |
2542 | 2550 | <name>SeafileLinkDialog</name> |
2543 | 2551 | <message> |
2544 | 2552 | <source>%1 Internal Link</source> |
3002 | 3010 | <source>OK</source> |
3003 | 3011 | <translation type="unfinished"/> |
3004 | 3012 | </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> | |
3005 | 3021 | </context> |
3006 | 3022 | <context> |
3007 | 3023 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation>Impossible d'obtenir le lien</translation> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Ouvrir le dossier du cache local</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
1527 | 1554 | </message> |
1528 | 1555 | <message> |
1529 | 1556 | <source>No permission to sync folder %1.</source> |
1530 | <translation type="unfinished"/> | |
1557 | <translation>Pas de permission pour synchroniser le dossier %1.</translation> | |
1531 | 1558 | </message> |
1532 | 1559 | <message> |
1533 | 1560 | <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> | |
1535 | 1562 | </message> |
1536 | 1563 | <message> |
1537 | 1564 | <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> | |
1539 | 1566 | </message> |
1540 | 1567 | <message> |
1541 | 1568 | <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'ont pas encore été chargés.</translation> | |
1543 | 1570 | </message> |
1544 | 1571 | <message> |
1545 | 1572 | <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'est pas synchronisée.</translation> | |
1547 | 1574 | </message> |
1548 | 1575 | </context> |
1549 | 1576 | <context> |
2141 | 2168 | </message> |
2142 | 2169 | <message> |
2143 | 2170 | <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> | |
2145 | 2172 | </message> |
2146 | 2173 | <message> |
2147 | 2174 | <source>Permission denied on server</source> |
2148 | <translation type="unfinished"/> | |
2175 | <translation>Permission refusée sur le serveur</translation> | |
2149 | 2176 | </message> |
2150 | 2177 | <message> |
2151 | 2178 | <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> | |
2153 | 2180 | </message> |
2154 | 2181 | <message> |
2155 | 2182 | <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> | |
2156 | 2187 | <translation type="unfinished"/> |
2157 | 2188 | </message> |
2158 | 2189 | </context> |
2544 | 2575 | </message> |
2545 | 2576 | </context> |
2546 | 2577 | <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 "%1" is locked by %2</source> | |
2562 | <translation type="unfinished"/> | |
2563 | </message> | |
2564 | <message> | |
2565 | <source>Failed to get lock information for file "%1"</source> | |
2566 | <translation type="unfinished"/> | |
2567 | </message> | |
2568 | </context> | |
2569 | <context> | |
2570 | 2578 | <name>SeafileLinkDialog</name> |
2571 | 2579 | <message> |
2572 | 2580 | <source>%1 Internal Link</source> |
2586 | 2594 | </message> |
2587 | 2595 | <message> |
2588 | 2596 | <source>%1 Desktop Access Link:</source> |
2589 | <translation type="unfinished"/> | |
2597 | <translation>%1 Lien d'accès au bureau :</translation> | |
2590 | 2598 | </message> |
2591 | 2599 | </context> |
2592 | 2600 | <context> |
2704 | 2712 | </message> |
2705 | 2713 | <message> |
2706 | 2714 | <source>have some sync error</source> |
2707 | <translation type="unfinished"/> | |
2715 | <translation>Il y a une erreur de synchromisation</translation> | |
2708 | 2716 | </message> |
2709 | 2717 | </context> |
2710 | 2718 | <context> |
3030 | 3038 | <source>OK</source> |
3031 | 3039 | <translation>OK</translation> |
3032 | 3040 | </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> | |
3033 | 3049 | </context> |
3034 | 3050 | <context> |
3035 | 3051 | <name>SslConfirmDialog</name> |
853 | 853 | <source>Failed to get link</source> |
854 | 854 | <translation type="unfinished"/> |
855 | 855 | </message> |
856 | <message> | |
857 | <source>Failed to get upload link information for file "%1"</source> | |
858 | <translation type="unfinished"/> | |
859 | </message> | |
856 | 860 | </context> |
857 | 861 | <context> |
858 | 862 | <name>FileBrowserProgressDialog</name> |
1081 | 1085 | </message> |
1082 | 1086 | <message> |
1083 | 1087 | <source>Open Local Cache Folder</source> |
1088 | <translation type="unfinished"/> | |
1089 | </message> | |
1090 | <message> | |
1091 | <source>&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 "%1" is locked by %2</source> | |
1103 | <translation type="unfinished"/> | |
1104 | </message> | |
1105 | <message> | |
1106 | <source>Failed to get lock information for file "%1"</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get upload link for file "%1"</source> | |
1084 | 1111 | <translation type="unfinished"/> |
1085 | 1112 | </message> |
1086 | 1113 | </context> |
2140 | 2167 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2141 | 2168 | <translation type="unfinished"/> |
2142 | 2169 | </message> |
2170 | <message> | |
2171 | <source>failed to open sync error id database</source> | |
2172 | <translation type="unfinished"/> | |
2173 | </message> | |
2143 | 2174 | </context> |
2144 | 2175 | <context> |
2145 | 2176 | <name>ReliablePostFileTask</name> |
2529 | 2560 | </message> |
2530 | 2561 | </context> |
2531 | 2562 | <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 "%1" is locked by %2</source> | |
2547 | <translation type="unfinished"/> | |
2548 | </message> | |
2549 | <message> | |
2550 | <source>Failed to get lock information for file "%1"</source> | |
2551 | <translation type="unfinished"/> | |
2552 | </message> | |
2553 | </context> | |
2554 | <context> | |
2555 | 2563 | <name>SeafileLinkDialog</name> |
2556 | 2564 | <message> |
2557 | 2565 | <source>%1 Internal Link</source> |
3015 | 3023 | <source>OK</source> |
3016 | 3024 | <translation type="unfinished"/> |
3017 | 3025 | </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> | |
3018 | 3034 | </context> |
3019 | 3035 | <context> |
3020 | 3036 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation type="unfinished"/> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | </message> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1093 | <translation type="unfinished"/> | |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1089 | 1116 | <translation type="unfinished"/> |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
2150 | 2177 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2151 | 2178 | <translation type="unfinished"/> |
2152 | 2179 | </message> |
2180 | <message> | |
2181 | <source>failed to open sync error id database</source> | |
2182 | <translation type="unfinished"/> | |
2183 | </message> | |
2153 | 2184 | </context> |
2154 | 2185 | <context> |
2155 | 2186 | <name>ReliablePostFileTask</name> |
2539 | 2570 | </message> |
2540 | 2571 | </context> |
2541 | 2572 | <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 "%1" is locked by %2</source> | |
2557 | <translation type="unfinished"/> | |
2558 | </message> | |
2559 | <message> | |
2560 | <source>Failed to get lock information for file "%1"</source> | |
2561 | <translation type="unfinished"/> | |
2562 | </message> | |
2563 | </context> | |
2564 | <context> | |
2565 | 2573 | <name>SeafileLinkDialog</name> |
2566 | 2574 | <message> |
2567 | 2575 | <source>%1 Internal Link</source> |
3025 | 3033 | <source>OK</source> |
3026 | 3034 | <translation>Rendben</translation> |
3027 | 3035 | </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> | |
3028 | 3044 | </context> |
3029 | 3045 | <context> |
3030 | 3046 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation type="unfinished"/> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | </message> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1093 | <translation type="unfinished"/> | |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1089 | 1116 | <translation type="unfinished"/> |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
2148 | 2175 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2149 | 2176 | <translation type="unfinished"/> |
2150 | 2177 | </message> |
2178 | <message> | |
2179 | <source>failed to open sync error id database</source> | |
2180 | <translation type="unfinished"/> | |
2181 | </message> | |
2151 | 2182 | </context> |
2152 | 2183 | <context> |
2153 | 2184 | <name>ReliablePostFileTask</name> |
2537 | 2568 | </message> |
2538 | 2569 | </context> |
2539 | 2570 | <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 "%1" is locked by %2</source> | |
2555 | <translation type="unfinished"/> | |
2556 | </message> | |
2557 | <message> | |
2558 | <source>Failed to get lock information for file "%1"</source> | |
2559 | <translation type="unfinished"/> | |
2560 | </message> | |
2561 | </context> | |
2562 | <context> | |
2563 | 2571 | <name>SeafileLinkDialog</name> |
2564 | 2572 | <message> |
2565 | 2573 | <source>%1 Internal Link</source> |
3023 | 3031 | <source>OK</source> |
3024 | 3032 | <translation>Í Lagi</translation> |
3025 | 3033 | </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> | |
3026 | 3042 | </context> |
3027 | 3043 | <context> |
3028 | 3044 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation type="unfinished"/> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Apri la cartella locale della Cache</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
2150 | 2177 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2151 | 2178 | <translation type="unfinished"/> |
2152 | 2179 | </message> |
2180 | <message> | |
2181 | <source>failed to open sync error id database</source> | |
2182 | <translation type="unfinished"/> | |
2183 | </message> | |
2153 | 2184 | </context> |
2154 | 2185 | <context> |
2155 | 2186 | <name>ReliablePostFileTask</name> |
2539 | 2570 | </message> |
2540 | 2571 | </context> |
2541 | 2572 | <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 "%1" is locked by %2</source> | |
2557 | <translation type="unfinished"/> | |
2558 | </message> | |
2559 | <message> | |
2560 | <source>Failed to get lock information for file "%1"</source> | |
2561 | <translation type="unfinished"/> | |
2562 | </message> | |
2563 | </context> | |
2564 | <context> | |
2565 | 2573 | <name>SeafileLinkDialog</name> |
2566 | 2574 | <message> |
2567 | 2575 | <source>%1 Internal Link</source> |
3025 | 3033 | <source>OK</source> |
3026 | 3034 | <translation>OK</translation> |
3027 | 3035 | </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> | |
3028 | 3044 | </context> |
3029 | 3045 | <context> |
3030 | 3046 | <name>SslConfirmDialog</name> |
855 | 855 | <source>Failed to get link</source> |
856 | 856 | <translation type="unfinished"/> |
857 | 857 | </message> |
858 | <message> | |
859 | <source>Failed to get upload link information for file "%1"</source> | |
860 | <translation type="unfinished"/> | |
861 | </message> | |
858 | 862 | </context> |
859 | 863 | <context> |
860 | 864 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | <source>Open Local Cache Folder</source> |
1087 | 1091 | <translation type="unfinished"/> |
1088 | 1092 | </message> |
1093 | <message> | |
1094 | <source>&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 "%1" is locked by %2</source> | |
1106 | <translation type="unfinished"/> | |
1107 | </message> | |
1108 | <message> | |
1109 | <source>Failed to get lock information for file "%1"</source> | |
1110 | <translation type="unfinished"/> | |
1111 | </message> | |
1112 | <message> | |
1113 | <source>Failed to get upload link for file "%1"</source> | |
1114 | <translation type="unfinished"/> | |
1115 | </message> | |
1089 | 1116 | </context> |
1090 | 1117 | <context> |
1091 | 1118 | <name>GetFileTask</name> |
2137 | 2164 | </message> |
2138 | 2165 | <message> |
2139 | 2166 | <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> | |
2140 | 2171 | <translation type="unfinished"/> |
2141 | 2172 | </message> |
2142 | 2173 | </context> |
2528 | 2559 | </message> |
2529 | 2560 | </context> |
2530 | 2561 | <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 "%1" is locked by %2</source> | |
2546 | <translation type="unfinished"/> | |
2547 | </message> | |
2548 | <message> | |
2549 | <source>Failed to get lock information for file "%1"</source> | |
2550 | <translation type="unfinished"/> | |
2551 | </message> | |
2552 | </context> | |
2553 | <context> | |
2554 | 2562 | <name>SeafileLinkDialog</name> |
2555 | 2563 | <message> |
2556 | 2564 | <source>%1 Internal Link</source> |
3014 | 3022 | <source>OK</source> |
3015 | 3023 | <translation type="unfinished"/> |
3016 | 3024 | </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> | |
3017 | 3033 | </context> |
3018 | 3034 | <context> |
3019 | 3035 | <name>SslConfirmDialog</name> |
858 | 858 | <source>Failed to get link</source> |
859 | 859 | <translation>링크 가져오기에 실패했습니다</translation> |
860 | 860 | </message> |
861 | <message> | |
862 | <source>Failed to get upload link information for file "%1"</source> | |
863 | <translation type="unfinished"/> | |
864 | </message> | |
861 | 865 | </context> |
862 | 866 | <context> |
863 | 867 | <name>FileBrowserProgressDialog</name> |
1088 | 1092 | <message> |
1089 | 1093 | <source>Open Local Cache Folder</source> |
1090 | 1094 | <translation>로컬 캐시 폴더 열기</translation> |
1095 | </message> | |
1096 | <message> | |
1097 | <source>&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 "%1" is locked by %2</source> | |
1109 | <translation type="unfinished"/> | |
1110 | </message> | |
1111 | <message> | |
1112 | <source>Failed to get lock information for file "%1"</source> | |
1113 | <translation type="unfinished"/> | |
1114 | </message> | |
1115 | <message> | |
1116 | <source>Failed to get upload link for file "%1"</source> | |
1117 | <translation type="unfinished"/> | |
1091 | 1118 | </message> |
1092 | 1119 | </context> |
1093 | 1120 | <context> |
2157 | 2184 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2158 | 2185 | <translation type="unfinished"/> |
2159 | 2186 | </message> |
2187 | <message> | |
2188 | <source>failed to open sync error id database</source> | |
2189 | <translation type="unfinished"/> | |
2190 | </message> | |
2160 | 2191 | </context> |
2161 | 2192 | <context> |
2162 | 2193 | <name>ReliablePostFileTask</name> |
2546 | 2577 | </message> |
2547 | 2578 | </context> |
2548 | 2579 | <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 "%1" is locked by %2</source> | |
2564 | <translation type="unfinished"/> | |
2565 | </message> | |
2566 | <message> | |
2567 | <source>Failed to get lock information for file "%1"</source> | |
2568 | <translation type="unfinished"/> | |
2569 | </message> | |
2570 | </context> | |
2571 | <context> | |
2572 | 2580 | <name>SeafileLinkDialog</name> |
2573 | 2581 | <message> |
2574 | 2582 | <source>%1 Internal Link</source> |
3033 | 3041 | <source>OK</source> |
3034 | 3042 | <translation>확인</translation> |
3035 | 3043 | </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> | |
3036 | 3052 | </context> |
3037 | 3053 | <context> |
3038 | 3054 | <name>SslConfirmDialog</name> |
851 | 851 | <source>Failed to get link</source> |
852 | 852 | <translation type="unfinished"/> |
853 | 853 | </message> |
854 | <message> | |
855 | <source>Failed to get upload link information for file "%1"</source> | |
856 | <translation type="unfinished"/> | |
857 | </message> | |
854 | 858 | </context> |
855 | 859 | <context> |
856 | 860 | <name>FileBrowserProgressDialog</name> |
1079 | 1083 | </message> |
1080 | 1084 | <message> |
1081 | 1085 | <source>Open Local Cache Folder</source> |
1086 | <translation type="unfinished"/> | |
1087 | </message> | |
1088 | <message> | |
1089 | <source>&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 "%1" is locked by %2</source> | |
1101 | <translation type="unfinished"/> | |
1102 | </message> | |
1103 | <message> | |
1104 | <source>Failed to get lock information for file "%1"</source> | |
1105 | <translation type="unfinished"/> | |
1106 | </message> | |
1107 | <message> | |
1108 | <source>Failed to get upload link for file "%1"</source> | |
1082 | 1109 | <translation type="unfinished"/> |
1083 | 1110 | </message> |
1084 | 1111 | </context> |
2134 | 2161 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2135 | 2162 | <translation type="unfinished"/> |
2136 | 2163 | </message> |
2164 | <message> | |
2165 | <source>failed to open sync error id database</source> | |
2166 | <translation type="unfinished"/> | |
2167 | </message> | |
2137 | 2168 | </context> |
2138 | 2169 | <context> |
2139 | 2170 | <name>ReliablePostFileTask</name> |
2521 | 2552 | </message> |
2522 | 2553 | </context> |
2523 | 2554 | <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 "%1" is locked by %2</source> | |
2539 | <translation type="unfinished"/> | |
2540 | </message> | |
2541 | <message> | |
2542 | <source>Failed to get lock information for file "%1"</source> | |
2543 | <translation type="unfinished"/> | |
2544 | </message> | |
2545 | </context> | |
2546 | <context> | |
2547 | 2555 | <name>SeafileLinkDialog</name> |
2548 | 2556 | <message> |
2549 | 2557 | <source>%1 Internal Link</source> |
3007 | 3015 | <source>OK</source> |
3008 | 3016 | <translation>Labi</translation> |
3009 | 3017 | </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> | |
3010 | 3026 | </context> |
3011 | 3027 | <context> |
3012 | 3028 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation type="unfinished"/> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | </message> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1093 | <translation type="unfinished"/> | |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1089 | 1116 | <translation type="unfinished"/> |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
2148 | 2175 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2149 | 2176 | <translation type="unfinished"/> |
2150 | 2177 | </message> |
2178 | <message> | |
2179 | <source>failed to open sync error id database</source> | |
2180 | <translation type="unfinished"/> | |
2181 | </message> | |
2151 | 2182 | </context> |
2152 | 2183 | <context> |
2153 | 2184 | <name>ReliablePostFileTask</name> |
2537 | 2568 | </message> |
2538 | 2569 | </context> |
2539 | 2570 | <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 "%1" is locked by %2</source> | |
2555 | <translation type="unfinished"/> | |
2556 | </message> | |
2557 | <message> | |
2558 | <source>Failed to get lock information for file "%1"</source> | |
2559 | <translation type="unfinished"/> | |
2560 | </message> | |
2561 | </context> | |
2562 | <context> | |
2563 | 2571 | <name>SeafileLinkDialog</name> |
2564 | 2572 | <message> |
2565 | 2573 | <source>%1 Internal Link</source> |
3023 | 3031 | <source>OK</source> |
3024 | 3032 | <translation type="unfinished"/> |
3025 | 3033 | </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> | |
3026 | 3042 | </context> |
3027 | 3043 | <context> |
3028 | 3044 | <name>SslConfirmDialog</name> |
855 | 855 | <source>Failed to get link</source> |
856 | 856 | <translation type="unfinished"/> |
857 | 857 | </message> |
858 | <message> | |
859 | <source>Failed to get upload link information for file "%1"</source> | |
860 | <translation type="unfinished"/> | |
861 | </message> | |
858 | 862 | </context> |
859 | 863 | <context> |
860 | 864 | <name>FileBrowserProgressDialog</name> |
1083 | 1087 | </message> |
1084 | 1088 | <message> |
1085 | 1089 | <source>Open Local Cache Folder</source> |
1090 | <translation type="unfinished"/> | |
1091 | </message> | |
1092 | <message> | |
1093 | <source>&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 "%1" is locked by %2</source> | |
1105 | <translation type="unfinished"/> | |
1106 | </message> | |
1107 | <message> | |
1108 | <source>Failed to get lock information for file "%1"</source> | |
1109 | <translation type="unfinished"/> | |
1110 | </message> | |
1111 | <message> | |
1112 | <source>Failed to get upload link for file "%1"</source> | |
1086 | 1113 | <translation type="unfinished"/> |
1087 | 1114 | </message> |
1088 | 1115 | </context> |
2145 | 2172 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2146 | 2173 | <translation type="unfinished"/> |
2147 | 2174 | </message> |
2175 | <message> | |
2176 | <source>failed to open sync error id database</source> | |
2177 | <translation type="unfinished"/> | |
2178 | </message> | |
2148 | 2179 | </context> |
2149 | 2180 | <context> |
2150 | 2181 | <name>ReliablePostFileTask</name> |
2534 | 2565 | </message> |
2535 | 2566 | </context> |
2536 | 2567 | <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 "%1" is locked by %2</source> | |
2552 | <translation type="unfinished"/> | |
2553 | </message> | |
2554 | <message> | |
2555 | <source>Failed to get lock information for file "%1"</source> | |
2556 | <translation type="unfinished"/> | |
2557 | </message> | |
2558 | </context> | |
2559 | <context> | |
2560 | 2568 | <name>SeafileLinkDialog</name> |
2561 | 2569 | <message> |
2562 | 2570 | <source>%1 Internal Link</source> |
3020 | 3028 | <source>OK</source> |
3021 | 3029 | <translation type="unfinished"/> |
3022 | 3030 | </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> | |
3023 | 3039 | </context> |
3024 | 3040 | <context> |
3025 | 3041 | <name>SslConfirmDialog</name> |
856 | 856 | <source>Failed to get link</source> |
857 | 857 | <translation type="unfinished"/> |
858 | 858 | </message> |
859 | <message> | |
860 | <source>Failed to get upload link information for file "%1"</source> | |
861 | <translation type="unfinished"/> | |
862 | </message> | |
859 | 863 | </context> |
860 | 864 | <context> |
861 | 865 | <name>FileBrowserProgressDialog</name> |
1085 | 1089 | </message> |
1086 | 1090 | <message> |
1087 | 1091 | <source>Open Local Cache Folder</source> |
1092 | <translation type="unfinished"/> | |
1093 | </message> | |
1094 | <message> | |
1095 | <source>&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 "%1" is locked by %2</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get lock information for file "%1"</source> | |
1111 | <translation type="unfinished"/> | |
1112 | </message> | |
1113 | <message> | |
1114 | <source>Failed to get upload link for file "%1"</source> | |
1088 | 1115 | <translation type="unfinished"/> |
1089 | 1116 | </message> |
1090 | 1117 | </context> |
2147 | 2174 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2148 | 2175 | <translation type="unfinished"/> |
2149 | 2176 | </message> |
2177 | <message> | |
2178 | <source>failed to open sync error id database</source> | |
2179 | <translation type="unfinished"/> | |
2180 | </message> | |
2150 | 2181 | </context> |
2151 | 2182 | <context> |
2152 | 2183 | <name>ReliablePostFileTask</name> |
2536 | 2567 | </message> |
2537 | 2568 | </context> |
2538 | 2569 | <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 "%1" is locked by %2</source> | |
2554 | <translation type="unfinished"/> | |
2555 | </message> | |
2556 | <message> | |
2557 | <source>Failed to get lock information for file "%1"</source> | |
2558 | <translation type="unfinished"/> | |
2559 | </message> | |
2560 | </context> | |
2561 | <context> | |
2562 | 2570 | <name>SeafileLinkDialog</name> |
2563 | 2571 | <message> |
2564 | 2572 | <source>%1 Internal Link</source> |
3023 | 3031 | <source>OK</source> |
3024 | 3032 | <translation>Ok</translation> |
3025 | 3033 | </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> | |
3026 | 3042 | </context> |
3027 | 3043 | <context> |
3028 | 3044 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation>Nie udało się pobrać łącza</translation> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Otwórz lokalny folder pamięci podręcznej</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
2156 | 2183 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2157 | 2184 | <translation type="unfinished"/> |
2158 | 2185 | </message> |
2186 | <message> | |
2187 | <source>failed to open sync error id database</source> | |
2188 | <translation type="unfinished"/> | |
2189 | </message> | |
2159 | 2190 | </context> |
2160 | 2191 | <context> |
2161 | 2192 | <name>ReliablePostFileTask</name> |
2545 | 2576 | </message> |
2546 | 2577 | </context> |
2547 | 2578 | <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 "%1" is locked by %2</source> | |
2563 | <translation type="unfinished"/> | |
2564 | </message> | |
2565 | <message> | |
2566 | <source>Failed to get lock information for file "%1"</source> | |
2567 | <translation type="unfinished"/> | |
2568 | </message> | |
2569 | </context> | |
2570 | <context> | |
2571 | 2579 | <name>SeafileLinkDialog</name> |
2572 | 2580 | <message> |
2573 | 2581 | <source>%1 Internal Link</source> |
3031 | 3039 | <source>OK</source> |
3032 | 3040 | <translation>OK</translation> |
3033 | 3041 | </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> | |
3034 | 3050 | </context> |
3035 | 3051 | <context> |
3036 | 3052 | <name>SslConfirmDialog</name> |
856 | 856 | <source>Failed to get link</source> |
857 | 857 | <translation type="unfinished"/> |
858 | 858 | </message> |
859 | <message> | |
860 | <source>Failed to get upload link information for file "%1"</source> | |
861 | <translation type="unfinished"/> | |
862 | </message> | |
859 | 863 | </context> |
860 | 864 | <context> |
861 | 865 | <name>FileBrowserProgressDialog</name> |
1085 | 1089 | </message> |
1086 | 1090 | <message> |
1087 | 1091 | <source>Open Local Cache Folder</source> |
1092 | <translation type="unfinished"/> | |
1093 | </message> | |
1094 | <message> | |
1095 | <source>&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 "%1" is locked by %2</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get lock information for file "%1"</source> | |
1111 | <translation type="unfinished"/> | |
1112 | </message> | |
1113 | <message> | |
1114 | <source>Failed to get upload link for file "%1"</source> | |
1088 | 1115 | <translation type="unfinished"/> |
1089 | 1116 | </message> |
1090 | 1117 | </context> |
2147 | 2174 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2148 | 2175 | <translation type="unfinished"/> |
2149 | 2176 | </message> |
2177 | <message> | |
2178 | <source>failed to open sync error id database</source> | |
2179 | <translation type="unfinished"/> | |
2180 | </message> | |
2150 | 2181 | </context> |
2151 | 2182 | <context> |
2152 | 2183 | <name>ReliablePostFileTask</name> |
2536 | 2567 | </message> |
2537 | 2568 | </context> |
2538 | 2569 | <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 "%1" is locked by %2</source> | |
2554 | <translation type="unfinished"/> | |
2555 | </message> | |
2556 | <message> | |
2557 | <source>Failed to get lock information for file "%1"</source> | |
2558 | <translation type="unfinished"/> | |
2559 | </message> | |
2560 | </context> | |
2561 | <context> | |
2562 | 2570 | <name>SeafileLinkDialog</name> |
2563 | 2571 | <message> |
2564 | 2572 | <source>%1 Internal Link</source> |
3023 | 3031 | <source>OK</source> |
3024 | 3032 | <translation>OK</translation> |
3025 | 3033 | </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> | |
3026 | 3042 | </context> |
3027 | 3043 | <context> |
3028 | 3044 | <name>SslConfirmDialog</name> |
853 | 853 | <source>Failed to get link</source> |
854 | 854 | <translation type="unfinished"/> |
855 | 855 | </message> |
856 | <message> | |
857 | <source>Failed to get upload link information for file "%1"</source> | |
858 | <translation type="unfinished"/> | |
859 | </message> | |
856 | 860 | </context> |
857 | 861 | <context> |
858 | 862 | <name>FileBrowserProgressDialog</name> |
1081 | 1085 | </message> |
1082 | 1086 | <message> |
1083 | 1087 | <source>Open Local Cache Folder</source> |
1088 | <translation type="unfinished"/> | |
1089 | </message> | |
1090 | <message> | |
1091 | <source>&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 "%1" is locked by %2</source> | |
1103 | <translation type="unfinished"/> | |
1104 | </message> | |
1105 | <message> | |
1106 | <source>Failed to get lock information for file "%1"</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get upload link for file "%1"</source> | |
1084 | 1111 | <translation type="unfinished"/> |
1085 | 1112 | </message> |
1086 | 1113 | </context> |
2140 | 2167 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2141 | 2168 | <translation type="unfinished"/> |
2142 | 2169 | </message> |
2170 | <message> | |
2171 | <source>failed to open sync error id database</source> | |
2172 | <translation type="unfinished"/> | |
2173 | </message> | |
2143 | 2174 | </context> |
2144 | 2175 | <context> |
2145 | 2176 | <name>ReliablePostFileTask</name> |
2529 | 2560 | </message> |
2530 | 2561 | </context> |
2531 | 2562 | <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 "%1" is locked by %2</source> | |
2547 | <translation type="unfinished"/> | |
2548 | </message> | |
2549 | <message> | |
2550 | <source>Failed to get lock information for file "%1"</source> | |
2551 | <translation type="unfinished"/> | |
2552 | </message> | |
2553 | </context> | |
2554 | <context> | |
2555 | 2563 | <name>SeafileLinkDialog</name> |
2556 | 2564 | <message> |
2557 | 2565 | <source>%1 Internal Link</source> |
3015 | 3023 | <source>OK</source> |
3016 | 3024 | <translation type="unfinished"/> |
3017 | 3025 | </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> | |
3018 | 3034 | </context> |
3019 | 3035 | <context> |
3020 | 3036 | <name>SslConfirmDialog</name> |
857 | 857 | <source>Failed to get link</source> |
858 | 858 | <translation>Не удалось получить ссылку</translation> |
859 | 859 | </message> |
860 | <message> | |
861 | <source>Failed to get upload link information for file "%1"</source> | |
862 | <translation type="unfinished"/> | |
863 | </message> | |
860 | 864 | </context> |
861 | 865 | <context> |
862 | 866 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1089 | 1093 | <translation>Открыть локальную папку кэша</translation> |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1116 | <translation type="unfinished"/> | |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
1092 | 1119 | <context> |
2156 | 2183 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2157 | 2184 | <translation>Папка, которая может содержать еще не загруженные файлы, перемещена в папку seafile-recycle-bin.</translation> |
2158 | 2185 | </message> |
2186 | <message> | |
2187 | <source>failed to open sync error id database</source> | |
2188 | <translation type="unfinished"/> | |
2189 | </message> | |
2159 | 2190 | </context> |
2160 | 2191 | <context> |
2161 | 2192 | <name>ReliablePostFileTask</name> |
2543 | 2574 | </message> |
2544 | 2575 | </context> |
2545 | 2576 | <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 "%1" is locked by %2</source> | |
2561 | <translation type="unfinished"/> | |
2562 | </message> | |
2563 | <message> | |
2564 | <source>Failed to get lock information for file "%1"</source> | |
2565 | <translation type="unfinished"/> | |
2566 | </message> | |
2567 | </context> | |
2568 | <context> | |
2569 | 2577 | <name>SeafileLinkDialog</name> |
2570 | 2578 | <message> |
2571 | 2579 | <source>%1 Internal Link</source> |
2703 | 2711 | </message> |
2704 | 2712 | <message> |
2705 | 2713 | <source>have some sync error</source> |
2706 | <translation type="unfinished"/> | |
2714 | <translation>есть некоторые ошибки при синхронизации</translation> | |
2707 | 2715 | </message> |
2708 | 2716 | </context> |
2709 | 2717 | <context> |
3029 | 3037 | <source>OK</source> |
3030 | 3038 | <translation>ОК</translation> |
3031 | 3039 | </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> | |
3032 | 3048 | </context> |
3033 | 3049 | <context> |
3034 | 3050 | <name>SslConfirmDialog</name> |
853 | 853 | <source>Failed to get link</source> |
854 | 854 | <translation type="unfinished"/> |
855 | 855 | </message> |
856 | <message> | |
857 | <source>Failed to get upload link information for file "%1"</source> | |
858 | <translation type="unfinished"/> | |
859 | </message> | |
856 | 860 | </context> |
857 | 861 | <context> |
858 | 862 | <name>FileBrowserProgressDialog</name> |
1081 | 1085 | </message> |
1082 | 1086 | <message> |
1083 | 1087 | <source>Open Local Cache Folder</source> |
1088 | <translation type="unfinished"/> | |
1089 | </message> | |
1090 | <message> | |
1091 | <source>&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 "%1" is locked by %2</source> | |
1103 | <translation type="unfinished"/> | |
1104 | </message> | |
1105 | <message> | |
1106 | <source>Failed to get lock information for file "%1"</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get upload link for file "%1"</source> | |
1084 | 1111 | <translation type="unfinished"/> |
1085 | 1112 | </message> |
1086 | 1113 | </context> |
2140 | 2167 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2141 | 2168 | <translation type="unfinished"/> |
2142 | 2169 | </message> |
2170 | <message> | |
2171 | <source>failed to open sync error id database</source> | |
2172 | <translation type="unfinished"/> | |
2173 | </message> | |
2143 | 2174 | </context> |
2144 | 2175 | <context> |
2145 | 2176 | <name>ReliablePostFileTask</name> |
2529 | 2560 | </message> |
2530 | 2561 | </context> |
2531 | 2562 | <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 "%1" is locked by %2</source> | |
2547 | <translation type="unfinished"/> | |
2548 | </message> | |
2549 | <message> | |
2550 | <source>Failed to get lock information for file "%1"</source> | |
2551 | <translation type="unfinished"/> | |
2552 | </message> | |
2553 | </context> | |
2554 | <context> | |
2555 | 2563 | <name>SeafileLinkDialog</name> |
2556 | 2564 | <message> |
2557 | 2565 | <source>%1 Internal Link</source> |
3015 | 3023 | <source>OK</source> |
3016 | 3024 | <translation type="unfinished"/> |
3017 | 3025 | </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> | |
3018 | 3034 | </context> |
3019 | 3035 | <context> |
3020 | 3036 | <name>SslConfirmDialog</name> |
847 | 847 | <source>Failed to get link</source> |
848 | 848 | <translation type="unfinished"/> |
849 | 849 | </message> |
850 | <message> | |
851 | <source>Failed to get upload link information for file "%1"</source> | |
852 | <translation type="unfinished"/> | |
853 | </message> | |
850 | 854 | </context> |
851 | 855 | <context> |
852 | 856 | <name>FileBrowserProgressDialog</name> |
1075 | 1079 | </message> |
1076 | 1080 | <message> |
1077 | 1081 | <source>Open Local Cache Folder</source> |
1082 | <translation type="unfinished"/> | |
1083 | </message> | |
1084 | <message> | |
1085 | <source>&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 "%1" is locked by %2</source> | |
1097 | <translation type="unfinished"/> | |
1098 | </message> | |
1099 | <message> | |
1100 | <source>Failed to get lock information for file "%1"</source> | |
1101 | <translation type="unfinished"/> | |
1102 | </message> | |
1103 | <message> | |
1104 | <source>Failed to get upload link for file "%1"</source> | |
1078 | 1105 | <translation type="unfinished"/> |
1079 | 1106 | </message> |
1080 | 1107 | </context> |
2129 | 2156 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2130 | 2157 | <translation type="unfinished"/> |
2131 | 2158 | </message> |
2159 | <message> | |
2160 | <source>failed to open sync error id database</source> | |
2161 | <translation type="unfinished"/> | |
2162 | </message> | |
2132 | 2163 | </context> |
2133 | 2164 | <context> |
2134 | 2165 | <name>ReliablePostFileTask</name> |
2516 | 2547 | </message> |
2517 | 2548 | </context> |
2518 | 2549 | <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 "%1" is locked by %2</source> | |
2534 | <translation type="unfinished"/> | |
2535 | </message> | |
2536 | <message> | |
2537 | <source>Failed to get lock information for file "%1"</source> | |
2538 | <translation type="unfinished"/> | |
2539 | </message> | |
2540 | </context> | |
2541 | <context> | |
2542 | 2550 | <name>SeafileLinkDialog</name> |
2543 | 2551 | <message> |
2544 | 2552 | <source>%1 Internal Link</source> |
3000 | 3008 | </message> |
3001 | 3009 | <message> |
3002 | 3010 | <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> | |
3003 | 3019 | <translation type="unfinished"/> |
3004 | 3020 | </message> |
3005 | 3021 | </context> |
858 | 858 | <source>Failed to get link</source> |
859 | 859 | <translation type="unfinished"/> |
860 | 860 | </message> |
861 | <message> | |
862 | <source>Failed to get upload link information for file "%1"</source> | |
863 | <translation type="unfinished"/> | |
864 | </message> | |
861 | 865 | </context> |
862 | 866 | <context> |
863 | 867 | <name>FileBrowserProgressDialog</name> |
1086 | 1090 | </message> |
1087 | 1091 | <message> |
1088 | 1092 | <source>Open Local Cache Folder</source> |
1093 | <translation type="unfinished"/> | |
1094 | </message> | |
1095 | <message> | |
1096 | <source>&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 "%1" is locked by %2</source> | |
1108 | <translation type="unfinished"/> | |
1109 | </message> | |
1110 | <message> | |
1111 | <source>Failed to get lock information for file "%1"</source> | |
1112 | <translation type="unfinished"/> | |
1113 | </message> | |
1114 | <message> | |
1115 | <source>Failed to get upload link for file "%1"</source> | |
1089 | 1116 | <translation type="unfinished"/> |
1090 | 1117 | </message> |
1091 | 1118 | </context> |
2148 | 2175 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2149 | 2176 | <translation type="unfinished"/> |
2150 | 2177 | </message> |
2178 | <message> | |
2179 | <source>failed to open sync error id database</source> | |
2180 | <translation type="unfinished"/> | |
2181 | </message> | |
2151 | 2182 | </context> |
2152 | 2183 | <context> |
2153 | 2184 | <name>ReliablePostFileTask</name> |
2537 | 2568 | </message> |
2538 | 2569 | </context> |
2539 | 2570 | <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 "%1" is locked by %2</source> | |
2555 | <translation type="unfinished"/> | |
2556 | </message> | |
2557 | <message> | |
2558 | <source>Failed to get lock information for file "%1"</source> | |
2559 | <translation type="unfinished"/> | |
2560 | </message> | |
2561 | </context> | |
2562 | <context> | |
2563 | 2571 | <name>SeafileLinkDialog</name> |
2564 | 2572 | <message> |
2565 | 2573 | <source>%1 Internal Link</source> |
3023 | 3031 | <source>OK</source> |
3024 | 3032 | <translation>Tamam</translation> |
3025 | 3033 | </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> | |
3026 | 3042 | </context> |
3027 | 3043 | <context> |
3028 | 3044 | <name>SslConfirmDialog</name> |
853 | 853 | <source>Failed to get link</source> |
854 | 854 | <translation type="unfinished"/> |
855 | 855 | </message> |
856 | <message> | |
857 | <source>Failed to get upload link information for file "%1"</source> | |
858 | <translation type="unfinished"/> | |
859 | </message> | |
856 | 860 | </context> |
857 | 861 | <context> |
858 | 862 | <name>FileBrowserProgressDialog</name> |
1081 | 1085 | </message> |
1082 | 1086 | <message> |
1083 | 1087 | <source>Open Local Cache Folder</source> |
1088 | <translation type="unfinished"/> | |
1089 | </message> | |
1090 | <message> | |
1091 | <source>&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 "%1" is locked by %2</source> | |
1103 | <translation type="unfinished"/> | |
1104 | </message> | |
1105 | <message> | |
1106 | <source>Failed to get lock information for file "%1"</source> | |
1107 | <translation type="unfinished"/> | |
1108 | </message> | |
1109 | <message> | |
1110 | <source>Failed to get upload link for file "%1"</source> | |
1084 | 1111 | <translation type="unfinished"/> |
1085 | 1112 | </message> |
1086 | 1113 | </context> |
2140 | 2167 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2141 | 2168 | <translation type="unfinished"/> |
2142 | 2169 | </message> |
2170 | <message> | |
2171 | <source>failed to open sync error id database</source> | |
2172 | <translation type="unfinished"/> | |
2173 | </message> | |
2143 | 2174 | </context> |
2144 | 2175 | <context> |
2145 | 2176 | <name>ReliablePostFileTask</name> |
2529 | 2560 | </message> |
2530 | 2561 | </context> |
2531 | 2562 | <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 "%1" is locked by %2</source> | |
2547 | <translation type="unfinished"/> | |
2548 | </message> | |
2549 | <message> | |
2550 | <source>Failed to get lock information for file "%1"</source> | |
2551 | <translation type="unfinished"/> | |
2552 | </message> | |
2553 | </context> | |
2554 | <context> | |
2555 | 2563 | <name>SeafileLinkDialog</name> |
2556 | 2564 | <message> |
2557 | 2565 | <source>%1 Internal Link</source> |
3015 | 3023 | <source>OK</source> |
3016 | 3024 | <translation type="unfinished"/> |
3017 | 3025 | </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> | |
3018 | 3034 | </context> |
3019 | 3035 | <context> |
3020 | 3036 | <name>SslConfirmDialog</name> |
852 | 852 | <source>Failed to get link</source> |
853 | 853 | <translation>获取链接失败</translation> |
854 | 854 | </message> |
855 | <message> | |
856 | <source>Failed to get upload link information for file "%1"</source> | |
857 | <translation>无法获取文件 "%1" 的上传链接</translation> | |
858 | </message> | |
855 | 859 | </context> |
856 | 860 | <context> |
857 | 861 | <name>FileBrowserProgressDialog</name> |
1081 | 1085 | <message> |
1082 | 1086 | <source>Open Local Cache Folder</source> |
1083 | 1087 | <translation>打开本地缓存目录</translation> |
1088 | </message> | |
1089 | <message> | |
1090 | <source>&Generate %1 Upload Link</source> | |
1091 | <translation>&获取 %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 "%1" is locked by %2</source> | |
1102 | <translation>文件 "%1" 被 %2 锁定</translation> | |
1103 | </message> | |
1104 | <message> | |
1105 | <source>Failed to get lock information for file "%1"</source> | |
1106 | <translation>获取文件 "%1" 的锁定信息失败</translation> | |
1107 | </message> | |
1108 | <message> | |
1109 | <source>Failed to get upload link for file "%1"</source> | |
1110 | <translation>获取文件 "%1" 的上传链接失败</translation> | |
1084 | 1111 | </message> |
1085 | 1112 | </context> |
1086 | 1113 | <context> |
2148 | 2175 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2149 | 2176 | <translation>一个文件夹中包含未上传的文件,文件夹被移动到 seafile-recycle-bin 文件夹。</translation> |
2150 | 2177 | </message> |
2178 | <message> | |
2179 | <source>failed to open sync error id database</source> | |
2180 | <translation>获取同步错误标识数据库失败</translation> | |
2181 | </message> | |
2151 | 2182 | </context> |
2152 | 2183 | <context> |
2153 | 2184 | <name>ReliablePostFileTask</name> |
2535 | 2566 | </message> |
2536 | 2567 | </context> |
2537 | 2568 | <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 "%1" is locked by %2</source> | |
2553 | <translation>文件 %1 被 %2 锁定</translation> | |
2554 | </message> | |
2555 | <message> | |
2556 | <source>Failed to get lock information for file "%1"</source> | |
2557 | <translation>获得文件 %1 的锁定信息失败</translation> | |
2558 | </message> | |
2559 | </context> | |
2560 | <context> | |
2561 | 2569 | <name>SeafileLinkDialog</name> |
2562 | 2570 | <message> |
2563 | 2571 | <source>%1 Internal Link</source> |
3021 | 3029 | <source>OK</source> |
3022 | 3030 | <translation>确认</translation> |
3023 | 3031 | </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> | |
3024 | 3040 | </context> |
3025 | 3041 | <context> |
3026 | 3042 | <name>SslConfirmDialog</name> |
859 | 859 | <source>Failed to get link</source> |
860 | 860 | <translation type="unfinished"/> |
861 | 861 | </message> |
862 | <message> | |
863 | <source>Failed to get upload link information for file "%1"</source> | |
864 | <translation type="unfinished"/> | |
865 | </message> | |
862 | 866 | </context> |
863 | 867 | <context> |
864 | 868 | <name>FileBrowserProgressDialog</name> |
1087 | 1091 | </message> |
1088 | 1092 | <message> |
1089 | 1093 | <source>Open Local Cache Folder</source> |
1094 | <translation type="unfinished"/> | |
1095 | </message> | |
1096 | <message> | |
1097 | <source>&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 "%1" is locked by %2</source> | |
1109 | <translation type="unfinished"/> | |
1110 | </message> | |
1111 | <message> | |
1112 | <source>Failed to get lock information for file "%1"</source> | |
1113 | <translation type="unfinished"/> | |
1114 | </message> | |
1115 | <message> | |
1116 | <source>Failed to get upload link for file "%1"</source> | |
1090 | 1117 | <translation type="unfinished"/> |
1091 | 1118 | </message> |
1092 | 1119 | </context> |
2149 | 2176 | <source>A folder that may contain not-yet-uploaded files is moved to seafile-recycle-bin folder.</source> |
2150 | 2177 | <translation type="unfinished"/> |
2151 | 2178 | </message> |
2179 | <message> | |
2180 | <source>failed to open sync error id database</source> | |
2181 | <translation type="unfinished"/> | |
2182 | </message> | |
2152 | 2183 | </context> |
2153 | 2184 | <context> |
2154 | 2185 | <name>ReliablePostFileTask</name> |
2539 | 2570 | </message> |
2540 | 2571 | </context> |
2541 | 2572 | <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 "%1" is locked by %2</source> | |
2557 | <translation type="unfinished"/> | |
2558 | </message> | |
2559 | <message> | |
2560 | <source>Failed to get lock information for file "%1"</source> | |
2561 | <translation type="unfinished"/> | |
2562 | </message> | |
2563 | </context> | |
2564 | <context> | |
2565 | 2573 | <name>SeafileLinkDialog</name> |
2566 | 2574 | <message> |
2567 | 2575 | <source>%1 Internal Link</source> |
3025 | 3033 | <source>OK</source> |
3026 | 3034 | <translation>確認</translation> |
3027 | 3035 | </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> | |
3028 | 3044 | </context> |
3029 | 3045 | <context> |
3030 | 3046 | <name>SslConfirmDialog</name> |
20 | 20 | #include "settings-mgr.h" |
21 | 21 | |
22 | 22 | namespace { |
23 | const char *kRepoRelayAddrProperty = "relay-address"; | |
23 | const char *kRepoServerUrlProperty = "server-url"; | |
24 | 24 | const char *kVersionKeyName = "version"; |
25 | 25 | const char *kFeaturesKeyName = "features"; |
26 | 26 | const char *kEncryptedLibraryVersionName = "encrypted_library_version"; |
102 | 102 | for (size_t i = 0; i < repos.size(); i++) { |
103 | 103 | LocalRepo repo = repos[i]; |
104 | 104 | 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) { | |
106 | 106 | continue; |
107 | 107 | } |
108 | 108 | if (QUrl(repo_server_url).host() != account.serverUrl.host()) { |
663 | 663 | QMutexLocker cache_lock(&accounts_cache_mutex_); |
664 | 664 | |
665 | 665 | 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) { | |
668 | 668 | return Account(); |
669 | 669 | } |
670 | ||
670 | QString server_host = QUrl(server_url).host(); | |
671 | 671 | for (size_t i = 0; i < accounts.size(); i++) { |
672 | 672 | const Account& account = accounts[i]; |
673 | if (account.serverUrl.host() == relay_addr) { | |
673 | if (account.serverUrl.host() == server_host) { | |
674 | 674 | accounts_cache_[repo_id] = account; |
675 | 675 | break; |
676 | 676 | } |
7 | 7 | #include "open-local-helper.h" |
8 | 8 | #include "ui/main-window.h" |
9 | 9 | #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 | // } | |
21 | 22 | |
22 | 23 | Application::Application (int &argc, char **argv):QApplication(argc, argv) |
23 | 24 | { |
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); | |
27 | 28 | |
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 | // } | |
34 | 35 | } |
35 | 36 | |
36 | 37 | bool Application::event(QEvent *e) |
30 | 30 | return; |
31 | 31 | } |
32 | 32 | |
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); | |
40 | 36 | GetLoginTokenRequest *req = new GetLoginTokenRequest(account, next); |
41 | 37 | |
42 | 38 | connect(req, SIGNAL(success(const QString&)), |
163 | 163 | |
164 | 164 | connect(listener_thread_, SIGNAL(showLockedBy(const QString&, const QString&)), |
165 | 165 | 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&))); | |
166 | 169 | } |
167 | 170 | |
168 | 171 | void SeafileExtensionHandler::start() |
305 | 308 | LockFileRequest *req = qobject_cast<LockFileRequest *>(sender()); |
306 | 309 | QString str = req->lock() ? tr("Failed to lock file") : tr("Failed to unlock file"); |
307 | 310 | 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(); | |
308 | 346 | } |
309 | 347 | |
310 | 348 | void SeafileExtensionHandler::showLockedBy(const QString& repo_id, const QString& path_in_repo) |
410 | 448 | this, SIGNAL(openUrlWithAutoLogin(const QUrl&))); |
411 | 449 | connect(t, SIGNAL(showLockedBy(const QString&, const QString&)), |
412 | 450 | this, SIGNAL(showLockedBy(const QString&, const QString&))); |
451 | connect(t, SIGNAL(getUploadLink(const QString&, const QString&)), | |
452 | this, SIGNAL(getUploadLink(const QString&, const QString&))); | |
413 | 453 | t->start(); |
414 | 454 | } |
415 | 455 | |
450 | 490 | handleShowHistory(args); |
451 | 491 | } else if (cmd == "show-locked-by") { |
452 | 492 | handleShowLockedBy(args); |
493 | } else if (cmd == "get-upload-link") { | |
494 | handleGetUploadLink(args); | |
453 | 495 | } else { |
454 | 496 | qWarning ("[ext] unknown request command: %s", cmd.toUtf8().data()); |
455 | 497 | } |
685 | 727 | } |
686 | 728 | } |
687 | 729 | |
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 | ||
688 | 747 | SINGLETON_IMPL(ReposInfoCache) |
689 | 748 | |
690 | 749 | ReposInfoCache::ReposInfoCache(QObject * parent) |
22 | 22 | class SeafileExtensionHandler : public QObject { |
23 | 23 | SINGLETON_DEFINE(SeafileExtensionHandler) |
24 | 24 | Q_OBJECT |
25 | ||
25 | 26 | public: |
26 | 27 | SeafileExtensionHandler(); |
27 | 28 | void start(); |
44 | 45 | void openUrlWithAutoLogin(const QUrl& url); |
45 | 46 | void onGetSmartLinkSuccess(const QString& smart_link, const QString& protocol_link); |
46 | 47 | 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); | |
47 | 51 | void showLockedBy(const QString& repo_id, const QString& path_in_repo); |
48 | 52 | void onGetFileLockInfoSuccess(bool found, const QString &owner); |
49 | 53 | void onGetFileLockInfoFailed(const ApiError& error); |
79 | 83 | bool to_group); |
80 | 84 | void openUrlWithAutoLogin(const QUrl& url); |
81 | 85 | void showLockedBy(const QString& repo_id, const QString& path_in_repo); |
86 | void getUploadLink(const QString& repo_id, const QString& path_in_repo); | |
82 | 87 | |
83 | 88 | private: |
84 | 89 | void servePipeInNewThread(HANDLE pipe); |
108 | 113 | bool to_group); |
109 | 114 | void openUrlWithAutoLogin(const QUrl& url); |
110 | 115 | void showLockedBy(const QString& repo_id, const QString& path_in_repo); |
116 | void getUploadLink(const QString& repo_id, const QString& path_in_repo); | |
111 | 117 | |
112 | 118 | private: |
113 | 119 | HANDLE pipe_; |
123 | 129 | void handlePrivateShare(const QStringList& args, bool to_group); |
124 | 130 | void handleShowHistory(const QStringList& args); |
125 | 131 | void handleShowLockedBy(const QStringList& args); |
132 | void handleGetUploadLink(const QStringList& args); | |
126 | 133 | }; |
127 | 134 | |
128 | 135 | class ReposInfoCache : public QObject { |
196 | 196 | this, SLOT(onGetDirentShareToUserOrGroup(const SeafDirent&, bool))); |
197 | 197 | connect(table_view_, SIGNAL(direntShareSeafile(const SeafDirent&)), |
198 | 198 | this, SLOT(onGetDirentShareSeafile(const SeafDirent&))); |
199 | connect(table_view_, SIGNAL(direntUploadLink(const SeafDirent&)), | |
200 | this, SLOT(onGetDirentUploadLink(const SeafDirent&))); | |
199 | 201 | connect(table_view_, SIGNAL(direntUpdate(const SeafDirent&)), |
200 | 202 | this, SLOT(onGetDirentUpdate(const SeafDirent&))); |
201 | 203 | connect(table_view_, SIGNAL(direntPaste()), |
1230 | 1232 | dialog.exec(); |
1231 | 1233 | } |
1232 | 1234 | |
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 | } | |
1233 | 1263 | void FileBrowserDialog::onGetDirentShareSeafile(const SeafDirent& dirent) |
1234 | 1264 | { |
1235 | 1265 | QString repo_id = repo_.id; |
101 | 101 | void onGetDirentShare(const SeafDirent& dirent); |
102 | 102 | void onGetDirentShareToUserOrGroup(const SeafDirent& dirent, bool to_group); |
103 | 103 | void onGetDirentShareSeafile(const SeafDirent& dirent); |
104 | void onGetDirentUploadLink(const SeafDirent& dirent); | |
105 | void onGetUploadLinkSuccess(const QString& upload_link); | |
106 | void onGetUploadLinkFailed(const ApiError&); | |
104 | 107 | void onGetDirentUpdate(const SeafDirent& dirent); |
105 | 108 | void onGetDirentsPaste(); |
106 | 109 | void onGetSyncSubdirectory(const QString &folder_name); |
23 | 23 | const char kRemoveDirentsURL[] = "api2/repos/%1/fileops/delete/"; |
24 | 24 | const char kGetFileUploadedBytesUrl[] = "api/v2.1/repos/%1/file-uploaded-bytes/"; |
25 | 25 | const char kGetSmartLink[] = "api/v2.1/smart-link/"; |
26 | const char kGetUploadLinkUrl[] = "api/v2.1/upload-links/"; | |
27 | ||
26 | 28 | //const char kGetFileFromRevisionUrl[] = "api2/repos/%1/file/revision/"; |
27 | 29 | //const char kGetFileDetailUrl[] = "api2/repos/%1/file/detail/"; |
28 | 30 | //const char kGetFileHistoryUrl[] = "api2/repos/%1/file/history/"; |
508 | 510 | } |
509 | 511 | emit success(false, ""); |
510 | 512 | } |
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 | } |
416 | 416 | QScopedPointer<GetDirentsRequest, QScopedPointerDeleteLater> dirents_req_; |
417 | 417 | }; |
418 | 418 | |
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 | ||
419 | 438 | #endif // SEAFILE_CLIENT_FILE_BROWSER_REQUESTS_H |
367 | 367 | this, SLOT(onShare())); |
368 | 368 | share_action_->setShortcut(Qt::ALT + Qt::Key_G); |
369 | 369 | |
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 | ||
370 | 375 | share_to_user_action_ = new QAction(tr("Share to User"), this); |
371 | 376 | connect(share_to_user_action_, SIGNAL(triggered()), |
372 | 377 | this, SLOT(onShareToUser())); |
382 | 387 | |
383 | 388 | if (parent_->repo_.encrypted) { |
384 | 389 | share_action_->setEnabled(false); |
390 | upload_link_action_->setEnabled(false); | |
385 | 391 | share_to_user_action_->setEnabled(false); |
386 | 392 | share_to_group_action_->setEnabled(false); |
387 | 393 | } |
431 | 437 | context_menu_->addSeparator(); |
432 | 438 | context_menu_->addAction(saveas_action_); |
433 | 439 | context_menu_->addAction(share_action_); |
440 | context_menu_->addAction(upload_link_action_); | |
434 | 441 | context_menu_->addAction(share_seafile_action_); |
435 | 442 | context_menu_->addAction(share_to_user_action_); |
436 | 443 | context_menu_->addAction(share_to_group_action_); |
549 | 556 | lock_action_->setVisible(false); |
550 | 557 | rename_action_->setVisible(false); |
551 | 558 | share_action_->setVisible(false); |
559 | upload_link_action_->setVisible(false); | |
552 | 560 | share_seafile_action_->setVisible(false); |
553 | 561 | share_to_user_action_->setVisible(false); |
554 | 562 | share_to_group_action_->setVisible(false); |
597 | 605 | sync_subdirectory_action_->setVisible(true); |
598 | 606 | share_to_user_action_->setVisible(true); |
599 | 607 | share_to_group_action_->setVisible(true); |
608 | upload_link_action_->setVisible(true); | |
600 | 609 | } else { |
601 | 610 | if (item_->locked_by_me) { |
602 | 611 | lock_action_->setText(tr("Un&lock")); |
622 | 631 | sync_subdirectory_action_->setVisible(false); |
623 | 632 | share_to_user_action_->setVisible(false); |
624 | 633 | share_to_group_action_->setVisible(false); |
634 | upload_link_action_->setVisible(false); | |
625 | 635 | |
626 | 636 | if (TransferManager::instance()->getDownloadTask(parent_->repo_.id, |
627 | 637 | ::pathJoin(parent_->current_path_, dirent->name))) { |
772 | 782 | return; |
773 | 783 | } |
774 | 784 | 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_); | |
775 | 796 | } |
776 | 797 | |
777 | 798 | void FileTableView::onShareToUser() |
47 | 47 | void direntShare(const SeafDirent& dirent); |
48 | 48 | void direntShareToUserOrGroup(const SeafDirent& dirent, bool to_group); |
49 | 49 | void direntShareSeafile(const SeafDirent& dirent); |
50 | void direntUploadLink(const SeafDirent& dirent); | |
50 | 51 | void direntPaste(); |
51 | 52 | |
52 | 53 | void cancelDownload(const SeafDirent& dirent); |
63 | 64 | void onRename(); |
64 | 65 | void onRemove(); |
65 | 66 | void onShare(); |
67 | void onGenUploadLink(); | |
66 | 68 | void onShareToUser(); |
67 | 69 | void onShareToGroup(); |
68 | 70 | void onShareSeafile(); |
104 | 106 | QAction *rename_action_; |
105 | 107 | QAction *remove_action_; |
106 | 108 | QAction *share_action_; |
109 | QAction *upload_link_action_; | |
107 | 110 | QAction *share_to_user_action_; |
108 | 111 | QAction *share_to_group_action_; |
109 | 112 | QAction *share_seafile_action_; |
3 | 3 | #include <QtWidgets> |
4 | 4 | #include "utils/utils-mac.h" |
5 | 5 | |
6 | SharedLinkDialog::SharedLinkDialog(const QString &text, QWidget *parent) | |
6 | SharedLinkDialog::SharedLinkDialog(const QString &text, QWidget *parent, bool is_shared_link) | |
7 | 7 | : text_(text) |
8 | 8 | { |
9 | setWindowTitle(tr("Share Link")); | |
9 | if (is_shared_link) { | |
10 | setWindowTitle(tr("Share Link")); | |
11 | } else { | |
12 | setWindowTitle(tr("Upload Link")); | |
13 | } | |
10 | 14 | setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); |
11 | 15 | setWindowIcon(QIcon(":/images/seafile.png")); |
12 | 16 | QVBoxLayout *layout = new QVBoxLayout; |
13 | 17 | |
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 | } | |
15 | 24 | layout->addWidget(label); |
16 | 25 | layout->setSpacing(5); |
17 | 26 | layout->setContentsMargins(9, 9, 9, 9); |
25 | 34 | QHBoxLayout *hlayout = new QHBoxLayout; |
26 | 35 | |
27 | 36 | QCheckBox *is_download_checked = new QCheckBox(tr("Direct Download")); |
37 | if (!is_shared_link) { | |
38 | is_download_checked->hide(); | |
39 | } | |
28 | 40 | connect(is_download_checked, SIGNAL(stateChanged(int)), |
29 | 41 | this, SLOT(onDownloadStateChanged(int))); |
30 | 42 | hlayout->addWidget(is_download_checked); |
6 | 6 | { |
7 | 7 | Q_OBJECT |
8 | 8 | public: |
9 | SharedLinkDialog(const QString &text, QWidget *parent); | |
9 | SharedLinkDialog(const QString &text, QWidget *parent, bool is_shared_link = true); | |
10 | 10 | |
11 | 11 | private slots: |
12 | 12 | void onCopyText(); |
69 | 69 | static std::unique_ptr<GetSharedLinkRequest, QtLaterDeleter> get_shared_link_req_; |
70 | 70 | static std::unique_ptr<LockFileRequest, QtLaterDeleter> lock_file_req_; |
71 | 71 | static std::unique_ptr<GetFileLockInfoRequest, QtLaterDeleter> get_lock_info_req_; |
72 | static std::unique_ptr<GetUploadLinkRequest, QtLaterDeleter> get_upload_link_req_; | |
72 | 73 | |
73 | 74 | FinderSyncHost::FinderSyncHost() : rpc_client_(new SeafileRpcClient) { |
74 | 75 | rpc_client_->tryConnectDaemon(); |
357 | 358 | const QString file = ::getBaseName(get_lock_info_req_->path()); |
358 | 359 | seafApplet->messageBox(tr("Failed to get lock information for file \"%1\"").arg(file)); |
359 | 360 | } |
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 | } |
33 | 33 | void onGetFileLockInfoFailed(const ApiError& error); |
34 | 34 | void onGetSmartLinkSuccess(const QString& smart_link, const QString& protocol_link); |
35 | 35 | 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 | ||
36 | 40 | private: |
37 | 41 | bool lookUpFileInformation(const QString &path, QString *repo_id, Account *account, QString *path_in_repo); |
38 | 42 | SeafileRpcClient *rpc_client_; |
30 | 30 | DoUnlockFile = 5, |
31 | 31 | DoShowFileHistory = 6, |
32 | 32 | DoShowFileLockedBy = 7, |
33 | DoGetUploadLink = 8, | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | struct mach_msg_command_send_t { |
257 | 258 | Qt::QueuedConnection, |
258 | 259 | Q_ARG(QString, msg->body)); |
259 | 260 | break; |
261 | case DoGetUploadLink: | |
262 | QMetaObject::invokeMethod(finder_sync_host_.get(), "doGetUploadLink", | |
263 | Qt::QueuedConnection, | |
264 | Q_ARG(QString, msg->body)); | |
265 | break; | |
260 | 266 | default: |
261 | 267 | qWarning("[FinderSync] received unknown command %u", msg->command); |
262 | 268 | break; |
179 | 179 | const int kIntervalForUpdateRepoProperty = 1000; |
180 | 180 | |
181 | 181 | const char *kRepoServerUrlProperty = "server-url"; |
182 | const char *kRepoRelayAddrProperty = "relay-address"; | |
183 | 182 | |
184 | 183 | } // namespace |
185 | 184 | |
638 | 637 | for (size_t i = 0; i < repos.size(); i++) { |
639 | 638 | const LocalRepo& repo = repos[i]; |
640 | 639 | QString repo_server_url; |
641 | QString relay_addr; | |
640 | QString server_url; | |
642 | 641 | if (rpc_client_->getRepoProperty(repo.id, kRepoServerUrlProperty, &repo_server_url) < 0) { |
643 | 642 | continue; |
644 | 643 | } |
645 | 644 | if (!repo_server_url.isEmpty()) { |
646 | 645 | continue; |
647 | 646 | } |
648 | if (rpc_client_->getRepoProperty(repo.id, kRepoRelayAddrProperty, &relay_addr) < 0) { | |
647 | if (rpc_client_->getRepoProperty(repo.id, kRepoServerUrlProperty, &server_url) < 0) { | |
649 | 648 | continue; |
650 | 649 | } |
650 | ||
651 | QString server_host = QUrl(server_url).host(); | |
651 | 652 | for (size_t i = 0; i < accounts.size(); i++) { |
652 | 653 | const Account& account = accounts[i]; |
653 | if (account.serverUrl.host() == relay_addr) { | |
654 | if (account.serverUrl.host() == server_host) { | |
654 | 655 | QUrl url(account.serverUrl); |
655 | 656 | url.setPath("/"); |
656 | 657 | rpc_client_->setRepoProperty(repo.id, kRepoServerUrlProperty, url.toString()); |
545 | 545 | if (!account.isAtLeastVersion(4, 2, 0)) { |
546 | 546 | QDesktopServices::openUrl(account.getAbsoluteUrl("repo/" + selected_repo_.id)); |
547 | 547 | } else { |
548 | AutoLoginService::instance()->startAutoLogin("/#common/lib/" + selected_repo_.id + "/"); | |
548 | AutoLoginService::instance()->startAutoLogin("/library/" + selected_repo_.id + "/" + selected_repo_.name + "/"); | |
549 | 549 | } |
550 | 550 | } |
551 | 551 | } |
538 | 538 | { |
539 | 539 | QString url; |
540 | 540 | 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"; | |
542 | 542 | } 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"; | |
544 | 544 | } |
545 | 545 | |
546 | 546 | QDesktopServices::openUrl(QUrl(url)); |