Is it possible to have two different UI for a program? - swift

Is it possible to have a program built for two countries and change the appearance and language of the program due to the SIM card code on the device?

Yes. You can check user's language for this.
Get the language key of localization:
let preferredLanguage = NSLocale.preferredLanguages.first
Also you can get country code.
Also you can do it using user's location, but I think it is a bad approach. Location requires a lof of battery.

Related

Assign ringtone to contact or group of contacts in iphone

I checked the documentation but could not find anywhere regarding assigning ringtone to a group of contacts programmatically. I was wondering is it even possible without using Private API and app store safe ?
My question is the duplicate of this and this but I checked this application, and it does what I was looking for so may be I am overlooking the documentation ?
Any insight on this would be great.
Its not possible to assign contact or group of contact pragmatically for App Store app but you can quietly do for jaibreak app.
Have a look on this.. Is it possible to set the ringtone file(name) for a phone number in a contact using codes?
Old post but still valid In short --
Apple will not allow any Application in app store which modifies user preferences..
Theoretically this is not allowed as per Apple guidelines because you are not allowed to change user preferences through a separate program. That's simply it is. This is specially true for groups since user doesn't have a way to revert the changes done through your program without his permission.
However, the program you have specified here might be using Address Book API methods to retrieve the group they want to change and modifying the ringtone information through a system command by allowing the current user to be root or admin. Just a thought if it can be done.

If I localize my iPhone App, (Description Language) But don't change my app, will it be rejected?

I want to add local languages for the description of my app, and so I made a new version just so I could Localize the description. However, I did not change any of my app to be location-dependent (It's just english, and it's a rather simple resistance-color code calculator app without much text, and operates on the basis of color-codedness.) Will my app be rejected for failing to truly "localize", per se? Is this a stringent guideline or is it okay to just change the app store description language?
I don't know if Apple will reject you on that basis or not. But doing something like that could anger your customers, and I wouldn't blame them. I would suggest that you either localize everything, including the content, or localize nothing. Misleading your customers is not the path to long-term success.
Your app should not be rejected. I've done this. My app is mostly numbers which is universal. I've translated descriptions to 6 languages and the app is in the app store just fine.
Don't mislead your users. Your users are your greatest allies or enemies, depending on your attitude. If you don't respect them, they won't like you.
If you want to make a localization, create a support for multilinguality and you can add languages later on. Also, in my opinion your users should be able to choose the language they want to use your app in. As a default you can choose the language of the region. However, it's rude to localize by location and not letting the users to change their language. If you show respect towards your users you will have greater chance of success.

Is it possbile to translate text "AppName would like to Use your current location"?

My app uses GPS. At first launch, user is asked if he want's to allow gps positioning. I would like to translate this text to my language. Is it even possible?
Just set the device language to yours.

Posting different screenshots based on country - iTunes Connect/AppStore

Since I'm not using any real localization technique besides having my dates generated based on the user's locale, I still wanted to have different screenshots in different countries for my app. Any way of doing this?
For reference, i know the app Moneybook is doing it, but also understand that they have localization support.
Thanks in advance.
Yes, within iTunes Connect add some localisation which allows for different text and images for languages.
If you just want different images you will need to copy your English text and keywords in.

Multilingual iApp in a difficult/special environment

There are a great number of tutorials that tell you how to write multilingual apps for the iPhone. I haven't found one though that deals with my particular problem...
There must be a way how an iPhone app can enforce a certain default language if the user runs the iPhone with neither of the languages supported by the app?
Here in Switzerland we speak German, French and Italian (in different parts of the country). German can be considered the "default" language because its share is nearly 65%. Hence, any national retailer has his product descriptions in these three languages. We built an iApp that supports these three languages.
So far so good...as long as users have selected either of the three languages in their iPhone settings everything works as expected. For users that use the iPhone in English, that seems to be a significant number, this goes wrong because the application is displayed in French instead of German (the assumed default language).
Why? Because French by default is higher up in the list of available languages in the iPhone settings than German. The workaround for users is to switch the iPhone from English to German and back. The iPhone places German second in the list of available languages.
How should the app best deal with that? Ahh, of course we could support English for UI elements but our customer's product descriptions simply aren't available in English. Hence, this isn't really an option.
You can let user choose which language to use in app and set it like this:
NSArray *lang = [NSArray arrayWithObjects:#"de", nil];
[[NSUserDefaults standardUserDefaults] setObject:lang forKey:#"AppleLanguages"];
I came up with the same problem some time ago. My way of solving it was to set all the localizable elements programmatically and not rely on the iOS localization at all. I implemented my own language manager that handles localized strings (read from a custom resource file) and tries to choose the best language for the current device (using the rules provided in a custom preference file). Of course, if the current preferred language of the device is available among the localizations, it has the highest priority. I also leave an opportunity to change the language in settings.