Marino Faggiana 7 роки тому
батько
коміт
a4d14be5fd
47 змінених файлів з 96 додано та 74 видалено
  1. 2 1
      iOSClient/Actions/CCActions.swift
  2. 1 1
      iOSClient/Brand/Picker.plist
  3. 1 1
      iOSClient/Brand/PickerFileProvider.plist
  4. 1 1
      iOSClient/Brand/Share.plist
  5. 1 1
      iOSClient/Brand/iOSClient.plist
  6. 1 1
      iOSClient/Main/CCMain.m
  7. 2 0
      iOSClient/Photos/CCPhotos.h
  8. 76 57
      iOSClient/Photos/CCPhotos.m
  9. BIN
      iOSClient/Supporting Files/cs-CZ.lproj/Error.strings
  10. BIN
      iOSClient/Supporting Files/de.lproj/Error.strings
  11. BIN
      iOSClient/Supporting Files/en-GB.lproj/Error.strings
  12. 11 11
      iOSClient/Supporting Files/en.lproj/Error.strings
  13. BIN
      iOSClient/Supporting Files/es-419.lproj/Error.strings
  14. BIN
      iOSClient/Supporting Files/es-CL.lproj/Error.strings
  15. BIN
      iOSClient/Supporting Files/es-CO.lproj/Error.strings
  16. BIN
      iOSClient/Supporting Files/es-CR.lproj/Error.strings
  17. BIN
      iOSClient/Supporting Files/es-DO.lproj/Error.strings
  18. BIN
      iOSClient/Supporting Files/es-EC.lproj/Error.strings
  19. BIN
      iOSClient/Supporting Files/es-GT.lproj/Error.strings
  20. BIN
      iOSClient/Supporting Files/es-HN.lproj/Error.strings
  21. BIN
      iOSClient/Supporting Files/es-MX.lproj/Error.strings
  22. BIN
      iOSClient/Supporting Files/es-NI.lproj/Error.strings
  23. BIN
      iOSClient/Supporting Files/es-PA.lproj/Error.strings
  24. BIN
      iOSClient/Supporting Files/es-PE.lproj/Error.strings
  25. BIN
      iOSClient/Supporting Files/es-PR.lproj/Error.strings
  26. BIN
      iOSClient/Supporting Files/es-PY.lproj/Error.strings
  27. BIN
      iOSClient/Supporting Files/es-SV.lproj/Error.strings
  28. BIN
      iOSClient/Supporting Files/es-UY.lproj/Error.strings
  29. BIN
      iOSClient/Supporting Files/es.lproj/Error.strings
  30. BIN
      iOSClient/Supporting Files/fr.lproj/Error.strings
  31. BIN
      iOSClient/Supporting Files/hu.lproj/Error.strings
  32. BIN
      iOSClient/Supporting Files/is.lproj/Error.strings
  33. BIN
      iOSClient/Supporting Files/it.lproj/Error.strings
  34. BIN
      iOSClient/Supporting Files/ka-GE.lproj/Error.strings
  35. BIN
      iOSClient/Supporting Files/ko.lproj/Error.strings
  36. BIN
      iOSClient/Supporting Files/nb-NO.lproj/Error.strings
  37. BIN
      iOSClient/Supporting Files/nl.lproj/Error.strings
  38. BIN
      iOSClient/Supporting Files/pl.lproj/Error.strings
  39. BIN
      iOSClient/Supporting Files/pt-BR.lproj/Error.strings
  40. BIN
      iOSClient/Supporting Files/pt-PT.lproj/Error.strings
  41. BIN
      iOSClient/Supporting Files/ru.lproj/Error.strings
  42. BIN
      iOSClient/Supporting Files/sk-SK.lproj/Error.strings
  43. BIN
      iOSClient/Supporting Files/sr.lproj/Error.strings
  44. BIN
      iOSClient/Supporting Files/sv.lproj/Error.strings
  45. BIN
      iOSClient/Supporting Files/tr.lproj/Error.strings
  46. BIN
      iOSClient/Supporting Files/zh-Hans.lproj/Error.strings
  47. BIN
      iOSClient/Supporting Files/zh-Hant-TW.lproj/Error.strings

