Требуется текущая языковая локаль, следующий код должен возвращать код:
NSArray *languagesArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languagesArray objectAtIndex:0];
Затем вы можете сделать следующее
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.lproj/mydatabase.db", currentLanguage]];
Возможно, вы захотите проверить, существует ли путь и является ли он допустимым файлом, если нет, то можете использовать какой-нибудь путь по умолчанию, например, путь для английского языка (en.lproj)
Редактировать: есть другой способ сделать это, используя предпочтительные языки NSLocale, потому что тогда вы получите список предпочтительных языков, поэтому некоторый обновленный код для первого бита будет:
NSArray *languagesArray = [NSLocale preferredLanguages];
NSString *currentLanguage = [languagesArray objectAtIndex:0];
В конце концов вы получите что-то вроде этого:
NSString *pathComponent = [NSString stringWithFormat:@"%@.lproj/mydatabase.db", currentLanguage];
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:pathComponent];
NSString *activePath = nil; // This will store the active language file
// Check if the file exists...
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
activePath = path;
} else {
activePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"en.lproj/mydatabase.db"]; // Fallback
}
Обратите внимание, что приведенный выше код не проверен, но его должно быть достаточно. Возможно, вам придется немного его изменить ...