diff options
Diffstat (limited to 'bindings/objc/src/SwordLocaleManager.mm')
-rw-r--r-- | bindings/objc/src/SwordLocaleManager.mm | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/bindings/objc/src/SwordLocaleManager.mm b/bindings/objc/src/SwordLocaleManager.mm index 582eee5..18e4eba 100644 --- a/bindings/objc/src/SwordLocaleManager.mm +++ b/bindings/objc/src/SwordLocaleManager.mm @@ -14,7 +14,7 @@ @implementation SwordLocaleManager + (SwordLocaleManager *)defaultManager { - static SwordLocaleManager *instance; + static SwordLocaleManager *instance = nil; if(instance == nil) { // use default path instance = [[SwordLocaleManager alloc] init]; @@ -27,23 +27,27 @@ // set locale swManager NSString *resourcePath = [[NSBundle bundleForClass:[SwordLocaleManager class]] resourcePath]; NSString *localePath = [resourcePath stringByAppendingPathComponent:@"locales.d"]; + [self initLocaleWithLocaledPath:localePath]; +} + +- (void)initLocaleWithLocaledPath:(NSString *)aPath { sword::LocaleMgr *lManager = sword::LocaleMgr::getSystemLocaleMgr(); - lManager->loadConfigDir([localePath UTF8String]); + lManager->loadConfigDir([aPath UTF8String]); //get the language NSArray *availLocales = [NSLocale preferredLanguages]; NSString *lang = nil; - NSString *loc = nil; + NSString *loc; BOOL haveLocale = NO; // for every language, check if we know the locales - sword::StringList localelist = lManager->getAvailableLocales(); + sword::StringList localeList = lManager->getAvailableLocales(); NSEnumerator *iter = [availLocales objectEnumerator]; while((loc = [iter nextObject]) && !haveLocale) { // check if this locale is available in SWORD sword::StringList::iterator it; sword::SWBuf locale; - for(it = localelist.begin(); it != localelist.end(); ++it) { + for(it = localeList.begin(); it != localeList.end(); ++it) { locale = *it; NSString *swLoc = [NSString stringWithCString:locale.c_str() encoding:NSUTF8StringEncoding]; if([swLoc hasPrefix:loc]) { @@ -56,7 +60,7 @@ if(haveLocale) { lManager->setDefaultLocaleName([lang UTF8String]); - } + } } @end |