Да, назначить присваиваемую строку accessibilityLabel
(даже если она имеет тип String, она принимает AttributedString) и использует для установки информации о языке для частей строки, которые отличаются от языка пользовательского интерфейса. Например. в вашем случае вы задали бы диапазон (start = 15, length = 5) равным UIAccessibilitySpeechAttributeLanguage
со значением «en» (или попробуйте «en-US» или «en_US», если это не сработает, не уверен сейчас, какой из них будет приниматься, это должен быть код языка BCP 47 в соответствии с документами).
Если вы используете Swift, то его безопасность типов не позволяют присвоить AttributedString
свойству accessibilityLabel
типа String
, вы можете обойти эту проблему с помощью label.setValue(attributedString, forKey: "accessibilityLabel")
. Немного взлома (или обходного пути), но работает.
интересно, это работает частично. – kampfgnu
мой общий язык устройств установлен на английский. используя ваше предложение, чтобы намекнуть, что система для немецкого слова, содержащегося в английском тексте, произносится правильно. используя ротор в приложении, чтобы установить язык доступности для немецкого языка и намекнуть английское слово внутри немецкого текста, не ... выглядит как забытая функция в iOS ... спасибо, хотя! – kampfgnu
забыть о моем предыдущем комментарии, проблема решена. но я должен добавить, что важно вызвать '[[UIApplication sharedApplication] setAccessibilityLanguage: @" de "]' где-то. – kampfgnu