diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorHandler.h b/SpriteBuilder/ccBuilder/LocalizationEditorHandler.h index 638269434..07aa6f3b0 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorHandler.h +++ b/SpriteBuilder/ccBuilder/LocalizationEditorHandler.h @@ -37,6 +37,7 @@ - (LocalizationEditorLanguage*) getLanguageByIsoLangCode:(NSString*)code; - (void) addActiveLanguage:(LocalizationEditorLanguage*) lang; - (void) removeActiveLangage:(LocalizationEditorLanguage*) lang; +- (void) setDefaultLanguage:(LocalizationEditorLanguage*) lang; - (void) setEdited; - (NSString*) translationForKey:(NSString*)key; diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorHandler.m b/SpriteBuilder/ccBuilder/LocalizationEditorHandler.m index ad4df92c3..159e74b1b 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorHandler.m +++ b/SpriteBuilder/ccBuilder/LocalizationEditorHandler.m @@ -64,12 +64,19 @@ - (void) store [ser setObject:[NSNumber numberWithInt:kCCBTranslationFileFormatVersion] forKey:@"fileVersion"]; // Languages + NSString* defaultLanguage = nil; NSMutableArray* serLangs = [NSMutableArray array]; for (LocalizationEditorLanguage* lang in activeLanguages) { [serLangs addObject:lang.isoLangCode]; + if (lang.defaultLanguage) { + defaultLanguage = lang.isoLangCode; + } } [ser setObject:serLangs forKey:@"activeLanguages"]; + if (defaultLanguage) { + [ser setObject:defaultLanguage forKey:@"defaultLanguage"]; + } // Translations NSMutableArray* serTransls = [NSMutableArray array]; @@ -101,12 +108,20 @@ - (BOOL) load // Read data // Languages + NSString* defaultLang = [ser objectForKey:@"defaultLanguage"]; NSArray* serLangs = [ser objectForKey:@"activeLanguages"]; for (NSString* isoCode in serLangs) { // Find language for code and add active language LocalizationEditorLanguage* lang = [self getLanguageByIsoLangCode:isoCode]; - if (lang) [activeLanguages addObject:lang]; + if (lang) + { + if ([lang.isoLangCode isEqualToString:defaultLang]) + { + lang.defaultLanguage = YES; + } + [activeLanguages addObject:lang]; + } } // Translations @@ -179,7 +194,15 @@ - (void) setManagedFile:(NSString*) file if (activeLanguages.count > 0) { - [self setCurrentLanguage:[activeLanguages objectAtIndex:0]]; + LocalizationEditorLanguage* initialLanguage = [activeLanguages objectAtIndex:0]; + for (LocalizationEditorLanguage* lang in activeLanguages) + { + if (lang.defaultLanguage) { + initialLanguage = lang; + break; + } + } + [self setCurrentLanguage:initialLanguage]; } else { @@ -280,6 +303,19 @@ - (void) removeActiveLangage:(LocalizationEditorLanguage*) lang [self setCurrentLanguage:currentLanguage]; } +- (void) setDefaultLanguage:(LocalizationEditorLanguage*) lang +{ + for (LocalizationEditorLanguage* oneLanguage in activeLanguages) + { + oneLanguage.defaultLanguage = NO; + if (lang && [oneLanguage.isoLangCode isEqualToString:lang.isoLangCode]) + { + oneLanguage.defaultLanguage = YES; + [self setCurrentLanguage:oneLanguage]; + } + } +} + - (IBAction)openEditor:(id)sender { if (!windowController) diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.h b/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.h index aa3052501..2403bc925 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.h +++ b/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.h @@ -13,6 +13,7 @@ @property (nonatomic,copy) NSString* isoLangCode; @property (nonatomic,copy) NSString* name; @property (nonatomic,readwrite) BOOL quickEdit; +@property (nonatomic,readwrite) BOOL defaultLanguage; - (id) initWithIsoLangCode:(NSString*)code; diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.m b/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.m index 18e46666b..a07178574 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.m +++ b/SpriteBuilder/ccBuilder/LocalizationEditorLanguage.m @@ -39,6 +39,8 @@ - (id) initWithIsoLangCode:(NSString*)code self.quickEdit = YES; + self.defaultLanguage = NO; + return self; } diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorWindow.h b/SpriteBuilder/ccBuilder/LocalizationEditorWindow.h index 8c4a7c6d2..f583a32df 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorWindow.h +++ b/SpriteBuilder/ccBuilder/LocalizationEditorWindow.h @@ -13,6 +13,7 @@ IBOutlet NSTableView* tableTranslations; IBOutlet NSTableView* tableLanguages; IBOutlet NSPopUpButton* popLanguageAdd; + IBOutlet NSPopUpButton* popLanguageSetDefault; IBOutlet NSPopUpButton* popCurrentLanguage; IBOutlet NSTextView* textInspectorKey; } @@ -29,6 +30,7 @@ - (IBAction)pressedAddGroup:(id)sender; - (IBAction)selectedAddLanguage:(id)sender; +- (IBAction)selectedSetDefaultLanguage:(id)sender; - (void)removeLanguagesAtIndexes:(NSIndexSet*)idxs; - (IBAction)selectedCurrentLanguage:(id)sender; diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorWindow.m b/SpriteBuilder/ccBuilder/LocalizationEditorWindow.m index 47900b9e3..9499d4eaf 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorWindow.m +++ b/SpriteBuilder/ccBuilder/LocalizationEditorWindow.m @@ -22,6 +22,7 @@ - (void) awakeFromNib { [tableTranslations registerForDraggedTypes:[NSArray arrayWithObject:@"com.cocosbuilder.LocalizationEditorTranslation"]]; [self populateLanguageAddMenu]; + [self populateLanguageSetDefaultMenu]; [tableLanguages reloadData]; [self updateLanguageSelectionMenu]; [self addLanguageColumns]; @@ -40,6 +41,37 @@ - (void) populateLanguageAddMenu [popLanguageAdd addItemsWithTitles:langTitles]; } +- (void) populateLanguageSetDefaultMenu +{ + [popLanguageSetDefault removeAllItems]; + + NSArray* langs = [AppDelegate appDelegate].localizationEditorHandler.activeLanguages; + + int defaultLanguageIndex = -1; + NSString* firstItem = @"Set Default Language"; + + NSMutableArray* langTitles = [NSMutableArray array]; + int currentLanguageIndex = 0; + for (LocalizationEditorLanguage* lang in langs) + { + [langTitles addObject:lang.name]; + if (lang.defaultLanguage) + { + firstItem = [NSString stringWithFormat:@"Default: %@", lang.name]; + defaultLanguageIndex = currentLanguageIndex; + } + currentLanguageIndex++; + } + [langTitles addObject:@"None"]; + if (defaultLanguageIndex == -1) { + defaultLanguageIndex = currentLanguageIndex; + } + [langTitles insertObject:firstItem atIndex:0]; + [popLanguageSetDefault addItemsWithTitles:langTitles]; + defaultLanguageIndex++; + [[popLanguageSetDefault itemAtIndex:defaultLanguageIndex] setState:NSOnState]; +} + - (void) updateLanguageSelectionMenu { NSArray* langs = [AppDelegate appDelegate].localizationEditorHandler.activeLanguages; @@ -175,6 +207,7 @@ - (void) reload [self updateLanguageSelectionMenu]; [self updateQuickEditLangs]; [self updateInspector]; + [self populateLanguageSetDefaultMenu]; } #pragma mark Actions @@ -208,10 +241,25 @@ - (IBAction)selectedAddLanguage:(id)sender [self updateLanguageSelectionMenu]; [self updateQuickEditLangs]; [self updateInspector]; + [self populateLanguageSetDefaultMenu]; [handler setEdited]; } +- (IBAction)selectedSetDefaultLanguage:(id)sender +{ + NSString* name = popLanguageSetDefault.selectedItem.title; + LocalizationEditorHandler* handler = [AppDelegate appDelegate].localizationEditorHandler; + LocalizationEditorLanguage* lang = nil; + if (![@"None" isEqualToString:name]) + { + lang = [handler getLanguageByName:name]; + } + [handler setDefaultLanguage:lang]; + [self populateLanguageSetDefaultMenu]; + [handler setEdited]; +} + - (void)removeLanguagesAtIndexes:(NSIndexSet*)idxs { LocalizationEditorHandler* handler = [AppDelegate appDelegate].localizationEditorHandler; @@ -227,6 +275,7 @@ - (void)removeLanguagesAtIndexes:(NSIndexSet*)idxs [self updateLanguageSelectionMenu]; [self updateQuickEditLangs]; [self updateInspector]; + [self populateLanguageSetDefaultMenu]; [handler setEdited]; } diff --git a/SpriteBuilder/ccBuilder/LocalizationEditorWindow.xib b/SpriteBuilder/ccBuilder/LocalizationEditorWindow.xib index 069bae88d..28df60a62 100644 --- a/SpriteBuilder/ccBuilder/LocalizationEditorWindow.xib +++ b/SpriteBuilder/ccBuilder/LocalizationEditorWindow.xib @@ -1,14 +1,14 @@ - 1080 - 12E55 - 3084 - 1187.39 - 626.00 + 1090 + 14B25 + 6254 + 1343.16 + 755.00 com.apple.InterfaceBuilder.CocoaPlugin - 3084 + 6254 NSBox @@ -71,7 +71,7 @@ - 2304 + 2322 @@ -79,7 +79,7 @@ {565, 531} - + _NS:13 YES NO @@ -274,7 +274,7 @@ - 2304 + 2338 @@ -284,14 +284,12 @@ _NS:15 - - 4 {{0, 21}, {565, 548}} - + _NS:9 133680 @@ -444,7 +442,7 @@ - 2304 + 2322 @@ -471,7 +469,7 @@ {280, 54} - + _NS:13 @@ -510,7 +508,7 @@ - + 1 @@ -592,7 +590,7 @@ {{7, 8}, {282, 56}} - + _NS:9 133138 @@ -614,7 +612,7 @@ 68157504 272761856 - Key (default value) + Key _NS:1535 @@ -629,7 +627,7 @@ - 2304 + 2322 @@ -656,7 +654,7 @@ {280, 240} - + _NS:13 @@ -685,7 +683,7 @@ - + @@ -758,7 +756,7 @@ {{7, 91}, {282, 242}} - + _NS:9 133138 @@ -774,7 +772,7 @@ - 2304 + 2322 @@ -801,7 +799,7 @@ {280, 54} - + _NS:13 @@ -830,7 +828,7 @@ - + @@ -903,7 +901,7 @@ {{7, 365}, {282, 56}} - + _NS:9 133138 @@ -931,7 +929,7 @@ - 2304 + 2322 @@ -1135,9 +1133,11 @@ textBackgroundColor - - 3 - MCAwLjgwMDAwMDAxMTkAA + + 6 + System + labelColor + 3 @@ -1189,10 +1189,7 @@ Box - - 3 - MCAwLjgwMDAwMDAxMTkAA - + 3 2 @@ -1205,7 +1202,6 @@ {{760, -1}, {104, 22}} - _NS:9 YES @@ -1249,6 +1245,55 @@ NO + + + 289 + {{565, -1}, {151, 22}} + + + _NS:9 + YES + + -2080374720 + 134350848 + + _NS:9 + + -2034614272 + 134 + + + 400 + 75 + + + YES + Set Default Language + + 1048576 + 2147483647 + 1 + + + + _popUpItemAction: + + + YES + + OtherViews + + + + + + YES + 1 + YES + YES + + NO + {863, 568} @@ -1265,7 +1310,7 @@ - + pressedAdd: @@ -1362,6 +1407,22 @@ 133 + + + selectedSetDefaultLanguage: + + + + 156 + + + + popLanguageSetDefault + + + + 157 + dataSource @@ -1654,6 +1715,22 @@ 143 + + + enabled: hasOpenFile + + + + + + enabled: hasOpenFile + enabled + hasOpenFile + 2 + + + 155 + @@ -1699,6 +1776,7 @@ + @@ -2075,6 +2153,35 @@ + + 150 + + + + + + + + 151 + + + + + + + + 152 + + + + + + + + 153 + + + @@ -2086,8 +2193,13 @@ CCBTextFieldCell com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2153,7 +2265,7 @@ - 149 + 157 @@ -2205,6 +2317,7 @@ id id id + id @@ -2223,10 +2336,15 @@ selectedCurrentLanguage: id + + selectedSetDefaultLanguage: + id + NSPopUpButton NSPopUpButton + NSPopUpButton NSTableView NSTableView NSTextView @@ -2240,6 +2358,10 @@ popLanguageAdd NSPopUpButton + + popLanguageSetDefault + NSPopUpButton + tableLanguages NSTableView @@ -2258,6 +2380,295 @@ ./Classes/LocalizationEditorWindow.h + + LocalizationEditorWindow + + id + id + id + id + id + + + + pressedAdd: + id + + + pressedAddGroup: + id + + + selectedAddLanguage: + id + + + selectedCurrentLanguage: + id + + + selectedSetDefaultLanguage: + id + + + + IBProjectSource + ./Classes/LocalizationEditorWindow.m + + + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSImageCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSImageCell.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSplitView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSSplitView.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableHeaderView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTableHeaderView.h + + + + NSTableView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSUserDefaultsController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSUserDefaultsController.h + + + + NSView + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindowController + NSResponder + + showWindow: + id + + + showWindow: + + showWindow: + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSWindowController.h + + 0 @@ -2265,9 +2676,9 @@ YES 3 - {8, 8} - {11, 11} - {10, 3} + {11, 11} + {12, 12} + {10, 2} {15, 15}