SlideShare una empresa de Scribd logo
1 de 24
Building
Multi-language (i18n) Flex
          Applications



          Thomas Burleson
       Senior Architect / Consultant




                                       March 6, 2010
First some acronyms...
 i18n[Internationalization]
   entire business processes focused on software product support for other languages


         • documentation
         •   translation,
         •   quality assurance,
         •   support,
         •   etc.

 l10n [Localization]
   Adaptation of software to 1 or more specific locales and culture contexts.

         • Text translation
         • Text Expansion and Flow
         • Changes to images, colors, and sounds
         • Changes to dynamic content and URLs
         • Changes to fonts and styles
         • etc.
English   |   Spanish | French |   Japanese   |   Chinese
Multi-language?
 Want to release your product in different languages?

    • Could make separate build/codebase for each language


    • Could build support for multi-language into your product.




 Could load the localized content from a...

    • text file
    • compiled resource bundle (for text, images, data, etc)
    • remote database
    • remote web service
Live
     Sample
 Registration Demo
 English & Spanish Support
 Startup Locale Detection
Registration Demo
    before l10n




  Review App hierarchy
  Review View source code
  Review View design mode
Registration Demo
             with
 Traditional l10n

 Create Properties files
 Compile Properties to Bundles
 Embed or Load Bundles
 Using the ResourceManager



 Review Impacts on Source
 Review Impacts on Design
 Consider Impacts on App
Registration Demo
             with
 Traditional l10n

 Create Properties files
 Compile Properties to Bundles
 Embed or Load Bundles
 Using the ResourceManager
     ... change all your views!


 Review Impacts on Source
 Review Impacts on Design
 Consider Impacts on App
Registration Demo
             with
 Traditional l10n

 Create Properties files
 Compile Properties to Bundles
 Embed or Load Bundles
 Using the ResourceManager



 Review Impacts on Source
 Review Impacts on Design
 Consider Impacts on App
Consider impacts...




     ... mangled design views!
...using ResourceManager
Using ResourceManager




01/21/10                    ThomasBurleson@gmail.com
Using ResourceManager




01/21/10                    ThomasBurleson@gmail.com
Consider IOC...
      Use Inversion of Control (IOC)



control instances "connect"            From   PULL
  to ResourceManager to
   access (pull) localized
          content.


                                             localized content is
                      To   PUSH              magically "injected"
                                           into control instances.


      With IOC, we can


               • Centralize all injections of localized content
               • Centralize all mappings from properties
IOC   with   l10n Injection




01/21/10                           ThomasBurleson@gmail.com
Injection   with   LocalizationMaps




01/21/10                       ThomasBurleson@gmail.com
l10n Injection
 Understanding concepts of
       •   LocalizationMap
       •   Resource Injectors
       •   Resource Proxies
       •   Smart ResourceInjectors

 Create your custom LocalizationMap

   1. Inject text to registered instances
   2. Inject parameterized Values
   3. Inject to ALL instances
   4. Inject localized bitmaps
   5. Inject skins
Registration Demo
with l10n Injection




 Create Properties files
 Compile Properties to Bundles
 Embed or Load Bundles
 Using the ResourceManager
 Create LocalizationMap registry


 Review Impacts on View Source
 Review Impacts on Design
 Consider Impacts on App
Registration Demo
with l10n Injection




 Create Properties files
 Compile Properties to Bundles
 Embed or Load Bundles
 Using the ResourceManager
 Create LocalizationMap registry



 Review Impacts on View Source
 Review Impacts on Design
 Consider Impacts on App
Registration Demo
with l10n Injection




 Create Properties files
 Compile Properties to Bundles
 Embed or Load Bundles
 Using the ResourceManager



 Review Impacts on View Source
 Review Impacts on Design
 Consider Impacts on App
LocalizationMaps
 Learned how to us LocalizationMaps in your App


 When does the injection occur?

           1. When ResourceManager announces locale changes.
           2. When instances are created           (if...)

           3. When parameterized values change     (if...)

           4. When view states change              (if...)
