SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
4/30/2010                                  Software Internationalization | Interna…




   Internationalization Engineering Planning: Secret Sauce
   Internationalization Articles                                                                            March 13th, 2008

   by Adam Asnes for Multilingual Computing

   Just recently I got a call out of the blue from a colleague who leads his own internal internationalization (i18n)
   team at a well known software company, with many leading commercial products. The discussion particularly related
   to best practices and turning information into actual plans. I suppose the art of planning is kind of a “secret sauce”
   for any type of engineering. And i18n has its own special ingredients which need to be blended with their own
   puree of painful lessons. Seriously, i18n is dangerous stuff to estimate.

   Here are a few reasons:


            Requirements are notoriously easy to under estimate. People start just considering string management and
            then realize that’s just a small part of the full scope (see my other articles).
            Code bases are typically very large and often you have limited history or connection to the people who
            wrote it.
            Different programming languages, web servers, databases and platforms involve optimizing all kinds of encoding
            issues.
            Internationalization issues aren’t easy to uncover and they are hidden in the code.
            There may be all kinds of programming logic that will need to be rewritten as it just won’t work for multiple
            locales.
            Architectural elements that need to be added, like locale operations or database changes, touch large
            amounts of the code, and tend to break everything.
            The development team isn’t going to sit on their hands while the internationalization effort goes on – so you
            have two parallel coding efforts, one of which breaks everything (see prior item).

   Any one of these issues has enough excitement to warrant an article on its own (and I may just take that path in the
   future), but it’s probably good to start on a high level describing some of the process with a few example questions
   and answers. What locales are being targeted and when? You can lump some aspects of target markets together by
   encoding. For instance, ISO-Latin 1 for Western European languages, Unicode for Asian languages. From there, you
   need a good idea of what the product in question actually does. How will the user need to set locale? Are address
   formats, phone numbers, dates, times, currencies, numerical units managed in particular ways? What are the various
   application tiers? How is data flowing from one part of the code to another?

   Regarding those application tiers, are there whole sections of code that are out of scope? Could there be inherent
   danger in making them out of scope? What programming languages are used? There are drastic differences in how
   internationalization is handled among programming languages. Java and C# tend to be among the easiest with regard
   to i18n. PHP has gotten a lot better, but used to have no i18n framework. JavaScript is just a pain, as the very
   nature of how it’s used typically inspires all kinds of concatenation. C and C++ are typically difficult as there is just
   so much more involved with character set support, memory management and hosts of nasties like pointer arithmetic.
   On top of that, ANSI C/C++ is different than M icrosoft C/C++. M any M icrosoft products in most cases have their own
   special constraints. For instance with regard to databases Oracle will support ISO-Latin, UTF-8 and UTF-16 encodings.
   Yet M icrosoft SQL Server is ISO-Latin or UCS-2 only (which happens to be nearly the same as UTF-16). The list issues
   as they pertain to technologies goes on, and on, but you get the idea.


lingoport.com/internationalization-engi…                                                                                       1/4
4/30/2010                              Software Internationalization | Interna…
   You can break down planning a project in terms of:


       1. What’s not in the code that needs to be added?
       2. What’s in the code that needs to be changed?
       3. When does it need to be completed?
             1. Should parts of the effort be phased?
       4. What’s the budget?

   The first question has everything to do with marketing, usage and technology requirements. If you miss requirements
   you will be late, and build something less desirable than imagined. What’s not in the code is broadly an architectural
   issue including everything from locale selection and operations, to the method of resource files being used. This
   takes good smart leadership which has been through i18n planning and construction efforts multiple times.

   Question two is all about detective work. How are you going to find all the strings, methods and classes,
   programmatic logic patterns and more that have to be changed – yet lie buried in those hundred thousand to
   millions of lines of code? You can look at the interface and start to make guesses (the old way), or really count the
   issues, while locating and verifying them all with powerful diagnostic software tools. You can relatively quickly list all
   internationalization issues, view them, confirm their location, even figure the costs of translating the embedded
   strings with the right software.

   Question three is all about marketing plans and revenue expectations. Often there’s a lot riding on target dates,
   with advertising, sales and customers waiting. Plus you need to factor in ample time for testing. In a perfect world,
   you would internationalize to the fullest scope possible, but budget and timing reality may mean a phased approach
   with some aspects left out of scope, depending upon application needs, customer requirements and locale targets.

   Question four is often not fully known until the plan comes together. There may be a loose number assigned, but
   the specifics are a result of planning activities. Nevertheless, money is like oxygen. You’ll need a consistent supply if
   the project is to get finished without interruption.

   Next comes the artistic finesse part. You have to put it all together into a plan. It takes experience to convert your
   data regarding requirements, architecture and code refactoring into a plan that optimizes the tasks, engineering
   team, schedule and costs. You could try applying hard metrics for this, like X number of issues means Y time, but
   often this is only a place to start. You have to plan for “surprises” and variations. Experience shows you where those
   tend to occur.

   I suppose the chief service value that people buy from a quality i18n firm is that experience and its effect on risk,
   efficiency, time and expenses. Clients only looking to buy an hourly rate are missing the point.




          Resources
                  Internationalization Articles
                  Internationalization Newsletter
                  Internationalization Whitepapers
                  Videos
                  Webinars



   Subscribe
   Subscribe to our newsletter and white papers for free internationalization news, articles, and Webinar
   announcements sent via email.

