SlideShare a Scribd company logo
1 of 4
Download to read offline
4/30/2010                                  Internationalization Software | Externa…




   Product Tip: Finding and Externalizing Strings in large amounts of
   Code
   Internationalization Articles                                                                         September 26th, 2007

   Globalyzer Datasheet

   Share this Article: Forward to an associate right now (requires a Pop-up window)


        The Plunger Button: Sucking Strings from Software
   It’s a point of cavalier pride that we figure Globalyzer, a leading software internationalization tool, is the only
   commercial software that features a toilet plunger in its interface. Obviously that flies in the face of
   internationalization (i18n) convention regarding use of culturally sensitive images in software. But if you’ve ever had
   to find and externalize strings without Globalyzer, you understand the metaphor pretty quickly.

   Finding and externalizing strings in large amounts of code without Globalyzer is repetitive, tedious, error-prone and
   really not very fun at all. It can cause a serious distraction from other product critical feature development and bog
   teams down.

   The Plunger dates back to us sitting around and trying to think what image makes sense for string externalization. At
   first, the Plunger was a funny joke. Next thing we knew, we were paying a graphic artist to draw it up, along with
   the rest of our buttons. We all still get a chuckle out of it. But enough about us, here’s why that button is so
   important and how to make it work best for you:

   One of the important productive contributions that Globalyzer can make to internationalizing existing code is
   accurately finding and externalizing interface messages, otherwise known as strings. For any readers that might not
   be familiar with what strings are and why they are a pain, here’s a simple explanation: strings are messages, words
   (and I’ll lump in images) that are part of the interface of a product. If these words, messages and images are left in
   source code, they present a technical challenge for a translator to implement a translation without breaking the
   code.

   Plus, even if you do successfully translate without first extracting the strings, and you happen to be really lucky or
   talented and not break the code, then you end up with a whole new version of your code to support.

   Years ago, it was more common to see companies make this mistake. Now we still see it as a legacy of companies
   having distributors or agents manage adapting their products for various locales. We do still see companies not
   realizing that as multi-locale data comes in and must be processed by their applications, things break regarding data
   storage and manipulation, in addition to just display issues, but that’s another story for another day.

   Finding strings buried in tens, to hundreds of thousands of lines to millions of lines of code is challenging. Significant
   efforts were undertaken, and we undergo continual optimization within Globalyzer to solve that problem. It’s
   important to distinguish actual interfacing messages from programmatic issues such as database queries or debug
   statements. So Globalyzer lets you build and create special rules around string detection, in addition to providing
   many default detection and filtering capabilities.

   Once you’ve found the strings, you need to put it in a separate file (e.g. properties, resources, .resx), and in its
   place, put a function in the code that says exactly where that string is, and tells the application to go get it. That’s

