Monotone-Parent: 187fad3b4acd4bab3a2b6c286a0f9dc3789c5b83

Monotone-Revision: f37d0868145e5cd1f879ccf7033ca5d1900df42b

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-06-23T14:23:18
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2008-06-23 14:23:18 +00:00
parent d22e932839
commit 5a382d84ea
26 changed files with 234 additions and 201 deletions
+39 -13
View File
@@ -1179,31 +1179,57 @@ static NSDictionary *reportMap = nil;
return nil;
}
- (NSArray *) _languagesForLabels
{
NSMutableArray *languages;
NSArray *browserLanguages;
NSString *language;
NSUserDefaults *ud;
languages = [NSMutableArray array];
language = [[context activeUser] language];
[languages addObject: language];
browserLanguages = [[context request] browserLanguages];
[languages addObjectsFromArray: browserLanguages];
ud = [NSUserDefaults standardUserDefaults];
language = [ud stringForKey: @"SOGoDefaultLanguage"];
if (language)
[languages addObject: language];
[languages addObject: @"English"];
return languages;
}
- (NSString *) labelForKey: (NSString *) key
{
NSString *userLanguage, *label;
NSString *language, *label;
NSArray *paths;
NSEnumerator *languages;
NSBundle *bundle;
NSDictionary *strings;
label = nil;
bundle = [NSBundle bundleForClass: [self class]];
if (!bundle)
bundle = [NSBundle mainBundle];
languages = [[self _languagesForLabels] objectEnumerator];
userLanguage = [[context activeUser] language];
paths = [bundle pathsForResourcesOfType: @"strings"
inDirectory: [NSString stringWithFormat: @"%@.lproj",
userLanguage]
forLocalization: userLanguage];
if ([paths count] > 0)
while (!label && (language = [languages nextObject]))
{
strings = [NSDictionary
dictionaryFromStringsFile: [paths objectAtIndex: 0]];
label = [strings objectForKey: key];
if (!label)
label = key;
paths = [bundle pathsForResourcesOfType: @"strings"
inDirectory: [NSString stringWithFormat: @"%@.lproj",
language]
forLocalization: language];
if ([paths count] > 0)
{
strings = [NSDictionary
dictionaryFromStringsFile: [paths objectAtIndex: 0]];
label = [strings objectForKey: key];
}
}
else
if (!label)
label = key;
return label;