Localization_setting.bundle

Просто хотел спросить, как локализовать Xibs через settings.bundle? Собственно, мне нужно сделать свой Xib арабским через settings.bundle. Я много искал для этого. Пожалуйста, дайте мне правильные предложения, иначе мне нужно будет перекодировать свое приложение и удалить все содержимое Xibs и сделать это с помощью кодирования, что займет много времени.

Спасибо заранее.


person aamritrao    schedule 02.03.2011    source источник


Ответы (5)


Я перешел по этому сообщению, чтобы получить приложения локализовано.

person petert    schedule 20.03.2011

вы можете локализовать свой файл nib, сохранив файл xib в папке определенного языка, например. en.lproj/View1.xb — английская версия, а ar.lproj/View.xib — арабская версия для более подробных инструкций см. это

ОБНОВЛЕНИЕ: для этого просто создайте

  • View-en.xib
  • View-ar.xib

а затем на основе ваших пользовательских настроек

NSString *xibName = [NSString stringWithFormat:@"View-%@", @"en"];    
id localVC = [[LocalViewController alloc] initWithNibName:xibName bundle:nil];
person yasirmturk    schedule 21.03.2011
comment
Эй, я на самом деле говорил о локализации через настройки. То, что вы указываете, — это локализация, выполняемая, когда мы меняем язык в iphone. Но я ищу Локализация через пакет настроек See Trackers app. - person aamritrao; 21.03.2011

нажмите «получить информацию», щелкнув правой кнопкой мыши xib, который вы хотите локализовать ... и на общем экране вы увидите кнопку «Сделать файл локализуемым».

person theiOSDude    schedule 04.04.2011

@aamritrao, если вы создаете два отдельных файла XIB, по одному для каждого языка, вам не следует давать им разные имена, так как это излишне усложняет ситуацию. Просто назовите их одинаково, но поместите в разные локализованные папки проекта.

So:

en.lproj/View1.XIB

и

ar.lproj/View1.XIB

Затем, когда вашему приложению потребуется View1.XIB, оно всегда будет использовать соответствующий язык для языка, который пользователь установил в настройках своего устройства.

Извините, если это не то, что вы ищете. Не уверен, что вы имеете в виду под «Локализация с помощью пакета настроек»... не могли бы вы объяснить подробнее?

person jj0b    schedule 07.04.2011
comment
Привет, Локализация с помощью пакета настроек означает, что мы можем увидеть наше приложение в пакете настроек и изменить язык оттуда. Пожалуйста, смотрите приложение Trackers. - person aamritrao; 08.04.2011
comment
Похоже, что они сами обрабатывают всю локализацию, а не устройство и ОС, потому что я не думаю, что можно программно изменить языковые настройки устройства из вашего приложения. Для этого вам нужно научиться создавать набор настроек (много информации в документах Apple и в Интернете), а затем вам понадобится логика, основанная на настройках, которые будут использовать разные xibs, plist и т. д. для обслуживания контента. в вашем приложении. - person jj0b; 09.04.2011

Эй, просто вставьте этот следующий код в ваш файл main.m

       NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
        NSString *strLang=[[NSUserDefaults standardUserDefaults] stringForKey:@"PSMultiValueSpecifier"];
       NSLog(@"Hi%@",strLang);
    //    
        if ([strLang isEqualToString:@"0"]) {
            [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
            [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", @"ar",  nil] forKey:@"AppleLanguages"];
            [[NSUserDefaults standardUserDefaults]synchronize];
        }
        else if([strLang isEqualToString:@"1"])
        {
            [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
            [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"ar", @"en", nil] forKey:@"AppleLanguages"];
            [[NSUserDefaults standardUserDefaults]synchronize];
        }

  int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
person aamritrao    schedule 05.09.2011