Localization?
The practice of adjusting a product functional properties and characteristics to accommodate the language, cultural , political and legal differences of a foreign market or country.
Localization of iOS Apps?
Making your app available in different languages based on the targeted users.
Apart from the Apps that are downloaded from App Store, there are decent number of iOS Apps that exists on your device by default.
E.g. Phone, Messages, Maps, Calendar, Music, Camera, Stocks, App Store, Game Center, Contacts, Whether, Photos, Notes etc.
The above default apps which are provided by Apple already support localization.
E.g. Settings > General > International > Language
and the select the language you prefer, you can notice all the default apps provided by Apple will reflect the changes according to user preference. This is because all the apps are facilitated with the language and cultural specific content.
These changes might reflect in apps ( downloaded from App Store) also depending on the factor whether they are localized or not.
Approaches
In general there are two ways which are predominantly used to localize the iOS Apps.
Now go to Localizable.strings(English) file and paste the key value pairs for the above UI Elements.
Checkout the below screenshot for reference.
The practice of adjusting a product functional properties and characteristics to accommodate the language, cultural , political and legal differences of a foreign market or country.
Localization of iOS Apps?
Making your app available in different languages based on the targeted users.
Apart from the Apps that are downloaded from App Store, there are decent number of iOS Apps that exists on your device by default.
E.g. Phone, Messages, Maps, Calendar, Music, Camera, Stocks, App Store, Game Center, Contacts, Whether, Photos, Notes etc.
The above default apps which are provided by Apple already support localization.
E.g. Settings > General > International > Language
and the select the language you prefer, you can notice all the default apps provided by Apple will reflect the changes according to user preference. This is because all the apps are facilitated with the language and cultural specific content.
These changes might reflect in apps ( downloaded from App Store) also depending on the factor whether they are localized or not.
Approaches
In general there are two ways which are predominantly used to localize the iOS Apps.
- Default Approach
- Within the App
Naming convention "Localizable.strings" is must and should for default approach. Once that is done, next step is add the supported languages.
In the above step, check all and click on finish for time being. In the later part of this post, it will be clear why we need to check this files after adding each language.
Please check mark all the language in the above step, by default only english is checked.
Now look at the magic Xcode does, for every language you added Xcode automatically creates different version of the same file i,e "Localizable.strings" on the left hand side pane of project window as shown below.
Now Let us try to understand how iOS manages to display the appropriate content from those language specific string files.
Xcode creates a separate .lproj directories for each new language you add. if you open those directories you will see the .string files related to specific language. Apart from .string files you can manually copy-paste all the other resources like images, audio files, video files etc into the directories.
Note: You also realize that the files you checked after adding each language are existing in each of this directories....you can check language specific XIB files over there to appear in this directory.
In the run time iOS loads all the resources from respective directories based on the users language preference. Let us see with some simple example which contains Heading Label and Desc Label and see how it works in real time.
Create Heading and Desc Label in ViewController.m as shown below.
Code Snippet for the above Screenshot:
UILabel *headingLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 70, 300, 30)];
//The below line of code is responsible for retrieving the content from appropriate language specific .string file using NSLocalizedString.
headingLabel.text =[NSString stringWithFormat:NSLocalizedString(@"HeadingLabel", nil)];
headingLabel.textColor = [UIColor blackColor];
headingLabel.textAlignment = NSTextAlignmentCenter;
headingLabel.backgroundColor = [UIColor clearColor];
headingLabel.font = [UIFont fontWithName:@"Arial-BoldMT" size:16.0];
headingLabel.hidden = NO;
headingLabel.highlighted = YES;
headingLabel.lineBreakMode = YES;
headingLabel.numberOfLines = 0;
[self.view addSubview:headingLabel];
UILabel *descLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 300, 200)];
//The below line of code is responsible for retrieving the content from appropriate language specific .string file using NSLocalizedString.
descLabel.text =[NSString stringWithFormat:NSLocalizedString(@"DescLabel", nil)];
descLabel.textColor = [UIColor blackColor];
descLabel.textAlignment = NSTextAlignmentLeft;
descLabel.backgroundColor = [UIColor clearColor];
descLabel.font = [UIFont fontWithName:@"" size:18.0];
descLabel.hidden = NO;
descLabel.highlighted = YES;
descLabel.lineBreakMode = YES;
descLabel.numberOfLines = 0;
[self.view addSubview:descLabel];
"HeadingLabel" = "LOCALIZATION(ENGLISH)";
"DescLabel"= "Localization is the process of adapting a product to meet the language, cultural and other requirements of a specific target environment or market so that users can use their own languages and conventions when using the app.";
Repeat same thing for Localizable.strings(Spanish).
"HeadingLabel"= "LOCALIZACIÓN (SPANISH)";
"DescLabel"= "La localización es del proceso de adaptar un producto para cumplir los requisitos del lenguaje, culturales y otro de un ambiente o de un mercado específico de la blanco de modo que los utilizadores puedan utilizar sus propios lenguajes y";
Repeat same thing for Localizable.strings(Greek).
"HeadingLabel"= "ΕΝΤΟΠΙΣΜΟΣ(GREEK)";
"DescLabel"= "Ο εντοπισμός είναι πολιτιστικές και άλλες απαιτήσεις της διαδικασίας ένα προϊόν για να συναντήσει τη γλώσσα, ενός συγκεκριμένης περιβάλλοντος ή μιας αγοράς στόχων έτσι ώστε τον οι χρήστες μπορούν να χρησιμοποιήσουν.";
Checkout the below screenshot for reference.
Go ahead and run your project using iPhone (or) iPad Simulator.
How do i switch to Spanish or Greek?
Settings > General > International > Language> Spanish or Greek, then press Done
iOS Simulator will reboot the app with new user settings and we need to relaunch the app again to view the reflected changes.
Note: Do not select the language other than what u included, it shows English by default even if you does so.
Navigate to Screen where your app is and relaunch to view the content in Spanish.
Cons of this Approach
- Users need to leave the app to change the preferences and relaunch it again.
- Language change will be reflected on all other apps that supports Localization.
Pros of this Approach
- Easy to Implement because of Xcode built-in Intelligence
- Not much of Coding is required.
Within the App Approach
Coming..soon!
Hi!
ReplyDeleteIf you’re interested in a tool to collaboratively localize iOS apps for iPad or iPhone, I suggest you give https://poeditor.com/ a shot. It’s a very user-friendly online translation platform that handles .strings files too, along with other popular language file formats. You’ll see that it has a sum of very useful features to aid your localization workflow, like set reference language and translation memory. Cheers and good luck with your projects!
Our iOS App believe in precision and excellence when it comes to developing iOS Applications, thus making every effort in creating the best of the best apps in accordance with the client’s requirements.
ReplyDeleteiOS Applications Development: Both iPad and iPhone developers, these days, have experience of working on apps for diverse categories such an entertainment, healthcare, medicine, gaming, utility, education and various others. But then there are some who just claim to have such experience. So, it's important that you are able to separate the wheat from the chaff and ensure that the iOS developers that you choose have proven experience on working on iPhone and iPad apps projects for a variety of categories.
ReplyDeleteThanks for sharing your knowledge with us. your blog is rich of information which is beneficial to learner. Many peoples learns iOS on its own, it helps them.
ReplyDeleteKeep it up... Great Job
Regards
iPhone App development Company
Localization is not too much difficult but if we do it first time without less technical knowledge then this post really help. In last its really useful post about IOS localization.
ReplyDeleteBest Iphone development copmany.
The process of localization is not so difficult i guess. But the way you have explained the localization process will really help the developers... Excellent post
ReplyDeletemobile app for event
For a technical person, I don't think localization iOS apps is much diffucult, After reading your blog it more easier for nerd like us. All you need to go to any good iOS developer forum. Ask your queries and get instant answers from experienced mobile developer.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteEnjoying Reading.You can get here the latest Android & Iphone App Development and Iphone news updations!!!
ReplyDeleteBeing new to the blogging world I feel like there is still so much to learn. Your tips helped to clarify a few things for me as well as giving..
ReplyDeleteBack to original
The blog is absolutely truly incredible. Lots of large information and inspiration, both of which we all need.
ReplyDeleteBangalore Web Designing Company, UI Designing Company Bangalore
ReplyDeletegreat article which conveyed a good information.awaiting for more updates like this.
SEO Company in India
SEO Services in India
SEO Companies in India
SEO Company India
SEO Services India
ReplyDeleteThis concept is a good way to enhance the knowledge.thanks for sharing. please keep it up ios Online Training Bangalore
ReplyDeleteThis is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.
iphone app training course
iphone training
iOS development is the most reliable and versatile software core competency available today. Thank you for sharing!
ReplyDeleteiOS Development
Nice blog !!!Very Useful information!!
ReplyDeleteApp Development Company
Android App Development Company
iOS App Development Dubai
Thanks for Sharing!!!
ReplyDeleteBigdata Projects in chennai
Bigdata Project Centers in chennai
Nice Post !!! Thanks for sharing your blog !!!
ReplyDeleteUV Gullas Medical College
Hi, Very Nice Blog!!! Thanks!!!
ReplyDeletePhp training in chennai
Android training in chennai
Web design training in chennai
Web development training in chennai
Digital marketing training in chennai
Seo training in chennai
Thanks for Share!
ReplyDeleteembedded project centres in chennai
vlsi project centers in chennai
vlsi mini project centres in chennai
Thankyou!!! MBBS Medical College Lyceum Northwestern University
ReplyDelete1croreproject centers in chennai
ReplyDeleteieee 2019 vlsi project titles
ieee 2019 big data project titles
ieee 2019 ug project titles
Nice post! Thanks for Sharing!
ReplyDeleteLyceum Northwestern University
The blog is sharing such an interesting information, very happy to read it. Thanks for sharing.
ReplyDeleteVoice-over Services
Translation And Localization
Localization Companies In India
Localization
I liked your blog and its information is very unique and useful. Thanks
ReplyDeleteArtificial Grass Dealers in Bangalore | Artificial Grass Price | Artificial Grass Wholesalers
Thanks for your blogspot...
ReplyDeletePython Projects in Chennai
2020 2021 multimedia projects chennai
ieee vlsi projects
2020 2021 embedded systems projects chennai
www.tenride.com
ReplyDeleteGreat post, Thank you for sharing.
ReplyDeleteSojat Henna Powder Suppliers in India | Henna Powder Suppliers in India