From 752b2b576a307130d5f698beed67ccae5c96b166 Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Fri, 9 Sep 2011 00:45:34 +0000 Subject: - Make add relation error detail intro localisable - If the add relation error strongly appears to be a name-already-taken error, add the name to the takenNames list to prevent it being used again and to highlight the error - Update localisable strings --- Resources/English.lproj/DBView.strings | Bin 101876 -> 102126 bytes Resources/English.lproj/Localizable.strings | Bin 223106 -> 223274 bytes Source/SPTableRelations.m | 8 +++++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Resources/English.lproj/DBView.strings b/Resources/English.lproj/DBView.strings index d301baa6..be01c95e 100644 Binary files a/Resources/English.lproj/DBView.strings and b/Resources/English.lproj/DBView.strings differ diff --git a/Resources/English.lproj/Localizable.strings b/Resources/English.lproj/Localizable.strings index 4e7a8c1a..99977ed2 100644 Binary files a/Resources/English.lproj/Localizable.strings and b/Resources/English.lproj/Localizable.strings differ diff --git a/Source/SPTableRelations.m b/Source/SPTableRelations.m index f6865d15..5a81e756 100644 --- a/Source/SPTableRelations.m +++ b/Source/SPTableRelations.m @@ -185,7 +185,13 @@ static NSString *SPRelationOnDeleteKey = @"on_delete"; NSString *statusText = [connection getFirstFieldFromQuery:@"SHOW INNODB STATUS"]; NSString *detailErrorString = [statusText stringByMatching:@"latest foreign key error\\s+-----*\\s+[0-9: ]*(.*?)\\s+-----" options:(RKLCaseless | RKLDotAll) inRange:NSMakeRange(0, [statusText length]) capture:1L error:NULL]; if (detailErrorString) { - errorText = [NSString stringWithFormat:@"%@\n\nMySQL detail: %@", errorText, [detailErrorString stringByReplacingOccurrencesOfString:@"\n" withString:@" "]]; + errorText = [NSString stringWithFormat:NSLocalizedString(@"%@\n\nDetail: %@", @"Add relation error detail intro"), errorText, [detailErrorString stringByReplacingOccurrencesOfString:@"\n" withString:@" "]]; + } + + // Detect name duplication if appropriate + if ([errorText isMatchedByRegex:@"errno: 121"] && [errorText isMatchedByRegex:@"already exists"]) { + [takenConstraintNames addObject:[[constraintName stringValue] lowercaseString]]; + [self controlTextDidChange:[NSNotification notificationWithName:@"dummy" object:constraintName]]; } } -- cgit v1.2.3