+ 2 - 1
iOSClient/Actions/CCActions.swift

@@ -293,7 +293,7 @@ class CCActions: NSObject {
     // MARK: Search
     // --------------------------------------------------------------------------------------------
     
-    @objc func search(_ serverUrl: String, fileName: String, depth: String, date: Date?, contenType: [String]?, selector: String, delegate: AnyObject) {
+    @objc func search(_ serverUrl: String, fileName: String, etag: String, depth: String, date: Date?, contenType: [String]?, selector: String, delegate: AnyObject) {
         
         guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(serverUrl) else {
             return
@@ -309,6 +309,7 @@ class CCActions: NSObject {
         metadataNet.delegate = delegate
         metadataNet.directoryID = directoryID
         metadataNet.fileName = fileName
+        metadataNet.etag = etag
         metadataNet.depth = depth
         metadataNet.priority = Operation.QueuePriority.high.rawValue
         metadataNet.selector = selector

+ 1 - 1
iOSClient/Brand/Picker.plist

@@ -19,7 +19,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>2.20.7</string>
 	<key>CFBundleVersion</key>
-	<string>00002</string>
+	<string>00003</string>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>

+ 1 - 1
iOSClient/Brand/PickerFileProvider.plist

@@ -19,7 +19,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>2.20.7</string>
 	<key>CFBundleVersion</key>
-	<string>00002</string>
+	<string>00003</string>
 	<key>NSExtension</key>
 	<dict>
 		<key>NSExtensionFileProviderDocumentGroup</key>

+ 1 - 1
iOSClient/Brand/Share.plist

@@ -19,7 +19,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>2.20.7</string>
 	<key>CFBundleVersion</key>
-	<string>00002</string>
+	<string>00003</string>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>

+ 1 - 1
iOSClient/Brand/iOSClient.plist

@@ -69,7 +69,7 @@
 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>00002</string>
+	<string>00003</string>
 	<key>Fabric</key>
 	<dict>
 		<key>APIKey</key>

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -1641,7 +1641,7 @@
 {
     NSString *startDirectory = [CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl];
     
-    [[CCActions sharedInstance] search:startDirectory fileName:_searchFileName depth:@"infinity" date:nil contenType:nil selector:selectorSearchFiles delegate:self];
+    [[CCActions sharedInstance] search:startDirectory fileName:_searchFileName etag:@"" depth:@"infinity" date:nil contenType:nil selector:selectorSearchFiles delegate:self];
 
     _noFilesSearchTitle = @"";
     _noFilesSearchDescription = NSLocalizedString(@"_search_in_progress_", nil);

+ 2 - 0
iOSClient/Photos/CCPhotos.h

@@ -42,6 +42,8 @@
 
 @property (nonatomic, weak) CCDetail *detailViewController;
 @property BOOL isSearchMode;
+@property BOOL isEditMode;
+
 
 - (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode;
 

+ 76 - 57
iOSClient/Photos/CCPhotos.m

@@ -33,7 +33,6 @@
 
     tableMetadata *_metadata;
 
-    BOOL _cellEditing;
     NSMutableArray *_queueMetadatas;
     NSMutableArray *_selectedMetadatas;
     NSUInteger _numSelectedMetadatas;
@@ -42,7 +41,8 @@
     
     CCHud *_hud;
     
-    TOScrollBar *_scrollBar;    
+    TOScrollBar *_scrollBar;
+    NSMutableDictionary *_saveEtagForStartDirectory;
 }
 @end
 
@@ -87,8 +87,9 @@
 {
     [super viewDidLoad];
     
-    _queueMetadatas = [[NSMutableArray alloc] init];
-    _selectedMetadatas = [[NSMutableArray alloc] init];
+    _queueMetadatas = [NSMutableArray new];
+    _selectedMetadatas = [NSMutableArray new];
+    _saveEtagForStartDirectory = [NSMutableDictionary new];
     _hud = [[CCHud alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]];
     
     // empty Data Source
@@ -118,7 +119,7 @@
     // Plus Button
     [appDelegate plusButtonVisibile:true];
 
-    if(!_isSearchMode)
+    if(!_isSearchMode && !_isEditMode)
         [self reloadDatasourceFromSearch:NO];
 }
 
@@ -135,7 +136,9 @@
         [appDelegate changeTheming:self];
     
     _scrollBar.handleTintColor = [NCBrandColor sharedInstance].brand;
-    [self.collectionView reloadData];
+    
+    if(!_isSearchMode && !_isEditMode)
+        [self.collectionView reloadData];
 }
 
 - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
@@ -187,7 +190,7 @@
     // Button Item
     UIImage *icon;
     icon = [UIImage imageNamed:@"seleziona"];
-    UIBarButtonItem *buttonSelect = [[UIBarButtonItem alloc] initWithImage:icon style:UIBarButtonItemStylePlain target:self action:@selector(collectionSelectYES)];
+    UIBarButtonItem *buttonSelect = [[UIBarButtonItem alloc] initWithImage:icon style:UIBarButtonItemStylePlain target:self action:@selector(editingModeYES)];
     icon = [UIImage imageNamed:@"startDirectoryPhotosTab"];
     UIBarButtonItem *buttonStartDirectoryPhotosTab = [[UIBarButtonItem alloc] initWithImage:icon style:UIBarButtonItemStylePlain target:self action:@selector(selectStartDirectoryPhotosTab)];
 
@@ -197,6 +200,8 @@
         self.navigationItem.rightBarButtonItems = nil;
     }
     self.navigationItem.leftBarButtonItems = [[NSArray alloc] initWithObjects:buttonStartDirectoryPhotosTab, nil];
+    
+    [self.collectionView reloadData];
 }
 
 - (void)setUINavigationBarSelected
@@ -209,30 +214,15 @@
     icon = [UIImage imageNamed:@"openSelectedFiles"];
     UIBarButtonItem *buttonOpenWith = [[UIBarButtonItem alloc] initWithImage:icon style:UIBarButtonItemStylePlain target:self action:@selector(openSelectedFiles)];
     
-    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"_cancel_", nil) style:UIBarButtonItemStylePlain target:self action:@selector(reloadCollection)];
+    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"_cancel_", nil) style:UIBarButtonItemStylePlain target:self action:@selector(editingModeNO)];
     
     self.navigationItem.leftBarButtonItem = leftButton;
     self.navigationItem.rightBarButtonItems = [[NSArray alloc] initWithObjects:buttonDelete, buttonOpenWith, nil];
     
     // Title
     self.navigationItem.title = [NSString stringWithFormat:@"%@ : %lu / %lu", NSLocalizedString(@"_selected_", nil), (unsigned long)[_selectedMetadatas count], (unsigned long)[_sectionDataSource.allRecordsDataSource count]];
