determining user's preferred AVSpeechSynthesisVoice for a given language - ios

My iOS app provides AVSpeechSynthesizer support in multiple languages (not just the device's current language). In Settings->General->Accessibility->Speech->Voices->Spanish, the user can set a preferred voice to either "Spanish (Spain)" or "Spanish (Mexico)" (which correspond to es-ES and es-MX, respectively). Similarly with Portuguese (pt-PT, pt-BR), French (fr-FR, fr-CA), etc.
If one of my users wants to have my app speak a Spanish phrase, how can I determine which of the available Spanish voices the user has selected in Settings?
I tested [AVSpeechSynthesisVoice speechVoices] to see whether the ordering of the voices changes when user preferences changes, but the answer appeared to be no. [AVSpeechSynthesisVoice voiceWithLanguage:] requires the full language-locale string, so passing in "es" gets you nil even though two Spanish voices are available by default. I scanned through all the keys in [NSUserDefaults standardUserDefaults], but there's nothing relevant there. And I've looked through the UIAccessibility documentation without finding what I need.

The approach the works for me is as follows:
let defVoice = AVSpeechSynthesisVoice(language: NSLocale.current.languageCode)
I've tested in on English, of which there are many variants. It returns the voice that the user has selected in Settings as their preferred voice for their current locale.

Related

How do I change the tracking permission request alert language?

On iOS 14, we need to implement AppTrackingTransparency to request the user's permission.
This permission alert always appears in English. I would like to switch to another language, for example Portuguese.
The message I enter in Info.plist appears in Portuguese, but the title and buttons appear in English
The reason is that you are merely using Portuguese words in your app. You have not written and structured an app that is localized for Portuguese. Your app's localization base language is still English.
The system texts, such as the title and buttons of the alert you're talking about, will therefore appear in English even on a device whose language is set as Portuguese.

How to localize Google Ads for App Install Campaign?

I am trying to create App Campaign available for many countries and languages. The App Name and all contents are in seven different languages.
My question is:
Is it possible to set up a single App campaign, so that all add assets (including text and App Store images) are localized by Google automatically?
I mean, I will write "Remember the Colors" in ad assets, and it shows "Remember the Colors" in UK (if the phone language is English) with English version of the App name
AND "Recuerda los Colores" in Spain (if the phone language is Spanish) with Spanish version of the App name.
Thank you in advance for your support.
I may create different app campaigns, but prefer to have single one.
You'll need to setup a different campaign for each region unfortunately. Locations can only be assigned at campaign level in Google Ads.
https://support.google.com/google-ads/answer/1722043?hl=en

Accessibility voice-over support for different languages which doesn't support in iOS by default?

I'm developing iOS application for the blind people. In the beginning of the application user can select his/her preferred language and according to that app's contents(text) will change to selected language.
App support users who are understand English and Tamil.
I don't have any issues if user selected "English" as proffered language, but I need to know how can I convert "Tamil to Speech" voice over in iOS? ( basically a language doesn't support by default in voice over)
Is there another way to achieve this functionality?

App Store description translation in non supported language

I've been tearing my hair out trying to understand how the translation systems works on App Store :
I wanted to release my app to Poland and discovered that polish is not supported on the App Store. Fine ! Let's put some polish references, description and screenshot in my "english" default language while keeping the normal english in the "uk_english" non default language.
(my app is not available in the US).
My app is now live and polish users see the non default "uk-english" description ...
According to : Localized app description does not appear on the App Store I have settled every international parameters of my iPhone in polish, with a polish app store account, and I don't see the default "english" setting, but the non-default "uk english".
Why ?
Typically there is no "default" language. Rather there is a list of languages in order of preference.
Since the UK is closer to Poland than the USA, it makes sense for UK english to be preferred over US english.
I would send an email to Apple asking how to deal with this situation.

How to set a specific keyboard inside an iPhone app?

In an iPhone app I want the user to do some input in a different language.
For example the user is an English speaker and has his(or her) device set with the English language. When running my app he(or she) will have to input some French and some Japanese.
Is there a way I can bring the proper keyboard from inside the app without forcing the user to change his(or her) usual settings. According to what I have read up to now, I am not sure there is a good answer. I still hope.
Thanks for any tip.
You can usually pick certain keyboards (numeric, email, etc) from the interface-builder-like aspects of UITextFields, so take a peek at the code options for setting those things. You may be able to pick it that way.

Resources