French Canadian Localization - ios

When I create a localization for fr-CA and then switch my iPad to use that language and region, it still uses my English localizable.strings file. If I just create an fr localization and switch the iPad, however, it works fine. Any ideas on what might be going wrong? Are my settings on the iPad correct (see screenshot)? Any other suggestions?

From:https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html
Under “Language and Locale IDs” it says the following:
Important In iOS, the bundle interfaces do not take dialect or script
information into account when looking for localized resources; only
the language designator code is considered. Therefore if your project
includes language-specific project directories with both a language
and region designator, those directories are ignored. The bundle
interfaces in OS X do support region designators in language-specific
project directories.

Related

Can't choose "More" when choosing application language in Edit Scheme

I'm trying to account for both English and Georgian and an app I'm developing. I had added the localization language to the project, have all the storyboard languages setup and the strings files.
I now want to test to see if the text translates correctly.
However, when I go to Edit Scheme and find the application language drop down it doesn't have Georgian.
When I added the localization in the project settings I could go to a More menu that had LOADS of languages. Why does this not exist in the Application Language drop down in the scheme settings?
EDIT:
Tried the solution below by adding language and locale as arguments:
I have what I believe is the correct setup for translating strings depending on the language of the phone etc.
The Xcode scheme Debug options only include a subset of languages plus pseudolanguages for testing. However, there are workarounds.
If you want to see if text translates correctly, do one of the following:
Go to your scheme's Arguments tab and add the AppleLanguages and AppleLocale to the "Arguments Passed On Launch" section.
For example, to select the Georgian language and the Georgian region, you'd add:
-AppleLanguages "(ka-GE)"
-AppleLocale "GEO"
   or:
On the device or simulator, set the region and language in the device's Preferences and then run your app.
More here: Internationalization and Localization Guide
Note that the ISO language code for Georgia is "ka-GE", not "ge". You should have "ka-GE.lproj" as your localization folder name.
The language code comes from the ISO codes here: ISO 639-2 codes, and the region code comes from these: ISO_3166-2 codes
One other thing I just noticed is that your string translation files are called "Localize.strings". The default filename is "Localizable.strings" and if you're calling NSLocalizedString without providing an explicit file name in the optional table parameter, that's what iOS looks for. So, you'll probably need to rename your translation files for things to work.

Is it possible to localize an iOS app name based on region only?

I'm developing an internationalized version of my Cordova+Ionic app for iOS. The current app name is in Swedish, and I want to keep the name for the Swedish market, but the international app will have a new name.
I need the app to have the Swedish name for all users in Sweden, regardless of the chosen language. Is it possible to localize the app name based on region only?
I know you can localize it using a InfoPlist.strings resource with CFBundle(Display)Name properties, but the locales used to determine what resource to use are (as far as I'm aware) solely based on the devices preferred language/locale setting and takes no consideration about the device's region setting.
For instance, the resource for the en-GB locale (located at en-GB.lproj/InfoPlist.strings) is loaded when the preferred language is set to English (United Kingdom), but not for English with region set to United Kingdom.
Thanks
No, currently that is impossible
This is the extract from the documentation:
First, the bundle determines which localization to use for the application as a whole. If a .lproj folder exists for the preferred language, that localization is used. Otherwise, the bundle searches for an .lproj folder matching the next preferred language, and so on, until one is found. If there is no localization for a preferred language, the bundle chooses the development language localization.

Localisation Language settings iPhone

I have added two language localisation in my iOS project
Spanish(es)
Argentinean Spanish (es-AR)
In my iPhone language setting i have checked 'esponal' but it loads the Spanish(es) strings.
Now i need to check the Argentinean Spanish too. So what settings i need to do in my iPhone to check Argentinean Spanish.
You need to set the iPhone region settings to Argentina.
Edit:
Actually, it look slike this is not supported on iOS:
Important: In iOS, the bundle interfaces do not take dialect or script information into account when looking for localized resources; only the language designator code is considered. Therefore if your project includes language-specific project directories with both a language and region designator, those directories are ignored. The bundle interfaces in OS X do support region designators in language-specific project directories.
https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html#//apple_ref/doc/uid/20002144-BBCEGGFF

iOS Bundle Display Name - en-GB and en-US

Context:
We are developing an iOS app that has the word Math/Maths in it. This needs to change depending if the device's language is English or British English.
Problem:
So, I have two InfoPlist.string files for en-GB and en-US and in the iOS simulator the App displays either an en-GB or en-US App name depending if the language was set to English or British English. However, it's very glitchy (sometimes working, sometimes not) and according to Apple's Dev guide it's not (or shouldn't be) possible! That's not to say the doc isn't outdated or wrong.
From: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html#//apple_ref/doc/uid/20002144-BBCEGGFF
Important: In iOS, the bundle interfaces do not take dialect or script
information into account when looking for localized resources; only
the language designator code is considered. Therefore if your project
includes language-specific project directories with both a language
and region designator, those directories are ignored. The bundle
interfaces in OS X do support region designators in language-specific
project directories.
Am I on a wild goose chase and it's not actually possible or it is, and just very buggy? If it is possible, how?
You are right. It is not possible automatically. For localizeng the os looks for the language, not for the region. So it just takes into account the en. But the good news is that there is a indirect solution which requires little effort: check the approved answer here.

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