www.lingoport.com/stringextraction                                                                                              1/4
4/30/2010                                   Internationalization Software | Externa…
   where the Plunger comes in. Globalyzer’s GIDE interface let’s you visually inspect all the strings detected. You can
   move from string to string, while also linking a source code view. When you are ready, you simply select the string
   and hit the plunger button. The string is sucked out of the code, the command to get the string is put in its place,
   and Globalyzer generates and tracks numeric key values managing that string. All the string “bookkeeping” is done
   for you. Plus you can optionally insert a comment including the original string so you can see it in the context of
   your code.


        Extracting Multiple Strings
   Once you really get going on string externalization, you can use the multiple extraction Plunger button, shown
   above. You still need to visually inspect strings using Globalyzer’s GIDE to make sure that they aren’t concatenated
   or something you don’t want to externalize. However, this little button lets you externalize and automatically
   manage hundreds to thousands of strings at a time. Using Globalyzer, we’ve had customer development teams tell us
   that they could now find and extract in an afternoon, what had previously taken 6 weeks or more (plus costing
   release delays and the loss of hair), when they were doing it on their own, even when using simple utilities in their
   preferred IDE.

   Even if you think you’ve already found and extracted all the strings in your source code, chances are good some
   have slipped through. In fact Lingoport is often hired to find and fix string issues in code that has been globalized
   previously. It’s just hard to find it all without a system like Globalyzer, and so strings sneak through, resulting in
   users seeing things like error messages in a language they don’t have command over. The result is a damaged
   perception of the product, plus a possible call to support.


   Plunger Caveat
   It’s important to remember that you still have to fix any string concatenation before extracting strings into
   resource, properties or resx files. Globalyzer provides help for that too.


   String Extraction Supported Programming Languages
   Globalyzer 2.3 supports string extraction for java, jsp, html, c#, aspx, asp, c/c++, php and Delphi programming
   languages. If you’re using something else, we can provide custom string externalization extensions to Globalyzer and
   do so in a timely and cost efficient manner.


   But Wait, There’s More…
   Take the Plunge
   Try Globalyzer for free, right now.

   Sign up for a Trial Globalyzer Account at: http://www.globalyzer.com/

   Suck out your own strings, up to a 1000 lines of your own code, in your own proprietary protected environment.
   Plus check out the other amazing features like our newly added module, PseudoJudo.

   Then, when you are thoroughly impressed, receive a 10% discount on Globalyzer* annual subscription purchased
   before November 15th, 2006. Just mention reading this Plunger article to receive the discount.

   * Use the discount code “plunger” – Discount applies to a full year subscription. Discount doesn’t apply if Globalyzer
   has been discounted as a package with an internationalization services proposal.

   Share this Article: Forward to an associate right now (requires a Pop-up window)




www.lingoport.com/stringextraction                                                                                          2/4
4/30/2010                                Internationalization Software | Externa…

            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.
   Click Here to Subscribe


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




www.lingoport.com/stringextraction                                                                          3/4
4/30/2010                            Internationalization Software | Externa…




www.lingoport.com/stringextraction                                              4/4

More Related Content

More from 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)
 

More from Lingoport (www.lingoport.com) (16)

Internationalization & Localization Process
Internationalization & Localization ProcessInternationalization & Localization Process
Internationalization & Localization Process
 
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...
 