-}
-
-- (void)collectionSelect:(BOOL)edit
-{
-    [self.collectionView setAllowsMultipleSelection:edit];
-    
-    _cellEditing = edit;
     
-    if (edit)
-        [self setUINavigationBarSelected];
-    else
-        [self setUINavigationBarDefault];
-}
-
-- (void)collectionSelectYES
-{
-    [self collectionSelect:YES];
+    [self.collectionView reloadData];
 }
 
 - (void)cellSelect:(BOOL)select indexPath:(NSIndexPath *)indexPath metadata:(tableMetadata *)metadata
@@ -284,18 +274,16 @@
 
 - (void)searchInProgress:(BOOL)search
 {
-    dispatch_async(dispatch_get_main_queue(), ^{
-        if (search) {
-            _isSearchMode = YES;
-            [self.navigationItem.leftBarButtonItems[0] setEnabled:NO];
-            [self.navigationItem.rightBarButtonItems[0] setEnabled:NO];
-        } else {
-            _isSearchMode = NO;
-            [self.navigationItem.leftBarButtonItems[0] setEnabled:YES];
-            [self.navigationItem.rightBarButtonItems[0] setEnabled:YES];
-        }
-        [self setUINavigationBarDefault];
-    });
+    if (search) {
+        _isSearchMode = YES;
+        [self.navigationItem.leftBarButtonItems[0] setEnabled:NO];
+        [self.navigationItem.rightBarButtonItems[0] setEnabled:NO];
+    } else {
+        _isSearchMode = NO;
+        [self.navigationItem.leftBarButtonItems[0] setEnabled:YES];
+        [self.navigationItem.rightBarButtonItems[0] setEnabled:YES];
+    }
+    [self setUINavigationBarDefault];
 }
 
 #pragma --------------------------------------------------------------------------------------------
