Skip to content

Commit 4eb7def

Browse files
author
Tim Chilvers
committed
Add strings file name selection
This covers a use case where multiple strings tables are used used by one project
1 parent f296d1c commit 4eb7def

File tree

6 files changed

+92
-314
lines changed

6 files changed

+92
-314
lines changed

SCStringsUtility/SCRootViewController.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,13 @@ - (IBAction)onOpenClick:(id)sender
243243

244244
BOOL includePositionalParameters = [self.openPanelAccessoryView shouldAddPositionalParameters];
245245
NSString *routine = [self.openPanelAccessoryView genstringsRoutine];
246+
NSString *stringsFile = [self.openPanelAccessoryView stringsFileName];
246247

247248
[self.stringsController importProjectAtPath:[[openPanel URL] path]
248249
positionalParameters:includePositionalParameters
249-
genstringsRoutine:routine success:^{ [self reloadData];}
250+
genstringsRoutine:routine
251+
stringsFileName:stringsFile
252+
success:^{ [self reloadData];}
250253
failure:^(NSError *error) { SCLog(@"Could not import Xcode project %@", error);}];
251254
break;
252255
}

SCStringsUtility/SCStringsController.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- (void)importProjectAtPath:(NSString*)path
2727
positionalParameters:(BOOL)includePositionalParameters
2828
genstringsRoutine:(NSString*)genstringsRoutine
29+
stringsFileName:(NSString*)stringsFileName
2930
success:(void (^)(void))success
3031
failure:(void(^)(NSError *error))failure;
3132

SCStringsUtility/SCStringsController.m

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,16 +187,26 @@ - (void)importCSVFileAtPath:(NSString *)path success:(void (^)(void))success fai
187187
- (void)importProjectAtPath:(NSString *)path
188188
positionalParameters:(BOOL)includePositionalParameters
189189
genstringsRoutine:(NSString *)genstringsRoutine
190+
stringsFileName:(NSString*)stringsFileName
190191
success:(void (^)(void))success
191192
failure:(void (^)(NSError *))failure
192193
{
193194
self.project = [[XCProject alloc] initWithFilePath:path];
194195
self.sourceFilePath = nil;
195196
self.sourceType = SCFileTypeXcodeProject;
196197

198+
NSString *stringsFileNamesWithoutExtension = nil;
199+
200+
if (![stringsFileName length]) {
201+
stringsFileName = kKeyStringsFile;
202+
stringsFileNamesWithoutExtension = kKeyLocalizable;
203+
} else {
204+
stringsFileNamesWithoutExtension = [stringsFileName stringByDeletingPathExtension];
205+
}
206+
197207
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
198208
NSArray *files = [self.project.files filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(XCSourceFile *evaluatedObject, NSDictionary *bindings) {
199-
return [[evaluatedObject.name lastPathComponent] isEqualToString:kKeyStringsFile];
209+
return [[evaluatedObject.name lastPathComponent] isEqualToString:stringsFileName];
200210
}]];
201211

202212
for(XCSourceFile *file in files)
@@ -206,7 +216,7 @@ - (void)importProjectAtPath:(NSString *)path
206216

207217
XCGroup *parentGroup = [[self.project groupForGroupMemberWithKey:file.key] parentGroup];
208218

209-
NSString *categoryName = [[parentGroup displayName] stringByAppendingPathComponent:kKeyLocalizable];
219+
NSString *categoryName = [[parentGroup displayName] stringByAppendingPathComponent:stringsFileNamesWithoutExtension];
210220
if(![self.translationFiles objectForKey:categoryName])
211221
[self.translationFiles setObject:[NSMutableArray array] forKey:categoryName];
212222

@@ -218,7 +228,7 @@ - (void)importProjectAtPath:(NSString *)path
218228
}
219229

220230
[self executeGenStringsAtPath:[self.project.filePath stringByDeletingLastPathComponent] withRoutine:genstringsRoutine positionalParameters:includePositionalParameters];
221-
SCReader *genstringsOutputReader = [[SCReader alloc] initWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:kKeyStringsFile]];
231+
SCReader *genstringsOutputReader = [[SCReader alloc] initWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:stringsFileName]];
222232
NSString *comment, *key, *translation;
223233
while([genstringsOutputReader getNextComment:&comment key:&key translation:&translation]) {
224234
[self.translationsDictionary setObject:[NSMutableDictionary dictionaryWithObject:comment forKey:kKeyComment] forKey:key];

SCStringsUtility/Views/SCOpenAccessoryView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212

1313
- (NSString*)genstringsRoutine;
1414
- (BOOL)shouldAddPositionalParameters;
15+
- (NSString*)stringsFileName;
1516

1617
@end

SCStringsUtility/Views/SCOpenAccessoryView.m

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
@interface SCOpenAccessoryView ()
1212
@property (nonatomic, weak) IBOutlet NSTextField *genstringsRoutineTextField;
13+
@property (nonatomic, weak) IBOutlet NSTextField *stringsFileNameTextField;
1314
@property (nonatomic, weak) IBOutlet NSButton *shouldAddPositionalParametersButton;
1415
@end
1516

@@ -26,4 +27,9 @@ - (BOOL)shouldAddPositionalParameters
2627
return self.shouldAddPositionalParametersButton.state;
2728
}
2829

30+
- (NSString*)stringsFileName
31+
{
32+
return self.stringsFileNameTextField.stringValue;
33+
}
34+
2935
@end

0 commit comments

Comments
 (0)