Я пишу приложение 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 является объект, который сохраняет текущий язык. Возможно, проблема с переписыванием объектов для всех объектов устраняет проблему.
Я надеюсь, что это может быть полезно для кого-то там.
navController - это только имя моего объекта. Так что это o.k. Apple подтвердила, что это ошибка в iOS. Поэтому вы не можете установить (пока) язык VO в навигационных барах. – mschmitt
Хорошо, что они подтвердили. –
Наконец-то я нашел работу, которую хочу поделиться с вами. См. Мой отредактированный вид выше. – mschmitt