lingoport.com/internationalization-engi…                                                                                        2/4
4/30/2010                                  Software Internationalization | Interna…
   Click Here to Subscribe


   Contact Us
        Phone: +1.303.444.8020
            Email: info@lingoport.com




lingoport.com/internationalization-engi…                                              3/4
4/30/2010                                  Software Internationalization | Interna…




lingoport.com/internationalization-engi…                                              4/4

Weitere ähnliche Inhalte

Mehr von Lingoport (www.lingoport.com)

LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
Lingoport (www.lingoport.com)
 
Leading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert DiscussionLeading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert Discussion
Lingoport (www.lingoport.com)
 
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport (www.lingoport.com)
 

Mehr von Lingoport (www.lingoport.com) (19)

Staying Global in an Agile World Presentation
Staying Global in an Agile World PresentationStaying Global in an Agile World Presentation
Staying Global in an Agile World Presentation
 
Internationalizing a Multi-Layered Application
Internationalizing a Multi-Layered ApplicationInternationalizing a Multi-Layered Application
Internationalizing a Multi-Layered Application
 
Shifting Left Webinar Slideshow
Shifting Left Webinar SlideshowShifting Left Webinar Slideshow
Shifting Left Webinar Slideshow
 
Shifting Left Webinar Slides
Shifting Left Webinar SlidesShifting Left Webinar Slides
Shifting Left Webinar Slides
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
 
Leading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert DiscussionLeading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert Discussion
 
Unicode Primer for the Uninitiated
Unicode Primer for the UninitiatedUnicode Primer for the Uninitiated
Unicode Primer for the Uninitiated
 
Static analysis for multiple programming languages
Static analysis for multiple programming languagesStatic analysis for multiple programming languages
Static analysis for multiple programming languages
 
Wordware 2011: Lingoport i18n Planning & Static Analysis
Wordware 2011: Lingoport i18n Planning & Static AnalysisWordware 2011: Lingoport i18n Planning & Static Analysis
Wordware 2011: Lingoport i18n Planning & Static Analysis
 
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
 
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
 
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
 
Worldware: Software internationalization and globalization conference summary...
Worldware: Software internationalization and globalization conference summary...Worldware: Software internationalization and globalization conference summary...
Worldware: Software internationalization and globalization conference summary...
 
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
 
Outsourcing Internationalization (i18n) Services
Outsourcing Internationalization (i18n) ServicesOutsourcing Internationalization (i18n) Services
Outsourcing Internationalization (i18n) Services
 
Internationalization (I18n) and Localization (L10n): A Study
Internationalization (I18n) and Localization (L10n): A StudyInternationalization (I18n) and Localization (L10n): A Study
Internationalization (I18n) and Localization (L10n): A Study
 
Business Perspectives on Internationalization (i18n)
Business Perspectives on Internationalization (i18n)Business Perspectives on Internationalization (i18n)
Business Perspectives on Internationalization (i18n)
 
Internationalization (i18n) Primer
Internationalization (i18n) PrimerInternationalization (i18n) Primer
Internationalization (i18n) Primer
 
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
 

