SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Localizing iOS Apps

                                           Anthony Weiss
                                           weissazool.com
                                   anthony@weissazool.com

Friday, November 9, 12
Why localize?



Friday, November 9, 12
You make more money.



Friday, November 9, 12
Fixed cost of translation
                            vs.
                    Unlimited potential
                          upside

Friday, November 9, 12
Time investment:
                            Minimal.


Friday, November 9, 12
How to prepare your
                          app for localization:
                            NSLocalizedString(key, comment)




Friday, November 9, 12
labelExample.text =
  ! NSLocalizedString(@"NSLocalizedString() example",
  ! ! ! ! ! ! ! ! ! @"Translate 'example' only");


  if (papayas == 0) {
      papayaPlurality = NSLocalizedString(@"NoPapayas",
  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !     @"No papayas.");
      additionalComment = NSLocalizedString(@"How sad.",
  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! @"Regretfulness");
  }
  return [NSString stringWithFormat:
  ! ! ! ! NSLocalizedString(@"You have %d %@. %@",
  ! ! ! ! ! ! ! ! ! ! ! ! @"Papaya possession"),
  ! ! ! ! papayas, papayaPlurality, additionalComment];




Friday, November 9, 12
Comments can give
                          your translators
                             context.


Friday, November 9, 12
Everything’s in
                         NSLocalizedString().
                            Now what?
                           The genstrings command-line tool.




Friday, November 9, 12
What’s genstrings?
                     genstrings searches your code for macros related to
                          localization, including NSLocalizedString().




Friday, November 9, 12
genstrings en.lproj
                genstrings -o target-directory source-files
                genstrings -o target-directory other-source-files -a




Friday, November 9, 12
/* Translate 'example' only */
  "NSLocalizedString() example" =
  ! ! ! ! ! ! ! ! ! ! "NSLocalizedString() example";

  /* No papayas. */
  "NoPapayas" = "papayas";

  /* Regretfulness */
  "How sad." = "How sad.";

  /* Papaya possession */
  "You have %d %@. %@" = "You have %1$d %2$@. %3$@";




Friday, November 9, 12
/* Translate 'example' only */
  "NSLocalizedString() example" = "Ejemplo de
  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! NSLocalizedString()";

  /* No papayas. */
  "NoPapayas" = "papayas";

  /* Regretfulness */
  "How sad." = "Que lástima. ";

  /* Papaya possession */
  "You have %d %@. %@" = "%3$@Usted tiene %1$d %2$@.";




Friday, November 9, 12
/* Papaya possession */
  "You have %d %@. %@" = "You have %1$d %2$@. %3$@";




  /* Papaya possession */
  "You have %d %@. %@" = "%3$@Usted tiene %1$d %2$@.";




Friday, November 9, 12
Friday, November 9, 12
How does
                 NSLocalizedString() work?
                         It’s dictionaries all the way down.




Friday, November 9, 12
NSLocalizedStringFrom
                    Table(key, table, comment)
                         Looks up your string in table.strings




Friday, November 9, 12
Adding localizations to
                        your project
                            Let’s localizing!




Friday, November 9, 12
Friday, November 9, 12
I’ve got images with
                         English text in them.


Friday, November 9, 12
en.lproj/aybabtu.png




Friday, November 9, 12
en.lproj/aybabtu.png
                                     ja.lproj/aybabtu.png




Friday, November 9, 12
en.lproj/aybabtu.png
                                                      ja.lproj/aybabtu.png




                         es.lproj/aybabtu.png
Friday, November 9, 12
Friday, November 9, 12
I like Interface Builder. I
                 don’t want to set my UI
                        text in code.


Friday, November 9, 12
ibtool
                ibtool --generate-strings-file MainStoryboard.strings
                    MainStoryboard.storyboard

                ibtool --generate-strings-file NibName.strings NibName.xib




Friday, November 9, 12
/* Class = "IBUILabel"; text = "This text has been
  laid out in the nib."; ObjectID = "3ZM-yV-HpI"; */
  "3ZM-yV-HpI.text" = "This text has been laid out
  ! ! ! ! ! ! ! ! ! ! ! in the nib.";

  /* Class = "IBUILabel"; text = "Just the way I
  like it!"; ObjectID = "Oxg-9T-bKW"; */
  "Oxg-9T-bKW.text" = "Just the way I like it!";




Friday, November 9, 12
ibtool --strings-file es.lproj/MainStoryboard.strings
                	

 	

 --write es.lproj/MainStoryboard.storyboard
                	

 	

 	

 	

 en.lproj/MainStoryboard.storyboard


                ibtool --strings-file target-language/NibName.strings
                       --write target-language/NibName.xib
                               base-language/NibName.xib




Friday, November 9, 12
Friday, November 9, 12
Friday, November 9, 12
Friday, November 9, 12
Money, revisited.



