Ошибка в интернационализации iPhone - PullRequest
0 голосов
/ 01 февраля 2012

Я использую iOS 5, XCODE 4.2

В моем loginViewController:

-(IBAction)loginButton:(id)sender{
    textClass=[[MainScreenController alloc ] init];
    NSLog(@"ShowText called");
    textClass.selectedLanguage=currentLanguage;
    [self.view addSubview:textClass.view] ;
    NSLog(@"txtclaslan=%d",textClass.selectedLanguage);
}

В моем методе MainViewController viewDidLoad::

mainScreenTitle.text=[self languageSelectedStringForKey:@"screenTitle"];

И в languageSelectedStringForKey:

-(NSString*) languageSelectedStringForKey:(NSString*) key{
    NSString *path;
    if(selectedLanguage==ENGLSIH_LANGUAGE)
        path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
    else if(selectedLanguage==TURKISH_LANGUAGE)
        path = [[NSBundle mainBundle] pathForResource:@"tr" ofType:@"lproj"];
    else
        path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];

    NSBundle* languageBundle = [NSBundle bundleWithPath:path];

    NSString* str = [languageBundle localizedStringForKey:key value:@"" table:nil];
    return str;
}

Вот в этом методе languageSelectedStringForKey, когда я загружаю MainViewController I, мое приложение вылетает.Я не получаю никакой ошибки, только эта строка выделена

NSBundle* languageBundle = [NSBundle bundleWithPath:path];    < Thread 1

В чем может быть проблема с этим?

Заранее спасибо

1 Ответ

0 голосов
/ 01 февраля 2012

Как предложено: Глядя на ваш код, кажется, что если язык не английский и не турецкий, то путь не задан.

Вы также можете последовать этому совету из описания метода [NSBundle localizedStringForKey: value: table:]:

"Используя пользовательское значение по умолчанию NSShowNonLocalizedStrings, вы можете изменить поведение localizedStringForKey: value: table: для регистрации сообщения, когда метод не может найти локализованную строку. Если для этого значения по умолчанию установлено значение YES (в глобальном домене или в домене приложения), а затем, когда метод не может найти локализованную строку в таблице, он записывает сообщение на консоль и вводит ключ с заглавной буквы перед его возвратом. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...