How apple store determine languages information an application - ios

I have uploaded my app to apple store.
Everything is fine except the "Languages" in "Details" tab.
I don't know why many languages in my app's information. (see below picture).
is this setting in ituneconnect ? (I have only one localize in
ituneconnect)
or somewhere in xcode ?

I believe this is based on the Localizations section in your Project Info tab

If you're using a library that includes localizations from certain languages, those languages will appear there as well, even though your entire app doesn't use those languages. Look for localization folders (.lproj) with strings files in them. This has happened to me in the past.

Related

How to change localisation from storyboard to strings file

TLDR: Xcode generated storyboards for each language, however I want the "old"(?) *.strings files. How?
I am currently in the process of localising my storyboards. After I enabled everything, Xcode generated another storyboard alongside the original (english) one for me to localise. I was surprised, I expected a Localizable.strings file, like the apple documentation still states as of April 3, 2021:
For storyboard and XIB interfaces, select the user interface files (files with a .storyboard or .xib filename extension). Xcode adds a strings file to the localization folder that contains the text to translate, as well as comments that describe the user interface components. For example, if you add German to an iOS app that uses storyboards, LaunchScreen.storyboard becomes a group containing a LaunchScreen.storyboard (Base) and LaunchScreen.strings (German) file.
I searched around the internet, in apple developer forums, watched both WWDC18 and 19 talks about localisation in Xcode, but did not find a single mention of translated storyboards.
After the initial translation, which works great due to the simplicity of just filling everything in, it gets frustrating however, since every layout change needs to be repeated for every language. This can't be intended, there must be a better way, right? Sadly, I didn't find anything. Even a hint to a piece of documentation regarding these storyboard copies would be greatly appreciated. Thanks!
There are some screenshots of the possibility to convert these two formats via a dropdown, like the third picture in this post. However for me, there is no dropdown next to the language item when I click the storyboard, neither on the group, nor individual base or localised ones:
Is this a bug or am I missing something here? I am using macOS Big Sur 11.2.3 with Xcode 12.4 (12D4e).
Turns out, you need to use the Base Localization feature, the dropdown then appears and you can convert existing storyboards to *.strings files.

Localizations files not available on Xcode 6

Well, I received this project from a buddy that used to work with me and now I am responsible for it Internalization. I need to transform the language of the app to English, that is currently Portuguese.
Although i was researching for some tutorials but all of them include one step i cannot make. I have noticed there were no files localized in any of the languages, and no folders .Iproj too.
In the info tab > Localizations shows up, in each language added in my "Resources" Tab, "0 Files Located".
as Soon as i click "Use Base Internationalization" or the "plus" button there is no file i can reference it to.
I need to follow with this project and cannot create another one, there is lots of code and configurations that need to stay in this one. Is there any solutions?
Thanks!
PS: StackOverflow won't let me post images yet :(
Have you ever visited this panel?

Additional languages are shown in supported languages, although only one language is supported in iOS

I recently uploaded an app to the app store. During earlier stage it required to be supporting 5 Languages and I added the strings file for it. But retracted later with language support in current version need to be supported in English only. After successfully pushing the app, the iTunes is showing supported languages as English + 4 additional languages. Can I edit the settings to show support language only as English? Do I need to delete localizable strings for other languages and submit again?
Yes, it will pick localization support from project settings. As many languages one adds to that setting, that many strings files will be generated. I would suggest to use English in project settings and remove the other languages locations files.
Refer below image: in the Localizations section, there should be only those languages which app is going to support.

IOS Localization after startup

I'm trying to localize an ios app after it was launched.
We should be able to select the desired language on the startup screen.
The app is already localized and available for 13 languages.
The only solution I found is to set the locale and relaunch the app, but we can't really do that, as it's not user friendly, and Apple will probably reject it.
The project contains most of a thousand of xib files, so I can't change all the resources "manually" either.
Is there any solution to reload the UIApplication ? Or an other trick to change the locale on the fly (and allowed by Apple) ?
I found lots of threads which were talking about this, but none very interesting compared to the scale of the project.
I don't think there is a way to do what you want without coming up with a custom solution. I found a solution on StackOverflow here where a user created his own localization solution.

iphone multilanguage support

I'm developing an Iphone app that has to support different languages.
I saw that the language has to be set within my app and not within iphone settings. So, do I have to force the language instead to take the current one? I didn't find examples over the internet. All examples need the current language of the application. I would like that the user choose his language when the application starts, then I will set a cookie and (in a way that iI don't know) the app refers automatically to my .lproj folders with different languages.
This is not possible using the default localization mechanisms in iOS. By default, the system chooses the .lproj folder according to the user's system language and does the localization automatically if you have localized NIBs and use NSLocalizedString() etc..
If you really want to change that behavior and "override" the system language, you have to implement your own version of NSLocalizedString that manually accesses the strings file in the .lproj folder you want. Be aware though that NIBs don't use your custom NSLocalizedString function. So either don't use NIBs at all or do the localizing of the NIBs in code instead of using different NIBs.
Your question isn't really very clear. There is nothing saying that "the language has to be set within my app and not within iphone settings" — it is in fact quite the opposite!
Cocoa has a pretty neat localization system that is quite easy to use (grumbles something about rotten localization workflows). Here's the full skinny on it — basically, have files in lproj folders, then use the NSBundle resource APIs to locate them (NIB loading and other subsystems use it automatically, so you don't even have to do work there!).
IIRC, you want NSLocalizedStringFromTable.
You create a .strings file for each language: eg "EN.strings", "JP.strings", etc...
These files will be loadable from the default bundle with the table parameter to NSLocalizedStringFromTable.
When the user picks a language, you switch which table (.strings file) to load the strings from.
One problem tho is that iOS strings will still be localized to the user's settings, or to whatever you have your app localized to in the Info.plist. So you might end up with a mix of languages.
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:#"it",#"en", nil] forKey:#"AppleLanguages"];
then if the iPhone language is set to english, my iPhone app will works always with "it". the first of the array.

Resources