Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
static NSBundle* saved_language_bundle = nil;
static int saved_language = -1;
NSString* languageSelectedString(NSString* x1)
{
NSUserDefaults* prefs = [NSUserDefaults standardUserDefaults];
NSString * result = nil;
int language = [[prefs valueForKey:@"uoslanguage"] integerValue];
if (language == 2) // это проверка того что все строки локализуются - включашеь язык и на тех формочках где нге то что тебе надо не появляется тест
{
return @"test";
}
if ( language == saved_language ) // бандл грузится только 1 раз
{
result = [saved_language_bundle localizedStringForKey:x1 value:@"" table:nil];
} else
{
saved_language = language;
if ( language == 1)
{
NSString* path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
saved_language_bundle = [NSBundle bundleWithPath:path];
result = [saved_language_bundle localizedStringForKey:x1 value:@"" table:nil];
}
else if ( language == 0)
{
NSString* path = [[NSBundle mainBundle] pathForResource:@"ru" ofType:@"lproj"];
saved_language_bundle = [NSBundle bundleWithPath:path];
result = [saved_language_bundle localizedStringForKey:x1 value:@"" table:nil];
} else
result = @"error";
}
return result;
}Есть такое понятие как NSBundle — набор локализованных ресурсов приложения.
An NSBundle object represents a location in the file system that groups code and resources that can be used in a program. NSBundle objects locate program resources, dynamically load and unload executable code, and assist in localization.
Мгновенное изменение языка приложения