Friday, November 9, 12
• Cost of translation: ¥8,000
                     • Revenue per sale: ¥60
                     • Sell 8000/60 = 135 extra apps in that
                         language to break even.




Friday, November 9, 12
Localization gives you a
                  competitive advantage.
                   Which you need to leverage with sales and marketing.




Friday, November 9, 12
Additional Resources

                     •   https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/
                         LoadingResources/Strings/Strings.html

                     •   https://developer.apple.com/library/ios/#documentation/MacOSX/
                         Conceptual/BPInternational/Articles/LocalizingInterfaces.html

                     •   http://gengo.com/contact-support/quality-policy/

                     •   http://kb.applingua.com/2011/10/3rd-party-localization-string-extraction-
                         tools/




Friday, November 9, 12
WZLocalize

                           github.com/weissazool/WZLocalize



Friday, November 9, 12

Contenu connexe

En vedette

Lux final presentation group one
Lux final presentation group oneLux final presentation group one
Lux final presentation group oneDivyanshu Mishra
 
Case study - Cultural norms, Fair & Lovely, and advertising
Case study - Cultural norms, Fair & Lovely, and advertisingCase study - Cultural norms, Fair & Lovely, and advertising
Case study - Cultural norms, Fair & Lovely, and advertisingAn Tran
 
Creativity and innovation in the Classroom
Creativity and innovation in the ClassroomCreativity and innovation in the Classroom
Creativity and innovation in the ClassroomChris Betcher
 
Creative teacher
Creative teacherCreative teacher
Creative teacherNawal Ali
 
Soap Project
Soap ProjectSoap Project
Soap Projectsamara4
 
Sony Marketing Plan Slide Show
Sony Marketing Plan Slide ShowSony Marketing Plan Slide Show
Sony Marketing Plan Slide ShowStephen Giusti
 
Marketing strategies of pepsi
Marketing strategies of pepsiMarketing strategies of pepsi
Marketing strategies of pepsiRaja Ali
 
market research project on lux soaps
market research project on lux soapsmarket research project on lux soaps
market research project on lux soapsRohit Kumar
 
A project report on Chocolate
A project report on ChocolateA project report on Chocolate
A project report on ChocolateAnjali Singh
 
project report on chocolate
project report on chocolate project report on chocolate
project report on chocolate saurabh2somu
 
Project on shampoo
Project on shampooProject on shampoo
Project on shampooaditya10000
 
Marketing Project on Pepsi Co.
Marketing Project on Pepsi Co.Marketing Project on Pepsi Co.
Marketing Project on Pepsi Co.Wajid Ali
 
Project on biscuits,business studies project work, 12 class business project ...
Project on biscuits,business studies project work, 12 class business project ...Project on biscuits,business studies project work, 12 class business project ...
Project on biscuits,business studies project work, 12 class business project ...Ravi Singh
 
Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...
Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...
Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...Dan John
 

En vedette (20)

Fairness cream
Fairness creamFairness cream
Fairness cream
 
Lux final presentation group one
Lux final presentation group oneLux final presentation group one
Lux final presentation group one
 
Case study - Cultural norms, Fair & Lovely, and advertising
Case study - Cultural norms, Fair & Lovely, and advertisingCase study - Cultural norms, Fair & Lovely, and advertising
Case study - Cultural norms, Fair & Lovely, and advertising
 
Creativity and innovation in the Classroom
Creativity and innovation in the ClassroomCreativity and innovation in the Classroom
Creativity and innovation in the Classroom
 
Creative teacher
Creative teacherCreative teacher
Creative teacher
 
Project on fair&lovely
Project on fair&lovelyProject on fair&lovely
Project on fair&lovely
 
Soap Project
Soap ProjectSoap Project
Soap Project
 
Chemistry Investigatory Project (Class 12 ,CBSE)
Chemistry Investigatory Project (Class 12 ,CBSE)  Chemistry Investigatory Project (Class 12 ,CBSE)
Chemistry Investigatory Project (Class 12 ,CBSE)
 
Sony Marketing Plan Slide Show
Sony Marketing Plan Slide ShowSony Marketing Plan Slide Show
Sony Marketing Plan Slide Show
 
sony
sonysony
sony
 
Marketing strategies of pepsi
Marketing strategies of pepsiMarketing strategies of pepsi
Marketing strategies of pepsi
 
market research project on lux soaps
market research project on lux soapsmarket research project on lux soaps
market research project on lux soaps
 
A project report on Chocolate
A project report on ChocolateA project report on Chocolate
A project report on Chocolate
 
project report on chocolate
project report on chocolate project report on chocolate
project report on chocolate
 
Project on shampoo
Project on shampooProject on shampoo
Project on shampoo
 
Sony Marketing Mix
Sony Marketing MixSony Marketing Mix
Sony Marketing Mix
 
