2016-12-03 4 views
2

내 iOS 앱의 액세스 가능성 라벨에 지정한 일부 텍스트에는 "혼합 언어"가 포함되어 있습니다.iOS voiceOver/accessibility foreign words 발음

예를 들어, 독일어에서는 텍스트가 "Bier und guter Sound"가됩니다. 독일어 VoiceOver 언어로 말한 "소리"라는 단어는 의미가 없습니다 ("소리가 나다"라고 말하지만 "일요일"과 같이 들립니다).

단어의 언어에 대한 정보를 음성으로 전달할 수있는 방법이 있습니까?

답변

5

네는 accessibilityLabel (가 String 형의 경우에도, 그것은 AttributedString의를 받아 들일 것)에 의한 문자열을 할당하고, UI 언어와 다른 문자열의 부품에 대한 언어 정보를 설정 UIAccessibilitySpeechAttributeLanguage를 사용합니다. 예 : 귀하의 경우 범위가 (시작 = 15, 길이 = 5) UIAccessibilitySpeechAttributeLanguage의 값이 "en"(또는 "en-US"또는 "en_US"가 작동하지 않으면 시도해보십시오. 받아 들일 것입니다, 그것은 문서에 따라 BCP 47 언어 코드 여야합니다). 당신은 스위프트를 사용하는 경우

후 해당 유형의 안전은 label.setValue(attributedString, forKey: "accessibilityLabel")를 사용하여 유형 String의 재산 accessibilityLabelAttributedString, 당신은이 문제를 해결 할 수 할당 할 수 없습니다. 약간의 해킹 (또는 해결 방법)이지만 작동합니다.

+0

흥미로운 부분적으로 작동합니다. – kampfgnu

+0

내 장치의 일반 언어가 영어로 설정되어 있습니다. 당신의 제안을 사용하여 영어 텍스트에 포함 된 독일어 단어에 대한 시스템을 암시하는 것이 정확하다고 발음됩니다. in-app 로터를 사용하여 접근성 언어를 독일어로 설정하고 독일어 텍스트 안에 영어 단어를 암시하지 않습니다 ... iOS에서 잊혀진 기능처럼 보입니다 ... 감사합니다! – kampfgnu

+0

내 이전 의견을 잊어 버려 문제가 해결되었습니다. 하지만 나는 [[UIApplication sharedApplication] setAccessibilityLanguage : @ "de"]'어딘가에 호출하는 것이 중요하다는 것을 덧붙여 야합니다. – kampfgnu