Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added the ability to set a Default Language from the Localization Editor #1290

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions SpriteBuilder/ccBuilder/LocalizationEditorHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
40 changes: 38 additions & 2 deletions SpriteBuilder/ccBuilder/LocalizationEditorHandler.m
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
{
Expand Down Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions SpriteBuilder/ccBuilder/LocalizationEditorLanguage.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
2 changes: 2 additions & 0 deletions SpriteBuilder/ccBuilder/LocalizationEditorLanguage.m
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ - (id) initWithIsoLangCode:(NSString*)code

self.quickEdit = YES;

self.defaultLanguage = NO;

return self;
}

Expand Down
2 changes: 2 additions & 0 deletions SpriteBuilder/ccBuilder/LocalizationEditorWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
IBOutlet NSTableView* tableTranslations;
IBOutlet NSTableView* tableLanguages;
IBOutlet NSPopUpButton* popLanguageAdd;
IBOutlet NSPopUpButton* popLanguageSetDefault;
IBOutlet NSPopUpButton* popCurrentLanguage;
IBOutlet NSTextView* textInspectorKey;
}
Expand All @@ -29,6 +30,7 @@
- (IBAction)pressedAddGroup:(id)sender;

- (IBAction)selectedAddLanguage:(id)sender;
- (IBAction)selectedSetDefaultLanguage:(id)sender;
- (void)removeLanguagesAtIndexes:(NSIndexSet*)idxs;
- (IBAction)selectedCurrentLanguage:(id)sender;

Expand Down
49 changes: 49 additions & 0 deletions SpriteBuilder/ccBuilder/LocalizationEditorWindow.m
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ - (void) awakeFromNib
{
[tableTranslations registerForDraggedTypes:[NSArray arrayWithObject:@"com.cocosbuilder.LocalizationEditorTranslation"]];
[self populateLanguageAddMenu];
[self populateLanguageSetDefaultMenu];
[tableLanguages reloadData];
[self updateLanguageSelectionMenu];
[self addLanguageColumns];
Expand All @@ -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;
Expand Down Expand Up @@ -175,6 +207,7 @@ - (void) reload
[self updateLanguageSelectionMenu];
[self updateQuickEditLangs];
[self updateInspector];
[self populateLanguageSetDefaultMenu];
}

#pragma mark Actions
Expand Down Expand Up @@ -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;
Expand All @@ -227,6 +275,7 @@ - (void)removeLanguagesAtIndexes:(NSIndexSet*)idxs
[self updateLanguageSelectionMenu];
[self updateQuickEditLangs];
[self updateInspector];
[self populateLanguageSetDefaultMenu];

[handler setEdited];
}
Expand Down
Loading