LocalizationMaps
 Extra considerations

   1. Dynamically loading Bundles
   2. Font Dependencies and Unicode
   3. Compiling with Unicode
   4. Dynamically loading Fonts



 Issues still remaining...

   1. Text Expansion
   2. Text Translation & Online Tools
   3. Databases vs Bundles
 Use ColdFusion as remote localization server:
      1. RESTful Service for dynamic xml as virtual bundles

      2. Performed at the business services layer

      3. Completely transparent to LocalizationMaps and your app.

      4. Can load dynamically compiled fonts




 Use ColdFusion for Translation services:
      1. Save/load translations of properties files (key/value pairs).

      2. Duplicate for other locales

      3. Upload content for localized bitmaps and other assets
Thomas Burleson
                                                        Senior Architect / Consultant



1. Source code:     http://github.com/ThomasBurleson/l10n_Injection

2. Sample apps:     http://github.com/ThomasBurleson/l10nInjection_Samples

3. Personal blog: http://www.gridlinked.info/

4. Intro to i18n:   http://www.tinyurl.com/ykru3yp




                                                                   ThomasBurleson@gmail.com

Más contenido relacionado

Similar a Building Multilanguage (i18n) Flex Applications

Titanium Meetup Deck
Titanium Meetup DeckTitanium Meetup Deck
Titanium Meetup Deck
sschwarzhoff
 
Sharepoint tips and tricks
Sharepoint tips and tricksSharepoint tips and tricks
Sharepoint tips and tricks
Jeff Wisniewski
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Management
barakdanin
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Management
Maria Asnes
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open Source
Axway Appcelerator
 

Similar a Building Multilanguage (i18n) Flex Applications (20)

How to Deliver Internal Communications with a SharePoint Intranet
How to Deliver Internal Communications with a SharePoint IntranetHow to Deliver Internal Communications with a SharePoint Intranet
How to Deliver Internal Communications with a SharePoint Intranet
 
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
 
Docker and Containers in the Cloud
Docker and Containers in the CloudDocker and Containers in the Cloud
Docker and Containers in the Cloud
 
Titanium Meetup Deck
Titanium Meetup DeckTitanium Meetup Deck
Titanium Meetup Deck
 
Introduction to Bluemix and Watson
Introduction to Bluemix and WatsonIntroduction to Bluemix and Watson
Introduction to Bluemix and Watson
 
IBM Bootcamp - Text to Speech API Lab
IBM Bootcamp - Text to Speech API LabIBM Bootcamp - Text to Speech API Lab
IBM Bootcamp - Text to Speech API Lab
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 
flex_4_tutorials
flex_4_tutorialsflex_4_tutorials
flex_4_tutorials
 
flex_4_tutorials
flex_4_tutorialsflex_4_tutorials
flex_4_tutorials
 
DEV-1467 - Darwino
DEV-1467 - DarwinoDEV-1467 - Darwino
DEV-1467 - Darwino
 
Localization for iOS
Localization for iOSLocalization for iOS
Localization for iOS
 
Branding & Internationalization with the NetBeans Platform
Branding & Internationalization with the NetBeans PlatformBranding & Internationalization with the NetBeans Platform
Branding & Internationalization with the NetBeans Platform
 
Sharepoint tips and tricks
Sharepoint tips and tricksSharepoint tips and tricks
Sharepoint tips and tricks
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Management
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Management
 
Register For BOFC Live Webinar – Bulk Clone Operations
Register For BOFC Live Webinar – Bulk Clone OperationsRegister For BOFC Live Webinar – Bulk Clone Operations
Register For BOFC Live Webinar – Bulk Clone Operations
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open Source
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 
01 introduction
01 introduction01 introduction
01 introduction
 
Localization (l10n) - The Process
Localization (l10n) - The ProcessLocalization (l10n) - The Process
Localization (l10n) - The Process
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Último (20)

Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 

