VoiceOver on iOS reads our widget using english voice - ios

We have newly created a Widget using WidgetKit for our app. The widget is localized in Norwegian and English, and localization works for the texts in the widget, the correct text is used based on what language set for the iPhone.
But when I turn on VoiceOver, the voice pronounces the words in English, even if the phone is set to Norwegian, and Norwegian texts is shown in the widget.
I find it wierd that the localization works, but that VoiceOver doesnt understand to read it in Norwegian. I tested other widgets, and there VoiceOver pronounces the words in Norwegian. This also works fine in our main app.
Have anybody experienced this before? Anybody have a clue to what we need to change in the widget to get it working properly?

I found the answer. I just needed to add a InfoPlist.strings file in the widget and localize it (in Norwegian and English in our case). We have no strings in Info.plist that needs translation, so the InfoPlist.strings file have no content. But I guess iOS needs it to be in place to understand what languages to support for VoiceOver.

Related

UIKeyboardType.numberPad is always english

I'm trying to make my app accessible with Voice Over. On one of the screens I have a text field for entering number. Nothing special, just default UITextField with keyboardType set to UIKeyboardType.numberPad. Voice Over is actually working well and read all selected keyboard buttons. The problem is that keyboard is always english (with english letters under digits). And when you switch iPhone language to something other than english, Voice Over mixes two languages:
When you select digit on keyboard with single tap, Voice Over read it in current iPhone language (russian in my case)
When you double tap (to enter digit into text field), Voice Over always read it in english
What I changed in setings:
Set iPhone language to russian
Set region to russia (not sure if it matters at all)
In "General -> Keyboard -> keyboards" moved russian keyboard to the top of the list
But nothing helped. UIKeyboardType.numberPad and UIKeyboardType.decimalPad are always english (UIKeyboardType.default is russian as it should be)
Am I missing something?
I also tried to change keyboard language programmatically - iPhone: Change Keyboard language programmatically. But that didn't work either.
It's confusing for sure, but it sounds like your app is not actually localized for Russian. Try localizing it and see if that improves things.

IOS: VoiceOver changes to English in WebView

I'm adding VoiceOver support to an app which at the moment only supports Norwegian. For most of the app VoiceOver correctly reads the text as Norwegian.
However, one page contains a webview which shows the terms and conditions (downloaded from a URL). For this page VoiceOver switches to English voice, even though this text is still in Norwegian.
I've tried to set accessibilityLanguage to "nb-NO" for both the webview and the containing viewcontroller but the text is still read as English. Do anyone know how I can make the webview be read in Norwegian?
Consider adopting the lang HTML attribute. This will trigger VoiceOver to generate speech in the appropriate language. Hat tip to Adrian Roselli for the suggestion.
Trying adding HTML lang="" attribute in your page. you can refer below url http://www.iana.org/assignments/language-subtag-registry for more specific value for lang attribute.
Hope this will help

Swift Bar button item set to system item "save" ignores app language

In my app I have a bar button item in my top navigation bar. I have set the button system item to "Save" which will display the button as Save
But even if my phone has a different language set the button still shows up with the text "Save"- english when I start the app
The language that various UI components appear in your app is based on two things:
The device's list of languages under the "Preferred Language Order" section of the "Language & Region" page of the Settings app.
The languages supported by your app as defined by the localization bundles your app provides.
An app only supports a single language by default. To support additional languages you must add an additional bundle for each language and then provide appropriate localization resources such as strings files and localized storyboards, etc.
Based on your app's supported languages and the devices settings, UI components will appear in a single, chosen language.
Lets say your app supports English, Spanish, and Chinese.
Now lets say a user's device has the languages German and English, in that order, listed on the Language & Region screen.
Your app will appear in English to this user. Based on your question, you seem to expect the Save button to appear in German. But if your app doesn't support German, why have the Save button appear in German and the rest of the app appear in English? That would be confusing.
So now go back to the simple case. You have a basic app and you haven't done any localization yet. Your app only has the one bundle - the default language for your app. Lets say that is English. Since your app only supports English, it would be really confusing for the Save button to be in any other language while the rest of the app is in English. So no matter what language the user has set for their device, the Save button will be in the app's only language, English in this example.

iOS - Internationalisation and Localization

Is it possible to change App language on Button tap ? I'm developing an App which should support multi languages and inside the App, there is option to choose the language (in the form of button). By default, App placeholder text will be in English, once the user choose some other language, placeholder text should change as per the language selected. I have gone through few examples in Internet, i couldn't find anything close to my requirement. I have seen example from appcoda and ray, but switching the language within the app is not provided. can somebody tell me how to achieve this ?
Thanks,
Pradeep

How to change default language of UIActionSheet buttons?

In an iOS5 app, I have a UITextView with data detectors for phone numbers and so on. When I tap the underlined link / detected data, everything works as expected, but when I tap that link a little longer, an UIActionSheet appears (Call xyz, Add to Contacts and so on). This is fine as well except the language of those buttons English but it should be German. I already set the default language of the app to German in xcode and also deleted the English localization but the button titles remain as they are. Is it possible to change the language somehow?
Found the answer myself. Originally, I thought I need to have the English localization because when I deleted the (only one) localization, the storyboard file was deleted as well. The solution now was very simple. I added the German localization (the storyboard is copied) and then deleted the English one. This way the action sheet buttons are German now and the storyboard file remains in the project - problem solved.
Sorry for being too stupid to try this before :-/

Resources