@@ -417,8 +405,7 @@
                 self.navigationItem.rightBarButtonItem.enabled = YES;
                 
                 if (completed) {
-                    
-                    [self performSelector:@selector(reloadCollection) withObject:nil];
+                    [self.collectionView reloadData];
                 }
             }];
         }];
@@ -570,7 +557,7 @@
     
     if (![serverUrlTo isEqualToString:oldStartDirectoryPhotosTab]) {
         
-        // Save
+        // Save Start Directory
         [[NCManageDatabase sharedInstance] setAccountStartDirectoryPhotosTab:serverUrlTo];
         
         // search PhotoVideo with new start directory
@@ -612,9 +599,6 @@
     
     if (errorCode == 0) {
     
-        // Update date
-        [[NCManageDatabase sharedInstance] setAccountDateSearchContentTypeImageVideo:[NSDate date]];
-        
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
             
             NSString *startDirectory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
@@ -624,6 +608,11 @@
             dispatch_async(dispatch_get_main_queue(), ^{
                 [self reloadDatasourceFromSearch:YES];
             });
+            
+            // Update date
+            [[NCManageDatabase sharedInstance] setAccountDateSearchContentTypeImageVideo:[NSDate date]];
+            // Save etag
+            [_saveEtagForStartDirectory setObject:metadataNet.etag forKey:metadataNet.serverUrl];
         });
     
     } else {
@@ -634,7 +623,7 @@
 - (void)searchPhotoVideo
 {
     // test
-    if (appDelegate.activeAccount.length == 0 || _isSearchMode)
+    if (appDelegate.activeAccount.length == 0 || _isSearchMode || _isEditMode)
         return;
     
     // WAITING FOR d:creationdate
@@ -644,14 +633,33 @@
     
     NSString *startDirectory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
 
-    [[CCActions sharedInstance] search:startDirectory fileName:@"" depth:@"infinity" date:[NSDate distantPast] contenType:@[@"image/%", @"video/%"] selector:selectorSearchContentType delegate:self];
-    
-    [self searchInProgress:YES];
-    [self collectionSelect:NO];
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+        
+        NSArray *items;
+        NSError *error = [[NCNetworkingSync sharedManager] readFile:startDirectory user:appDelegate.activeUser userID:appDelegate.activeUserID password:appDelegate.activePassword items:&items];
+        
+        if (error == nil && items.count > 0) {
+        
+            OCFileDto *fileStartDirectory = items[0];
+            
+            if (![fileStartDirectory.etag isEqualToString:[_saveEtagForStartDirectory objectForKey:startDirectory]]) {
+                
+                dispatch_async(dispatch_get_main_queue(), ^{
+                    [[CCActions sharedInstance] search:startDirectory fileName:@"" etag:fileStartDirectory.etag depth:@"infinity" date:[NSDate distantPast] contenType:@[@"image/%", @"video/%"] selector:selectorSearchContentType delegate:self];
+                    [self searchInProgress:YES];
+                    [self editingModeNO];
+                });
+            } else {
+                [self reloadDatasourceFromSearch:YES];
+            }
+        } else {
+            [self reloadDatasourceFromSearch:YES];
+        }
+    });
 }
 
 #pragma --------------------------------------------------------------------------------------------
