UIDocumentInteractionController is great but how about the language setting? - ios

I'm using the UIDocumentInteractionController for iPad and everything is fine, but how can I change the buttons or menus of UIDocumentInteractionController presentation to any other language? All are in English. For example I noticed that: on Apple's e-mail app, if there is a attached file and when I touch enough on it, it presents the necessary menu and buttons according to the locale language setting on the device.

I was having similar issue and after short discussion in devforum and one test project I found the problem.
In general Aplle's controllers respect localization of your app, so they are not displayed in device's language if the device language is not included in project's localization language list.
I had one other problem, that I edited project.pbxproj with aim to have my language as the development language (developmentRegion = English; to developmentRegion = Czech;). So I had Czech present on the list, but controllers were still in English. After changing the development region back and adding Czech to the list everything works just fine.

What I found out is the following:
In your info.plist when you set "Development Localization" to a specific language (i.e. "en"), then your UIDocumentInteractionController will present all text in this language.
When you remove "Development Localization" from Info.plist completely, then the UIDocumentInteractionController will present all text in the language you have set on your device.
I was building and Ionic Capacitor app, and on setup the "Development Localization" field in the Info.plist file was prefilled with the value "en". So i removed it. Hope this helps someone.

Related

Change app language to English by default

Have done localisation to app with three languages Korean, Chinese and English and it is working correctly. But now I want my app to run with English only, even if the language is changed in settings. Please help me out with this.
Try this if your requirement is like this,
Open your app in Xcode and in that click on main storyboard,
Then go to File Inspector and Uncheck the check boxes of localisation files,
Hope this will help you.

iOS - App description showing incorrect language in App Store

I localised my app via iTunesConnect but it does not show up in App Store. The primary language of my app is English.
When I go to Japanese App Store my app's description is still showing English while other apps show localised language.
In iTunesConnect, after I added a new version, I select Japanese on the top right, typed in Japanese app description, keywords and screenshots.
I also made sure that my phone language is Japanese.
What am I doing wrong?
This is a tricky one. It is not enough to just add localized description on AppStoreConnect. Apple shows Languages in this section according to the files localized in your app in Xcode.
Facebook example
Easy way to do this is to change "Localization native development region" field in Info.plist file:
Changing development region
IMPORTANT NOTICE: However, this solution is enough only if you don't localize any other files (solution for this is bellow, you must do some extra steps).
You need to open Xcode, select your project in files structure, select Project (not targets) and add the languages you want to be shown there (in your case Japanese). On the following image there are a couple of languages (don't check the "Use base internationalization" checkmark):
Localizations languages
IMPORTANT NOTICE: You must localize at least one file in your target in order to have this information about languages shown on the AppStore (as you are doing this on per target basis, you can have different languages shown for each target, good for white label apps). I usually localize LaunchScreen.storyboard as you usually don't have any text here.
In order to localize storyboard, you need to tap on it and in the right menu tap "Localize..." button:
Localize button
After that, just check the languages you want it to be localized to (in my example German.
Localized storyboard languages list
You may want to check again tomorrow. I found in the past that updates to international app store pages may take up to 24 hour to propagate.

iOS app in non-english language

I have developed an app which should be in Norwegian language only. The app does not use localisation, since it should appear in one language only (Norwegian). However, I have set "Localisation native development region" to "no" in the Info.plist file. I also use base localisation.
The app launches and behaves correctly in Norwegian language for any device language and regional setting. So far, so good.
The problem arises on the app-store, where the app language states English and not Norwegian as I would expect. I have created the iTunes Connect record for Norwegian only, and I believe the problem is related to information iTunes Connect extracts from the app-image it self. However, I cannot figure out which setting in Xcode that needs to be altered in order to reflect Norwegian on the app-store. I use Xcode 7.2.
Any clue on how to solve this issue would be very much appreciated.
I finally managed to get this working by:
Use the latest version (7.3.1) of Xcode
Add InfoPlist.strings and Localizable.strings to the project
Add Base and Norwegian Localisation to the project
Localize InfoPlist.strings and Localizable.strings to Norwegian
Localise Storyboard/XIB files to Base and Norwegian
Make sure all other localisations are removed from the project and delete the belonging files and folders. Only Base and Norwegian should be left
Set "Localisation native development region" to "nb-NO" in info.plist
Add "CFBundleDisplayName" = "Your App" to InfoPlist.strings
This should also apply to any other language for single language apps.
What you need to do is the following:
Go to iTunes Connect
Select your app
Choose a new build
Tap on the language (Where the arrow points)
Select a new language
When you have added the new language you are able to delete the english.

iOS app not using the only localization available

Good morning,
I have an iOS app with English and Hebrew localizations and a device set on English.
I need to build the app with Hebrew only for this version (so the app will launch in Hebrew).
I tried to delete en.lproj and remove the references in Xcode, but the app just uses the base localization in the storyboard and the string I use as a parameter in NSLocalizedString, instead of the Hebrew files.
I've also tried to change the development language to Hebrew: How do I change the Development language in Xcode before internationalizing my app?
but that didn't help.
When setting NSUserDefaults-AppleLanguages key in main() it works but not on the first launch.
I would love to use a different implementation for NSLocalizedString so I could manage the localizations myself, but the problem is that English is written from left to right and Hebrew is from right to left, so updating the strings is not enough.
Do you have any idea how can I force the app to launch for every device in the localization that I choose?
Thanks!
I think that I found what was the problem, I left a single image localized in English.
It seems that when there is anything localized to a language, it adds the language to a list of supported languages. Because the device is in English and the app "supports" it, English will be used.
If anyone knows a way to modify this list of supported languages without deleting files, and making it work from the first launch, and maybe even having a different list for each target, please let me know!

(Base) localization not working in iOS 7?

It seams base localization does not work on iOS7?
I have an app (its available on the app store) that has localisations for Dutch, Chinese and a base localization = English. This looks like this in xcode 6:
The plist file contains the "Localization native development region" key:
Problem:
When the app runs on on iPhone iOS7 configured for English, it
uses the Dutch localization ?! I would expect that iOS uses the base
localization since its configured as English?
I do not have a "development language" entry in the Localizations
section of Xcode, I have seen this in some posts, what is the meaning of this "development language"? And could this be a possible cause or something?
I can solve the problem by adding an localization language "English" (which then seams to become the development language, I have tested this) but this would simply be a duplicate of my "base" language. Surely this is not the way to go?
I know there are many topics on localizations already but I have read them all (I believe) and cannot find a clear answer.
1.Localization native development language states the preferred language to be use if the iOS language and your app languages doesn't match, so I'm thinking about a storyboard that has been localized in english and a strings file in english, to make your app use english language.
2.Development language is not the same of the first point, is the base language, by default is set to english and it doesn't seems to exist a clear way to change that (I've filed a radar to Apple about it asking for xcode to show a menu at the beginning of each project). To change it you need to do it manually, but appstore will always show english as language
3.This is the solution, when iOS doesn't find a suitable localization it iterates through an array of laguages until it finds an existing one, if you add an english localization you could solve the problem.
Appstore reads directories in your app bundle

Resources