iOS localization for country specific region/language - ios

I'm developing an iOS app with localizations for different languages. For example lt.lproj, et.lproj, lv.lproj directories. And now I need to create translation files for specific region so created directories lt-RU.lproj, et-RU.lproj and lv-RU.lproj (Xcode named automatically). Everything working as expected, but when trying to upload an update I get an email warning
Unrecognized Locale -
The directory located at ( 'Payload/.../lt-RU.lproj' ) has an
unrecognized locale name. Refer to the Language and Locale Designations
guide for more information on naming your language-specific
directories.
After you’ve corrected the issues, you can use Xcode or Application
Loader to upload a new binary to iTunes Connect.
I have read apple Internationalization and Localization Guide and don't understand whats wrong in my language-specific directory names. May be use underscore separator?

My question was little bit wrong, because I need to change language not region for different countries. My project contains 3 targets for different counties so to add Russian translations I decided to create 3 directories containing ru.lproj and target needed app.

Related

Cannot automate localization in my iOS generated App

I am generating an iOS app via some tools. No need to concern about them, I have to do things that way.
Localization
The app is generated just fine, however I need to have the app be available for a certain set of languages. My app is actually a cross-platform app, and i am handling translation at JavaScript level. So my app actually picks the proper strings.
I just need to have my app be recognized in the Store as supporting those languages
Manual approach
I used to handle this by automatically generating language folders in Resources. So my automation scripts, would basically take the list of supported languages (say it, en and fr) and generate the following folders and files in my project:
MyApp
|
+-MyApp-Info.plist
+-Resources
|
+-en_US
|
+-Localizable.strings
+-it_IT
|
+-Localizable.strings
+-fr_FR
|
+-Localizable.strings
And Localizable.strings is just a placeholder file with a C-style comment in it.
Not working anymore
This did the trick so far, but now it is not really working anymore. The store recognizes my app to be only an English app, it does not list French and Italian anymore.
I am targeting iOS 8.0+ and developing on latest version of XCode.
How can I fix this?
Try renaming the localization folders so they have the ".lproj" suffix. Use the naming scheme as defined in the Apple Internationalization and Localization Guide under Managing Strings Files Yourself.
I would also add at least one string resource in the Localizable.strings file for at least one of the languages. At least one localized string resource may be needed to flip the bits and mark the app as supporting the additional languages.

How apple store determine languages information an application

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.

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.

Bahasa Melayu in iOS

I have an App whose target audience is based in Malaysia and can read and type in Malaysian Language. I have Localizable.strings file in Malaysian language.
There is an option in iOS for "Bahasa Melayu" in Language selection in Settings.app
I want to know which language should I select in Xcode so that my the device chooses the correct Localizable.strings file.
Any other details I should provide?
You have to use the abbreviation ms.lproj for the folder. I heard, all indonesian countries learn bahasa at school and I created also a folder with the same files inside a folder called id.lproj. Maybe you can tell me, if it's right that most people in Indonesia talk bahasa like a basic language.
The folders should look like this
If you insert the localization folder into your project it looks like this:

Several localizations yet still showing English only

I decided to merge several of my projects into one project using the same code base and use different targets for the different versions of my application.
My application is translated to 7 languages with English as default. The other languages are: Swedish, Dutch, German, French, Polish and Spanish. The translations worked like a charm before. I am using the NSLocalizedString and have my Localizable.strings which is translated.
However, now that I merged my projects together, and also added the InfoPlist.strings file, the application incists on using the default texts (English). When I start the application and get the "share location" question, I get the question in the localized language (So the OS does get the localization), but the rest of the application is still in English.
The files are correctly translation and have no errors. I have tested several languages, but all are in English.
If I set the CFBundleDevelopmentRegion to e.g. Swedish, the whole app is in Swedish instead. So the localizations work, but the app ignores the system setting.
Am I missing something?
I found the answer to my problem. I have several strings files, one for my app translation, and one for each target called InfoPlist.strings which contains just CFBundleDisplayName and CFBundleName for localized app name. These cannot be included into the Localizable.strings since these are different for each target.
I removed the InfoPlist.strings files from my project and now the app is localized again.

Resources