-#pragma mark ==== Collection ====
+#pragma mark ==== Datasource ====
 #pragma --------------------------------------------------------------------------------------------
 
 - (void)reloadDatasourceFromSearch:(BOOL)fromSearch
@@ -666,7 +674,6 @@
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
             NSString *startDirectory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
-
             NSArray *metadatasDBImageVideo = [[NCManageDatabase sharedInstance] getTableMetadatasContentTypeImageVideo:startDirectory activeUrl:appDelegate.activeUrl];
             CCSectionDataSourceMetadata *tempSectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:metadatasDBImageVideo listProgressMetadata:nil groupByField:@"date" activeAccount:appDelegate.activeAccount];
         
@@ -674,23 +681,35 @@
                 // OPTIMIZED
                 if (tempSectionDataSource.totalSize != _sectionDataSource.totalSize || tempSectionDataSource.files != _sectionDataSource.files) {
                     _sectionDataSource = [tempSectionDataSource copy];
-                    [self reloadCollection];
+                    [self.collectionView reloadData];
                 }
-                if (fromSearch)
+                if (fromSearch) {
                     [self searchInProgress:NO];
+                }
             });
         });
     }
 }
 
-- (void)reloadCollection
+- (void)editingModeYES
 {
-    [self.collectionView reloadData];
-        
+    [self.collectionView setAllowsMultipleSelection:true];
+    _isEditMode = true;
+    [self setUINavigationBarSelected];
+}
+
+- (void)editingModeNO
+{
+    [self.collectionView setAllowsMultipleSelection:false];
+    _isEditMode = false;
     [_selectedMetadatas removeAllObjects];
-    [self collectionSelect:NO];
+    [self setUINavigationBarDefault];
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ==== Collection ====
+#pragma --------------------------------------------------------------------------------------------
+
 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
 {    
     return [[_sectionDataSource.sectionArrayRow allKeys] count];
@@ -814,7 +833,7 @@
         NSString *fileID = [metadatasForKey objectAtIndex:indexPath.row];
         _metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
         
-        if (_cellEditing) {
+        if (_isEditMode) {
         
             [self cellSelect:YES indexPath:indexPath metadata:_metadata];
         
@@ -829,7 +848,7 @@
 - (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
 {
     // test
-    if (_cellEditing == NO)
+    if (_isEditMode == NO)
         return;
    
     NSArray *metadatasForKey = [_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]];

BIN
iOSClient/Supporting Files/cs-CZ.lproj/Error.strings


BIN
iOSClient/Supporting Files/de.lproj/Error.strings


BIN
iOSClient/Supporting Files/en-GB.lproj/Error.strings


+ 11 - 11
iOSClient/Supporting Files/en.lproj/Error.strings

@@ -23,35 +23,35 @@
 
 "_bad_username_password_"               = "Wrong username or password";
 "_cancelled_by_user"                    = "Transfer canceled";
-"_error_folder_destiny_is_the_same_"    = "It is not possible to move the folder to itself";
+"_error_folder_destiny_is_the_same_"    = "It is not possible to move the folder into itself";
 "_error_not_permission_"                = "You don't have permission to complete the operation";
 "_error_path_"                          = "Unable to open this file or folder. Please make sure it exists";
-"_file_upload_not_exitst_"              = "The file that we want to upload does not exist";
+"_file_upload_not_exitst_"              = "The file that you want to upload does not exist";
 "_forbidden_characters_from_server_"    = "The name contains at least one invalid character";
 "_not_connected_internet_"              = "Server connection error";
 "_not_possible_connect_to_server_"      = "It is not possible to connect to the server at this time";
 "_not_possible_create_folder_"          = "Folder could not be created";
-"_server_down_"                         = "The server is unreachable";
+"_server_down_"                         = "Could not establish contact with server";
 "_time_out_"                            = "Timeout, try again";
 "_unknow_response_server_"              = "Unexpected response from server";
 "_user_autentication_required_"         = "User autentication required";
 "_file_directory_locked_"               = "File or directory locked";
 "_ssl_certificate_untrusted_"           = "The certificate for this server is invalid";
-"_internal_server_"                     = "Internal Server Error";
-"_file_already_exists_"                 = "Unable to complete the operation, there is a file with the same name";
+"_internal_server_"                     = "Internal server error";
+"_file_already_exists_"                 = "Could not complete the operation, a file with the same name exists";
 "_file_folder_not_exists_"              = "The source file wasn't found at the specified path";
 "_folder_contents_nochanged_"           = "The folder contents have not changed";
 "_images_invalid_converted_"            = "The image is invalid and cannot be converted to a thumbnail";
-"_method_not_expected_"                 = "Request method not expected";
-"_reauthenticate_user_"                 = "Access expired, please re-authenticate the user";
+"_method_not_expected_"                 = "Unexpected request method";
+"_reauthenticate_user_"                 = "Access expired, log in again";
 "_server_error_retry_"                  = "The server is temporarily unavailable";
-"_too_many_files_"                      = "Too many files would be involved in this operation to complete successfully";
-"_too_many_request_"                    = "Rate limit reached—too many requests sent";
+"_too_many_files_"                      = "Too many files would be involved in this operation";
+"_too_many_request_"                    = "Sending too many requests caused the rate limit to be reached";
 "_user_over_quota_"                     = "Storage quota is reached";
 "_ssl_connection_error_"                = "Connection SSL error, try again";
 "_bad_request_"                         = "Bad request";
-"_webdav_locked_"                       = "WebDAV Locked : The resource that is being accessed is locked";
+"_webdav_locked_"                       = "WebDAV Locked: Trying to access locked resource";
 "_error_user_not_available_"            = "The user is no longer available";
-"_server_response_error_"               = "Server response contenent error";
+"_server_response_error_"               = "Server response content error";
 
 

BIN
iOSClient/Supporting Files/es-419.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-CL.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-CO.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-CR.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-DO.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-EC.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-GT.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-HN.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-MX.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-NI.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-PA.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-PE.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-PR.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-PY.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-SV.lproj/Error.strings


BIN
iOSClient/Supporting Files/es-UY.lproj/Error.strings


BIN
iOSClient/Supporting Files/es.lproj/Error.strings


BIN
iOSClient/Supporting Files/fr.lproj/Error.strings


BIN
iOSClient/Supporting Files/hu.lproj/Error.strings


BIN
iOSClient/Supporting Files/is.lproj/Error.strings


BIN
iOSClient/Supporting Files/it.lproj/Error.strings


BIN
iOSClient/Supporting Files/ka-GE.lproj/Error.strings


BIN
iOSClient/Supporting Files/ko.lproj/Error.strings


BIN
iOSClient/Supporting Files/nb-NO.lproj/Error.strings


BIN
iOSClient/Supporting Files/nl.lproj/Error.strings


BIN
iOSClient/Supporting Files/pl.lproj/Error.strings


BIN
iOSClient/Supporting Files/pt-BR.lproj/Error.strings


BIN
iOSClient/Supporting Files/pt-PT.lproj/Error.strings


BIN
iOSClient/Supporting Files/ru.lproj/Error.strings


BIN
iOSClient/Supporting Files/sk-SK.lproj/Error.strings


BIN
iOSClient/Supporting Files/sr.lproj/Error.strings


BIN
iOSClient/Supporting Files/sv.lproj/Error.strings


BIN
iOSClient/Supporting Files/tr.lproj/Error.strings


BIN
iOSClient/Supporting Files/zh-Hans.lproj/Error.strings


BIN
iOSClient/Supporting Files/zh-Hant-TW.lproj/Error.strings