JavaScript Internationalization I18n for Efficient Software Localization
JavaScript Internationalization I18n for Efficient Software LocalizationJavaScript Internationalization I18n for Efficient Software Localization
JavaScript Internationalization I18n for Efficient Software Localization
 
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 ...
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Software Internationalization (i18n) Article: Externalizing Large Amounts of Strings from Source Code

  • 1. 4/30/2010 Internationalization Software | Externa… Product Tip: Finding and Externalizing Strings in large amounts of Code Internationalization Articles September 26th, 2007 Globalyzer Datasheet Share this Article: Forward to an associate right now (requires a Pop-up window) The Plunger Button: Sucking Strings from Software It’s a point of cavalier pride that we figure Globalyzer, a leading software internationalization tool, is the only commercial software that features a toilet plunger in its interface. Obviously that flies in the face of internationalization (i18n) convention regarding use of culturally sensitive images in software. But if you’ve ever had to find and externalize strings without Globalyzer, you understand the metaphor pretty quickly. Finding and externalizing strings in large amounts of code without Globalyzer is repetitive, tedious, error-prone and really not very fun at all. It can cause a serious distraction from other product critical feature development and bog teams down. The Plunger dates back to us sitting around and trying to think what image makes sense for string externalization. At first, the Plunger was a funny joke. Next thing we knew, we were paying a graphic artist to draw it up, along with the rest of our buttons. We all still get a chuckle out of it. But enough about us, here’s why that button is so important and how to make it work best for you: One of the important productive contributions that Globalyzer can make to internationalizing existing code is accurately finding and externalizing interface messages, otherwise known as strings. For any readers that might not be familiar with what strings are and why they are a pain, here’s a simple explanation: strings are messages, words (and I’ll lump in images) that are part of the interface of a product. If these words, messages and images are left in source code, they present a technical challenge for a translator to implement a translation without breaking the code. Plus, even if you do successfully translate without first extracting the strings, and you happen to be really lucky or talented and not break the code, then you end up with a whole new version of your code to support. Years ago, it was more common to see companies make this mistake. Now we still see it as a legacy of companies having distributors or agents manage adapting their products for various locales. We do still see companies not realizing that as multi-locale data comes in and must be processed by their applications, things break regarding data storage and manipulation, in addition to just display issues, but that’s another story for another day. Finding strings buried in tens, to hundreds of thousands of lines to millions of lines of code is challenging. Significant efforts were undertaken, and we undergo continual optimization within Globalyzer to solve that problem. It’s important to distinguish actual interfacing messages from programmatic issues such as database queries or debug statements. So Globalyzer lets you build and create special rules around string detection, in addition to providing many default detection and filtering capabilities. Once you’ve found the strings, you need to put it in a separate file (e.g. properties, resources, .resx), and in its place, put a function in the code that says exactly where that string is, and tells the application to go get it. That’s www.lingoport.com/stringextraction 1/4
  • 2. 4/30/2010 Internationalization Software | Externa… where the Plunger comes in. Globalyzer’s GIDE interface let’s you visually inspect all the strings detected. You can move from string to string, while also linking a source code view. When you are ready, you simply select the string and hit the plunger button. The string is sucked out of the code, the command to get the string is put in its place, and Globalyzer generates and tracks numeric key values managing that string. All the string “bookkeeping” is done for you. Plus you can optionally insert a comment including the original string so you can see it in the context of your code. Extracting Multiple Strings Once you really get going on string externalization, you can use the multiple extraction Plunger button, shown above. You still need to visually inspect strings using Globalyzer’s GIDE to make sure that they aren’t concatenated or something you don’t want to externalize. However, this little button lets you externalize and automatically manage hundreds to thousands of strings at a time. Using Globalyzer, we’ve had customer development teams tell us that they could now find and extract in an afternoon, what had previously taken 6 weeks or more (plus costing release delays and the loss of hair), when they were doing it on their own, even when using simple utilities in their preferred IDE. Even if you think you’ve already found and extracted all the strings in your source code, chances are good some have slipped through. In fact Lingoport is often hired to find and fix string issues in code that has been globalized previously. It’s just hard to find it all without a system like Globalyzer, and so strings sneak through, resulting in users seeing things like error messages in a language they don’t have command over. The result is a damaged perception of the product, plus a possible call to support. Plunger Caveat It’s important to remember that you still have to fix any string concatenation before extracting strings into resource, properties or resx files. Globalyzer provides help for that too. String Extraction Supported Programming Languages Globalyzer 2.3 supports string extraction for java, jsp, html, c#, aspx, asp, c/c++, php and Delphi programming languages. If you’re using something else, we can provide custom string externalization extensions to Globalyzer and do so in a timely and cost efficient manner. But Wait, There’s More… Take the Plunge Try Globalyzer for free, right now. Sign up for a Trial Globalyzer Account at: http://www.globalyzer.com/ Suck out your own strings, up to a 1000 lines of your own code, in your own proprietary protected environment. Plus check out the other amazing features like our newly added module, PseudoJudo. Then, when you are thoroughly impressed, receive a 10% discount on Globalyzer* annual subscription purchased before November 15th, 2006. Just mention reading this Plunger article to receive the discount. * Use the discount code “plunger” – Discount applies to a full year subscription. Discount doesn’t apply if Globalyzer has been discounted as a package with an internationalization services proposal. Share this Article: Forward to an associate right now (requires a Pop-up window) www.lingoport.com/stringextraction 2/4
  • 3. 4/30/2010 Internationalization Software | Externa… 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. Click Here to Subscribe Contact Us Phone: +1.303.444.8020 Email: info@lingoport.com www.lingoport.com/stringextraction 3/4
  • 4. 4/30/2010 Internationalization Software | Externa… www.lingoport.com/stringextraction 4/4