Can we localize the iOS app name dynamically - ios

I am developing an iOS framework (say xyz.framework) , in that I am trying to build a feature to localize the bundle display name (CFBundleDisplayName) where I should localize the app name (name of the app which consumes my xyz.framework)
As per my understanding we have to mention name of the app in infoPlist.Strings file and we should localize,
My question is can we pick the app name dynamically with out hardcoding it ? if yes how can I do it ?
Please help me out!

Take the first answer to this question:
How to localise a string inside the iOS info.plist file?
Since the name of the app needs to be localised before the app is running, it is obviously not possible to change it dynamically. I might download your app and never, ever run it.

No, Info.plist values must be hardcoded and cannot be changed at runtime (this actually makes sense if you think about it).
The same applies to the localized version.

Related

Is it necessary to change my framework's bundle ID every time I submit a new app with that framework to iTunes Connect?

I have multiple apps and i have a framework say 'X' in all of them. Do I have to set new bundle ID for my FRAMEWORK for every new app I use it in?
As per i understand you are talking about third-party framework used in the Application. And in that framework there will be .plist file in that you are asking if we require to change bundle ID.
If i guess right than there is no need to change anything in that frameworks .plist file. DO NOT CHANGE ANYTHING. Keep it as it is. Keep the default values in that .plist file & you can use it in any apps with unchanged.
Hope it will help you.

Change app name programmatically

I want to change the app name based on the app language selected by the user & not the system language.
Is there any solution?
Even if it is doable using private API, I would like to know.
I know there is only one way using plist but as it is read only, I won't be able to update the plist file.
VImp Note, I want to change as per app language and not as per system language.
You can localize your Info.plist file.
Just select Info.plist file,and in File Inspector,click Localize... button in the Localization section.
You can't change your apps name programmatically.Because the name is stored in the info.pist which resides in you apps main bundle is read only you can not change it. You only option is to use the localized functionality provided by iOS based on the system language.

XCode 5 localizing app name on the fly

"Application has localized display name" = YES in Info.plist
Localized CFBundleDisplayName & CFBundleName in InfoPlist.strings
When I change the language of the whole device, it works. It changes the name of my app.
When I install it, the name is in the language of the device.
I manually change the app language from inside the app with NSUserDefaults language setting. Everything inside the app is perfectly localized whenever I change the language from inside the app. (Needs a restart of app)
But the app name does not change this way, the only way for it to change is, changing the device language.
Am I missing something? Is there a way to change the app name when the language is changed?
Unfortunately, I don't think you can.
iOS has no way to tell what language preference is set inside each application (well, it could, but it's not done that way).
Instead, it uses the system-wide setting to find and display the appropriate CFBundleDisplayName for every application.
Developing a custom language preference inside an app is also not the recommended way. Apple expects users to set their language of choice in the device's Preferences, not from inside individual apps (see here: https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPInternational/Articles/InternatSupport.html#//apple_ref/doc/uid/20000278-SW1). As an example, there's no way to change Facebook's language from inside the app, but as soon as you change the device's global language setting, the Facebook app reflects the change.

Can a renaming on an iOS application be done in one locale only?

I have an iOS app that's used internationally.
This app supports push-notifications.
The app is used internationally.
however, recent legal problems force me to change its name in the U.S.
I don't want to change its name globally, just the U.S.
Whta's the minimal set of action I can take to get there as fast as I can?
Can I change the application name and some of its UI for a certain locale only? (ENG-US)
do must I deploy a new app altogether alongside the old one?
Note I must keep the "british" locale with the old UI, but must rename the application name and change some of its UI only for the U.S.
Is that possible? or will I be forced to deploy a new app just for the U.S.?
Thank you
Yes the CFBundleDisplayName and CFBundleName are localizable. You need to add your localizations in an InfoPlist.strings file and add specific localizations there.

Apostrophe in app name

I intend on releasing an app in the Apple store that contains an apostrophe in the title. I notice that XCode already has issues in building the code when the 'Target' name contains an apostrophe. I've managed to get around this problem (for now), by using the following character:
’
as opposed to:
'
This seems to build okay, but I'm a little concerned about what may happen later down the line, such as when I submit the final build to the store etc.
Does anyone happen to know if this little workaround is suitable, or am I just setting myself up for a world of problems?
For example, is using an abstract character like this going to mean no one can search for my app in the store?
The display name of the app as it will appear on the iOS spring board is set in the app's infoPlist and has nothing to do with build settings. The Xcode project, target and all other files can be named whatever you like.
You need to set the CFBundleDisplayName in your app's Info.plist. By default this is set to ${PRODUCT_NAME} which is the Xcode configuration variable of the target's name, but it can be what you like.
Going one step further you should use the InfoPlist.strings file to overload this value for different localisations. Setting the value in this file will make the other value in the Info.plist obsolete. These days Xcode comes with a blank one in new projects but it's easily added if it's not there.
The InfoPlist.strings file would look like this:
"CFBundleDisplayName" = "App's Name";
Note: If you've set up the app's name as above and the spring board isn't displaying the Apostrophe then it's probably taking it out deliberately.
It appears you're talking about the title of your application in The App Store, which is entered in iTunes Connect and has absolutely nothing to do with any code you write.
If you place an apostrophe in your app's name in iTunes connect it may have an effect on the users searching for your app as you suspect.but often apps have extended names that offer more context to the app's name and you should also use the keywords to your advantage.
You should check out the iTunes Connect Developer Guide
Edit your CFBundleDisplayName in info.plist to
<string>App&apos;s Name</string>
Works perfectly. I've used above in production app, with no issues.

Resources