Kürzlich hochgeladen

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
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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...
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Software Internationalization and I18n Consultant Article: Internationalization Engineering Planning

  • 1. 4/30/2010 Software Internationalization | Interna… Internationalization Engineering Planning: Secret Sauce Internationalization Articles March 13th, 2008 by Adam Asnes for Multilingual Computing Just recently I got a call out of the blue from a colleague who leads his own internal internationalization (i18n) team at a well known software company, with many leading commercial products. The discussion particularly related to best practices and turning information into actual plans. I suppose the art of planning is kind of a “secret sauce” for any type of engineering. And i18n has its own special ingredients which need to be blended with their own puree of painful lessons. Seriously, i18n is dangerous stuff to estimate. Here are a few reasons: Requirements are notoriously easy to under estimate. People start just considering string management and then realize that’s just a small part of the full scope (see my other articles). Code bases are typically very large and often you have limited history or connection to the people who wrote it. Different programming languages, web servers, databases and platforms involve optimizing all kinds of encoding issues. Internationalization issues aren’t easy to uncover and they are hidden in the code. There may be all kinds of programming logic that will need to be rewritten as it just won’t work for multiple locales. Architectural elements that need to be added, like locale operations or database changes, touch large amounts of the code, and tend to break everything. The development team isn’t going to sit on their hands while the internationalization effort goes on – so you have two parallel coding efforts, one of which breaks everything (see prior item). Any one of these issues has enough excitement to warrant an article on its own (and I may just take that path in the future), but it’s probably good to start on a high level describing some of the process with a few example questions and answers. What locales are being targeted and when? You can lump some aspects of target markets together by encoding. For instance, ISO-Latin 1 for Western European languages, Unicode for Asian languages. From there, you need a good idea of what the product in question actually does. How will the user need to set locale? Are address formats, phone numbers, dates, times, currencies, numerical units managed in particular ways? What are the various application tiers? How is data flowing from one part of the code to another? Regarding those application tiers, are there whole sections of code that are out of scope? Could there be inherent danger in making them out of scope? What programming languages are used? There are drastic differences in how internationalization is handled among programming languages. Java and C# tend to be among the easiest with regard to i18n. PHP has gotten a lot better, but used to have no i18n framework. JavaScript is just a pain, as the very nature of how it’s used typically inspires all kinds of concatenation. C and C++ are typically difficult as there is just so much more involved with character set support, memory management and hosts of nasties like pointer arithmetic. On top of that, ANSI C/C++ is different than M icrosoft C/C++. M any M icrosoft products in most cases have their own special constraints. For instance with regard to databases Oracle will support ISO-Latin, UTF-8 and UTF-16 encodings. Yet M icrosoft SQL Server is ISO-Latin or UCS-2 only (which happens to be nearly the same as UTF-16). The list issues as they pertain to technologies goes on, and on, but you get the idea. lingoport.com/internationalization-engi… 1/4
  • 2. 4/30/2010 Software Internationalization | Interna… You can break down planning a project in terms of: 1. What’s not in the code that needs to be added? 2. What’s in the code that needs to be changed? 3. When does it need to be completed? 1. Should parts of the effort be phased? 4. What’s the budget? The first question has everything to do with marketing, usage and technology requirements. If you miss requirements you will be late, and build something less desirable than imagined. What’s not in the code is broadly an architectural issue including everything from locale selection and operations, to the method of resource files being used. This takes good smart leadership which has been through i18n planning and construction efforts multiple times. Question two is all about detective work. How are you going to find all the strings, methods and classes, programmatic logic patterns and more that have to be changed – yet lie buried in those hundred thousand to millions of lines of code? You can look at the interface and start to make guesses (the old way), or really count the issues, while locating and verifying them all with powerful diagnostic software tools. You can relatively quickly list all internationalization issues, view them, confirm their location, even figure the costs of translating the embedded strings with the right software. Question three is all about marketing plans and revenue expectations. Often there’s a lot riding on target dates, with advertising, sales and customers waiting. Plus you need to factor in ample time for testing. In a perfect world, you would internationalize to the fullest scope possible, but budget and timing reality may mean a phased approach with some aspects left out of scope, depending upon application needs, customer requirements and locale targets. Question four is often not fully known until the plan comes together. There may be a loose number assigned, but the specifics are a result of planning activities. Nevertheless, money is like oxygen. You’ll need a consistent supply if the project is to get finished without interruption. Next comes the artistic finesse part. You have to put it all together into a plan. It takes experience to convert your data regarding requirements, architecture and code refactoring into a plan that optimizes the tasks, engineering team, schedule and costs. You could try applying hard metrics for this, like X number of issues means Y time, but often this is only a place to start. You have to plan for “surprises” and variations. Experience shows you where those tend to occur. I suppose the chief service value that people buy from a quality i18n firm is that experience and its effect on risk, efficiency, time and expenses. Clients only looking to buy an hourly rate are missing the point. Resources Internationalization Articles Internationalization Newsletter Internationalization Whitepapers Videos Webinars Subscribe Subscribe to our newsletter and white papers for free internationalization news, articles, and Webinar announcements sent via email. lingoport.com/internationalization-engi… 2/4
  • 3. 4/30/2010 Software Internationalization | Interna… Click Here to Subscribe Contact Us Phone: +1.303.444.8020 Email: info@lingoport.com lingoport.com/internationalization-engi… 3/4
  • 4. 4/30/2010 Software Internationalization | Interna… lingoport.com/internationalization-engi… 4/4