diff --git a/SoObjects/SOGo/SOGoUserDefaults.h b/SoObjects/SOGo/SOGoUserDefaults.h index 287d0a0ca..d8b56ef0a 100644 --- a/SoObjects/SOGo/SOGoUserDefaults.h +++ b/SoObjects/SOGo/SOGoUserDefaults.h @@ -35,6 +35,9 @@ extern NSString *SOGoWeekStartFirst4DayWeek; extern NSString *SOGoWeekStartFirstFullWeek; @interface SOGoUserDefaults : SOGoDefaultsSource +{ + NSString *userLanguage; +} + (SOGoUserDefaults *) defaultsForUser: (NSString *) userId inDomain: (NSString *) domainId; diff --git a/SoObjects/SOGo/SOGoUserDefaults.m b/SoObjects/SOGo/SOGoUserDefaults.m index 3d728d398..6d05afbba 100644 --- a/SoObjects/SOGo/SOGoUserDefaults.m +++ b/SoObjects/SOGo/SOGoUserDefaults.m @@ -22,6 +22,7 @@ #import #import +#import #import #import @@ -91,6 +92,22 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; return ud; } +- (id) init +{ + if ((self = [super init])) + { + userLanguage = nil; + } + + return self; +} + +- (void) dealloc +{ + [userLanguage release]; + [super dealloc]; +} + - (BOOL) _migrateLastModule { BOOL rc; @@ -355,21 +372,25 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; - (NSString *) language { - NSString *language; NSArray *supportedLanguages; - - /* see SOGoDomainDefaults for the meaning of this */ - language = [source objectForKey: @"SOGoLanguage"]; - if (!(language && [language isKindOfClass: [NSString class]])) - language = [(SOGoDomainDefaults *) parentSource language]; - - /* make sure the language is part of the supported languages */ - supportedLanguages = [[SOGoSystemDefaults sharedSystemDefaults] - supportedLanguages]; - if (![supportedLanguages containsObject: language]) - language = [parentSource stringForKey: @"SOGoLanguage"]; - return language; + if (!userLanguage) + { + /* see SOGoDomainDefaults for the meaning of this */ + userLanguage = [source objectForKey: @"SOGoLanguage"]; + if (!(userLanguage && [userLanguage isKindOfClass: [NSString class]])) + userLanguage = [(SOGoDomainDefaults *) parentSource language]; + + supportedLanguages = [[SOGoSystemDefaults sharedSystemDefaults] + supportedLanguages]; + + /* make sure the language is part of the supported languages */ + if (![supportedLanguages containsObject: userLanguage]) + userLanguage = [parentSource stringForKey: @"SOGoLanguage"]; + [userLanguage retain]; + } + + return userLanguage; } - (void) setMailShowSubscribedFoldersOnly: (BOOL) newValue