2012-05-10 3 views
1

Я пишу приложение iOS, которое работает в многоязычной среде. Как следствие, программа может работать на языке, отличном от языка системы. Пример: мой телефон работает на английском языке, и программа работает на немецком или французском языках. Все тексты отображаются на правильном языке.Как настроить язык VoiceOver на панели навигации?

Теперь я хочу, что VoiceOver произносит тексты на правильном языке, который работает в большинстве случаев мелкие, используя следующий метод:

- (void)setVoLanguage:(NSObject*)object 
{ 
    if (prefLanguage == 0){ 
    [object setAccessibilityLanguage:@"de-DE"]; 
    } else { 
    [object setAccessibilityLanguage:@"fr-FR"]; 
    } 
} 

Я пытаюсь позволить VoiceOver говорить тексты в контроллере навигации в правильный язык, используя один из следующих подходов:

[self setVoLanguage:navController]; 
[self setVoLanguage:navController.title]; 
[self setVoLanguage:navController.navigationBar.topItem]; 
[self setVoLanguage:navController.navigationBar.backItem]; 
[self setVoLanguage:navController.navigationBar.topItem.title]; 
[self setVoLanguage:navController.navigationBar.backItem.title]; 
[self setVoLanguage:navController.navigationBar.topItem.titleView]; 
[self setVoLanguage:navController.navigationBar.backItem.titleView]; 

Но результат, что немецкие или французские тексты в навигационной панели всегда говорят, используя английский голос.

Кто-нибудь знает, как переключить язык VoiceOver на панель навигации?

спасибо.


Обновление: здесь работа вокруг, которая работает для меня с помощью IOS 5.1.1:

- (NSString *)accessibilityLanguage { 
    cnlAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

    if (appDelegate != nil) { 
     if ([appDelegate prefLanguage] == 0) { 
      return @"de-DE"; 
     } else { 
      return @"fr-FR"; 
     } 
    } 
    return @""; // this line should never be reached 
} 

Мой объект AppDelegate является объект, который сохраняет текущий язык. Возможно, проблема с переписыванием объектов для всех объектов устраняет проблему.

Я надеюсь, что это может быть полезно для кого-то там.

ответ

0

Просмотрев библиотеку разработчиков iOS, похоже, что это называется navigationController против navController. Вы пробовали это?

+0

navController - это только имя моего объекта. Так что это o.k. Apple подтвердила, что это ошибка в iOS. Поэтому вы не можете установить (пока) язык VO в навигационных барах. – mschmitt

+0

Хорошо, что они подтвердили. –

+1

Наконец-то я нашел работу, которую хочу поделиться с вами. См. Мой отредактированный вид выше. – mschmitt

Смежные вопросы