2016-12-03 6 views
2

iOSアプリケーションのアクセシビリティラベルに割り当てるテキストには、「混合言語」が含まれています。iOS voiceOver/accessibility外国語の発音

たとえば、ドイツ語のテキストは「Bier und guter Sound」です。ドイツ語のVoiceOver言語で発音される「音」という単語は意味がありません(「サンド」と言うべきですが、「サンド」のように聞こえます)。

単語の言語に関する情報を音声で伝える方法はありますか?

答えて

5

に帰属する文字列を割り当てます(文字列型であってもAttributedStringを受け入れます)。UIAccessibilitySpeechAttributeLanguageを使用して、UI言語と異なる文字列の言語情報を設定します。例えば。あなたの場合は、値が "en"のUIAccessibilitySpeechAttributeLanguage(または "en-US"または "en_US"を試してください)が有効でない場合は範囲​​(start = 15、length = 5)を設定します。それはドキュメントによるとBCP 47の言語コードでなければなりません)。あなたはスウィフトを使用している場合

は、その型の安全性は、あなたがlabel.setValue(attributedString, forKey: "accessibilityLabel")を使用してタイプStringのプロパティaccessibilityLabelからAttributedStringは、あなたがこの問題を回避することができます割り当てることができません。ハック(または回避策)のビットが、動作します。

+0

興味深いことに、これは部分的に機能します。 – kampfgnu

+0

私のデバイスの一般的な言語は英語に設定されています。あなたの提案を使用して、英語のテキストに含まれるドイツ語が正しいと発音されるようにシステムをヒントします。アプリ内のローターを使用してアクセシビリティ言語をドイツ語に設定し、ドイツ語のテキストの中の英語の単語をヒントしません... iOSの忘れられた機能のように見えます...しかし、感謝します! – kampfgnu

+0

私の前のコメントを忘れて、問題は解決しました。しかし、私は '[UIApplication sharedApplication] setAccessibilityLanguage:@" de "]'どこかに呼び出すことが重要だと付け加えておきます。 – kampfgnu

関連する問題