Marketing Project on Pepsi Co.
Marketing Project on Pepsi Co.Marketing Project on Pepsi Co.
Marketing Project on Pepsi Co.
 
Sony ppt
Sony pptSony ppt
Sony ppt
 
Project on biscuits,business studies project work, 12 class business project ...
Project on biscuits,business studies project work, 12 class business project ...Project on biscuits,business studies project work, 12 class business project ...
Project on biscuits,business studies project work, 12 class business project ...
 
Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...
Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...
Solved Cbse Class 12 Accountancy Full Project(Comprehensive Project, Ratio An...
 

Similaire à Localize iOS Apps for New Markets & Revenue

Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5C4Media
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onBrice Argenson
 
De vuelta al pasado con SQL y stored procedures
De vuelta al pasado con SQL y stored proceduresDe vuelta al pasado con SQL y stored procedures
De vuelta al pasado con SQL y stored proceduresNorman Clarke
 
Maximiliano Firtman
Maximiliano FirtmanMaximiliano Firtman
Maximiliano FirtmanColombia3.0
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureRaven Tools
 
Adapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the futureAdapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the futureChris Mills
 
Tackling Big Data with Hadoop
Tackling Big Data with HadoopTackling Big Data with Hadoop
Tackling Big Data with Hadooppoorlytrainedape
 
Enterprise javascriptsession2
Enterprise javascriptsession2Enterprise javascriptsession2
Enterprise javascriptsession2Troy Miles
 
Educause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateEducause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateJon Liu
 
MongoTalk/Voyage
MongoTalk/VoyageMongoTalk/Voyage
MongoTalk/VoyageESUG
 
Acceptance & Integration Testing With Behat (PHPNw2011)
Acceptance & Integration Testing With Behat (PHPNw2011)Acceptance & Integration Testing With Behat (PHPNw2011)
Acceptance & Integration Testing With Behat (PHPNw2011)benwaine
 
5 Ways to Awesome-ize Your (PHP) Code
5 Ways to Awesome-ize Your (PHP) Code5 Ways to Awesome-ize Your (PHP) Code
5 Ways to Awesome-ize Your (PHP) CodeJeremy Kendall
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserAndreas Bovens
 
Building Sencha Themes
Building Sencha ThemesBuilding Sencha Themes
Building Sencha ThemesSencha
 
Deconstructing Functional Programming
Deconstructing Functional ProgrammingDeconstructing Functional Programming
Deconstructing Functional ProgrammingC4Media
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
JS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-onJS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-onBrice Argenson
 
Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Maximiliano Firtman
 

Similaire à Localize iOS Apps for New Markets & Revenue (20)

Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-on
 
De vuelta al pasado con SQL y stored procedures
De vuelta al pasado con SQL y stored proceduresDe vuelta al pasado con SQL y stored procedures
De vuelta al pasado con SQL y stored procedures
 
Maximiliano Firtman
Maximiliano FirtmanMaximiliano Firtman
Maximiliano Firtman
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & Structure
 
Adapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the futureAdapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the future
 
Makers Go Pro
Makers Go ProMakers Go Pro
Makers Go Pro
 
Tackling Big Data with Hadoop
Tackling Big Data with HadoopTackling Big Data with Hadoop
Tackling Big Data with Hadoop
 
Enterprise javascriptsession2
Enterprise javascriptsession2Enterprise javascriptsession2
Enterprise javascriptsession2
 
Educause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateEducause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential Debate
 
Immutability
ImmutabilityImmutability
Immutability
 
MongoTalk/Voyage
MongoTalk/VoyageMongoTalk/Voyage
MongoTalk/Voyage
 
Acceptance & Integration Testing With Behat (PHPNw2011)
Acceptance & Integration Testing With Behat (PHPNw2011)Acceptance & Integration Testing With Behat (PHPNw2011)
Acceptance & Integration Testing With Behat (PHPNw2011)
 
5 Ways to Awesome-ize Your (PHP) Code
5 Ways to Awesome-ize Your (PHP) Code5 Ways to Awesome-ize Your (PHP) Code
5 Ways to Awesome-ize Your (PHP) Code
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browser
 
Building Sencha Themes
Building Sencha ThemesBuilding Sencha Themes
Building Sencha Themes
 
Deconstructing Functional Programming
Deconstructing Functional ProgrammingDeconstructing Functional Programming
Deconstructing Functional Programming
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
JS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-onJS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-on
 
Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5
 

Dernier

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Dernier (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Localize iOS Apps for New Markets & Revenue

  • 1. Localizing iOS Apps Anthony Weiss weissazool.com anthony@weissazool.com Friday, November 9, 12
  • 3. You make more money. Friday, November 9, 12
  • 4. Fixed cost of translation vs. Unlimited potential upside Friday, November 9, 12
  • 5. Time investment: Minimal. Friday, November 9, 12
  • 6. How to prepare your app for localization: NSLocalizedString(key, comment) Friday, November 9, 12
  • 7. labelExample.text = ! NSLocalizedString(@"NSLocalizedString() example", ! ! ! ! ! ! ! ! ! @"Translate 'example' only"); if (papayas == 0) { papayaPlurality = NSLocalizedString(@"NoPapayas", ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! @"No papayas."); additionalComment = NSLocalizedString(@"How sad.", ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! @"Regretfulness"); } return [NSString stringWithFormat: ! ! ! ! NSLocalizedString(@"You have %d %@. %@", ! ! ! ! ! ! ! ! ! ! ! ! @"Papaya possession"), ! ! ! ! papayas, papayaPlurality, additionalComment]; Friday, November 9, 12
  • 8. Comments can give your translators context. Friday, November 9, 12
  • 9. Everything’s in NSLocalizedString(). Now what? The genstrings command-line tool. Friday, November 9, 12
  • 10. What’s genstrings? genstrings searches your code for macros related to localization, including NSLocalizedString(). Friday, November 9, 12
  • 11. genstrings en.lproj genstrings -o target-directory source-files genstrings -o target-directory other-source-files -a Friday, November 9, 12
  • 12. /* Translate 'example' only */ "NSLocalizedString() example" = ! ! ! ! ! ! ! ! ! ! "NSLocalizedString() example"; /* No papayas. */ "NoPapayas" = "papayas"; /* Regretfulness */ "How sad." = "How sad."; /* Papaya possession */ "You have %d %@. %@" = "You have %1$d %2$@. %3$@"; Friday, November 9, 12
  • 13. /* Translate 'example' only */ "NSLocalizedString() example" = "Ejemplo de ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! NSLocalizedString()"; /* No papayas. */ "NoPapayas" = "papayas"; /* Regretfulness */ "How sad." = "Que lástima. "; /* Papaya possession */ "You have %d %@. %@" = "%3$@Usted tiene %1$d %2$@."; Friday, November 9, 12
  • 14. /* Papaya possession */ "You have %d %@. %@" = "You have %1$d %2$@. %3$@"; /* Papaya possession */ "You have %d %@. %@" = "%3$@Usted tiene %1$d %2$@."; Friday, November 9, 12
  • 16. How does NSLocalizedString() work? It’s dictionaries all the way down. Friday, November 9, 12
  • 17. NSLocalizedStringFrom Table(key, table, comment) Looks up your string in table.strings Friday, November 9, 12
  • 18. Adding localizations to your project Let’s localizing! Friday, November 9, 12
  • 20. I’ve got images with English text in them. Friday, November 9, 12
  • 22. en.lproj/aybabtu.png ja.lproj/aybabtu.png Friday, November 9, 12
  • 23. en.lproj/aybabtu.png ja.lproj/aybabtu.png es.lproj/aybabtu.png Friday, November 9, 12
  • 25. I like Interface Builder. I don’t want to set my UI text in code. Friday, November 9, 12
  • 26. ibtool ibtool --generate-strings-file MainStoryboard.strings MainStoryboard.storyboard ibtool --generate-strings-file NibName.strings NibName.xib Friday, November 9, 12
  • 27. /* Class = "IBUILabel"; text = "This text has been laid out in the nib."; ObjectID = "3ZM-yV-HpI"; */ "3ZM-yV-HpI.text" = "This text has been laid out ! ! ! ! ! ! ! ! ! ! ! in the nib."; /* Class = "IBUILabel"; text = "Just the way I like it!"; ObjectID = "Oxg-9T-bKW"; */ "Oxg-9T-bKW.text" = "Just the way I like it!"; Friday, November 9, 12
  • 28. ibtool --strings-file es.lproj/MainStoryboard.strings --write es.lproj/MainStoryboard.storyboard en.lproj/MainStoryboard.storyboard ibtool --strings-file target-language/NibName.strings --write target-language/NibName.xib base-language/NibName.xib Friday, November 9, 12
  • 33. • Cost of translation: ¥8,000 • Revenue per sale: ¥60 • Sell 8000/60 = 135 extra apps in that language to break even. Friday, November 9, 12
  • 34. Localization gives you a competitive advantage. Which you need to leverage with sales and marketing. Friday, November 9, 12
  • 35. Additional Resources • https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ LoadingResources/Strings/Strings.html • https://developer.apple.com/library/ios/#documentation/MacOSX/ Conceptual/BPInternational/Articles/LocalizingInterfaces.html • http://gengo.com/contact-support/quality-policy/ • http://kb.applingua.com/2011/10/3rd-party-localization-string-extraction- tools/ Friday, November 9, 12
  • 36. WZLocalize github.com/weissazool/WZLocalize Friday, November 9, 12