Building Multilanguage (i18n) Flex Applications

  • 1. Building Multi-language (i18n) Flex Applications Thomas Burleson Senior Architect / Consultant March 6, 2010
  • 2. First some acronyms...  i18n[Internationalization] entire business processes focused on software product support for other languages • documentation • translation, • quality assurance, • support, • etc.  l10n [Localization] Adaptation of software to 1 or more specific locales and culture contexts. • Text translation • Text Expansion and Flow • Changes to images, colors, and sounds • Changes to dynamic content and URLs • Changes to fonts and styles • etc.
  • 3. English | Spanish | French | Japanese | Chinese
  • 4. Multi-language?  Want to release your product in different languages? • Could make separate build/codebase for each language • Could build support for multi-language into your product.  Could load the localized content from a... • text file • compiled resource bundle (for text, images, data, etc) • remote database • remote web service
  • 5. Live Sample  Registration Demo  English & Spanish Support  Startup Locale Detection
  • 6. Registration Demo before l10n  Review App hierarchy  Review View source code  Review View design mode
  • 7. Registration Demo with Traditional l10n  Create Properties files  Compile Properties to Bundles  Embed or Load Bundles  Using the ResourceManager  Review Impacts on Source  Review Impacts on Design  Consider Impacts on App
  • 8. Registration Demo with Traditional l10n  Create Properties files  Compile Properties to Bundles  Embed or Load Bundles  Using the ResourceManager ... change all your views!  Review Impacts on Source  Review Impacts on Design  Consider Impacts on App
  • 9. Registration Demo with Traditional l10n  Create Properties files  Compile Properties to Bundles  Embed or Load Bundles  Using the ResourceManager  Review Impacts on Source  Review Impacts on Design  Consider Impacts on App
  • 10. Consider impacts... ... mangled design views!
  • 12. Using ResourceManager 01/21/10 ThomasBurleson@gmail.com
  • 13. Using ResourceManager 01/21/10 ThomasBurleson@gmail.com
  • 14. Consider IOC...  Use Inversion of Control (IOC) control instances "connect" From PULL to ResourceManager to access (pull) localized content. localized content is To PUSH magically "injected" into control instances.  With IOC, we can • Centralize all injections of localized content • Centralize all mappings from properties
  • 15. IOC with l10n Injection 01/21/10 ThomasBurleson@gmail.com
  • 16. Injection with LocalizationMaps 01/21/10 ThomasBurleson@gmail.com
  • 17. l10n Injection  Understanding concepts of • LocalizationMap • Resource Injectors • Resource Proxies • Smart ResourceInjectors  Create your custom LocalizationMap 1. Inject text to registered instances 2. Inject parameterized Values 3. Inject to ALL instances 4. Inject localized bitmaps 5. Inject skins
  • 18. Registration Demo with l10n Injection  Create Properties files  Compile Properties to Bundles  Embed or Load Bundles  Using the ResourceManager  Create LocalizationMap registry  Review Impacts on View Source  Review Impacts on Design  Consider Impacts on App
  • 19. Registration Demo with l10n Injection  Create Properties files  Compile Properties to Bundles  Embed or Load Bundles  Using the ResourceManager  Create LocalizationMap registry  Review Impacts on View Source  Review Impacts on Design  Consider Impacts on App
  • 20. Registration Demo with l10n Injection  Create Properties files  Compile Properties to Bundles  Embed or Load Bundles  Using the ResourceManager  Review Impacts on View Source  Review Impacts on Design  Consider Impacts on App
  • 21. LocalizationMaps  Learned how to us LocalizationMaps in your App  When does the injection occur? 1. When ResourceManager announces locale changes. 2. When instances are created (if...) 3. When parameterized values change (if...) 4. When view states change (if...)
  • 22. LocalizationMaps  Extra considerations 1. Dynamically loading Bundles 2. Font Dependencies and Unicode 3. Compiling with Unicode 4. Dynamically loading Fonts  Issues still remaining... 1. Text Expansion 2. Text Translation & Online Tools 3. Databases vs Bundles
  • 23.  Use ColdFusion as remote localization server: 1. RESTful Service for dynamic xml as virtual bundles 2. Performed at the business services layer 3. Completely transparent to LocalizationMaps and your app. 4. Can load dynamically compiled fonts  Use ColdFusion for Translation services: 1. Save/load translations of properties files (key/value pairs). 2. Duplicate for other locales 3. Upload content for localized bitmaps and other assets
  • 24. Thomas Burleson Senior Architect / Consultant 1. Source code: http://github.com/ThomasBurleson/l10n_Injection 2. Sample apps: http://github.com/ThomasBurleson/l10nInjection_Samples 3. Personal blog: http://www.gridlinked.info/ 4. Intro to i18n: http://www.tinyurl.com/ykru3yp ThomasBurleson@gmail.com

Notas del editor