SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Sh!t we're going global,
                        now what?
Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Eventbrite & i18n in 2010
    • US English site only, but used in 150 countries
    • no strings marked for translation
    • no i18n/l10n framework
    • large help center only in English
    • no non-English customer support
    • all on .com
Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Fast forward to 2012
                            .ca
                            Dec
                            201
                             1




                       Successfully launched local sites in
                        14 countries and 9 languages
Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
here is how we did it and
                   what we learned


Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Houston, we have a problem!
             Back-End                                                      Graphics
                       SEM
                SEO
                            Front-End
         Documentation           Javascript
                        PDFs
         Help Center
                     Emails    Marketing
Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
where do I start????



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Roadmap to global domination

    1. Assess your situation
    2. Getyourlocalised site in shape
    3. Don'tforget about everythingelse


Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Are you unicode ready?




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
What's your domain name strategy?




                  Global dot com or local TLDs?
Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Pick the right database,
       framework and templating engine




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
I'm ready, now what????



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Mark strings
      HTML
      <html>
      <body><h1>${ _("Welcome to the London Web Summit!") }</h1></body>
      </html>

      JAVASCRIPT
      <script>
               alert(gettext("Welcome to the London Web Summit!"));
      </script>

      PYTHON
      from django.utils.translation import ugettext_lazy as _

      my_str =     _("Welcome to the London Web Summit!")



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Extract strings
               Mako and Handlebar Templates, Javascript Files, Python Files



                                                             pybabel
                                               strings.pot
      #: django/templates/cool_template.html:26
      msgid "Welcome to Eventbrite! You chose wisely."
      msgstr ""



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Translation strategy



                         high                              high                   low
                 med                                 med                                high
                         high               low                             low




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Automate the translation workflow
                                                   source code



                               /fr_FR/strings.po                 strings.pot




                                  translation                    translation
                                   database                       database



                                                   translators




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Graphics are evil!




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Localize your back-end
      MIDDLEWARE
      if domain == 'eventbrite.fr':
           request.locale = FRLocale


      HTML
      _("Total:") <b>${ format_number(2000) }</b>
      _("Date:") <b>${ format_date('2013-03-01', format='medium') }</b>


      OUTPUT
      Total : 2.000,00
      Date : 1 mars 2013



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
TADA!




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
cool! i'm done, right?


Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
What about mobile?




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Can you help me?




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
Want to get paid?




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
What about taxes?




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
What about marketing?
                               TLD Launch                                                    FRANCE sign-ups:
                                                                                             Press and SEM




                                                                                             SPAIN sign-ups:
                                                                                             SEM only




                                                          PORTUGAL sign-ups: No marketing activity




Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
you're almost there...



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
long term, you don't need a
       dedicated international team


Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
...but you do need dedicated
                 local teams


Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
all your teams need to adapt
       to be a truly global company


Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
now, listento your audience



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
and don't forget to...



Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
...have fun!

Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage

Weitere ähnliche Inhalte

Ähnlich wie The technical side of Internationalization at Eventbrite or "Sh!t we're going global, now what?"

isslon viadeo Peter Crosby May 14 2009
isslon viadeo Peter Crosby May 14 2009isslon viadeo Peter Crosby May 14 2009
isslon viadeo Peter Crosby May 14 2009
Peter Crosby
 
strider-portofoilo
strider-portofoilostrider-portofoilo
strider-portofoilo
Tushar R
 
Green belt group presentation
Green belt group presentationGreen belt group presentation
Green belt group presentation
Molly Radecki
 

Ähnlich wie The technical side of Internationalization at Eventbrite or "Sh!t we're going global, now what?" (20)

What I learnt from building a chatbot - BrightonSEO 2017
What I learnt from building a chatbot - BrightonSEO 2017What I learnt from building a chatbot - BrightonSEO 2017
What I learnt from building a chatbot - BrightonSEO 2017
 
Vpod.tv internship presentation
Vpod.tv internship presentationVpod.tv internship presentation
Vpod.tv internship presentation
 
Mediakit Ratecard.pdf
Mediakit Ratecard.pdfMediakit Ratecard.pdf
Mediakit Ratecard.pdf
 
isslon viadeo Peter Crosby May 14 2009
isslon viadeo Peter Crosby May 14 2009isslon viadeo Peter Crosby May 14 2009
isslon viadeo Peter Crosby May 14 2009
 
Rails is not enough, by Javier Ramirez, at Conferencia Rails 2010 in Madrid, ...
Rails is not enough, by Javier Ramirez, at Conferencia Rails 2010 in Madrid, ...Rails is not enough, by Javier Ramirez, at Conferencia Rails 2010 in Madrid, ...
Rails is not enough, by Javier Ramirez, at Conferencia Rails 2010 in Madrid, ...
 
ROI Rage: Tying KPIs to Marketing Strategy and Tactics
ROI Rage: Tying KPIs to Marketing Strategy and TacticsROI Rage: Tying KPIs to Marketing Strategy and Tactics
ROI Rage: Tying KPIs to Marketing Strategy and Tactics
 
FundPrivately | Token Launchpad & Incubator
FundPrivately | Token Launchpad & IncubatorFundPrivately | Token Launchpad & Incubator
FundPrivately | Token Launchpad & Incubator
 
Portuguese Fintech Guide 2020 2021 Ver. 01
Portuguese Fintech Guide 2020 2021 Ver. 01Portuguese Fintech Guide 2020 2021 Ver. 01
Portuguese Fintech Guide 2020 2021 Ver. 01
 
strider-portofoilo
strider-portofoilostrider-portofoilo
strider-portofoilo
 
Green belt group presentation
Green belt group presentationGreen belt group presentation
Green belt group presentation
 
Magento Meetup Nagpur - Saturday, Sep 12, 2020 | PWA Studio, Demystifying MSI
Magento Meetup Nagpur - Saturday, Sep 12, 2020 | PWA Studio, Demystifying MSIMagento Meetup Nagpur - Saturday, Sep 12, 2020 | PWA Studio, Demystifying MSI
Magento Meetup Nagpur - Saturday, Sep 12, 2020 | PWA Studio, Demystifying MSI
 
The Art of Working with Non-Developers: Finding common ground on the road to ...
The Art of Working with Non-Developers: Finding common ground on the road to ...The Art of Working with Non-Developers: Finding common ground on the road to ...
The Art of Working with Non-Developers: Finding common ground on the road to ...
 
Tempusfugit
TempusfugitTempusfugit
Tempusfugit
 
Tech for Non Tech: Automation, No-Code and Community
Tech for Non Tech: Automation, No-Code and CommunityTech for Non Tech: Automation, No-Code and Community
Tech for Non Tech: Automation, No-Code and Community
 
How to Stop Random Acts of Channel Marketing, Using Platform Technology (Chan...
How to Stop Random Acts of Channel Marketing, Using Platform Technology (Chan...How to Stop Random Acts of Channel Marketing, Using Platform Technology (Chan...
How to Stop Random Acts of Channel Marketing, Using Platform Technology (Chan...
 
EECS 441 Company Presentation Zenly
EECS 441 Company Presentation ZenlyEECS 441 Company Presentation Zenly
EECS 441 Company Presentation Zenly
 
Aurelie Bellahsen. Start-ups at Village by CA: 3 elements of success
Aurelie Bellahsen. Start-ups at Village by CA: 3 elements of successAurelie Bellahsen. Start-ups at Village by CA: 3 elements of success
Aurelie Bellahsen. Start-ups at Village by CA: 3 elements of success
 
Magento Imagine 2015: We Imagined, Magento Delivered!
Magento Imagine 2015: We Imagined, Magento Delivered!Magento Imagine 2015: We Imagined, Magento Delivered!
Magento Imagine 2015: We Imagined, Magento Delivered!
 
Visiotalent by Cleverconnect
Visiotalent by CleverconnectVisiotalent by Cleverconnect
Visiotalent by Cleverconnect
 
Herd Tracker
Herd TrackerHerd Tracker
Herd Tracker
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 

The technical side of Internationalization at Eventbrite or "Sh!t we're going global, now what?"

  • 1. Sh!t we're going global, now what? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 2. Eventbrite & i18n in 2010 • US English site only, but used in 150 countries • no strings marked for translation • no i18n/l10n framework • large help center only in English • no non-English customer support • all on .com Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 3. Fast forward to 2012 .ca Dec 201 1 Successfully launched local sites in 14 countries and 9 languages Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 4. here is how we did it and what we learned Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 5. Houston, we have a problem! Back-End Graphics SEM SEO Front-End Documentation Javascript PDFs Help Center Emails Marketing Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 6. where do I start???? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 7. Roadmap to global domination 1. Assess your situation 2. Getyourlocalised site in shape 3. Don'tforget about everythingelse Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 8. Are you unicode ready? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 9. What's your domain name strategy? Global dot com or local TLDs? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 10. Pick the right database, framework and templating engine Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 11. I'm ready, now what???? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 12. Mark strings HTML <html> <body><h1>${ _("Welcome to the London Web Summit!") }</h1></body> </html> JAVASCRIPT <script> alert(gettext("Welcome to the London Web Summit!")); </script> PYTHON from django.utils.translation import ugettext_lazy as _ my_str = _("Welcome to the London Web Summit!") Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 13. Extract strings Mako and Handlebar Templates, Javascript Files, Python Files pybabel strings.pot #: django/templates/cool_template.html:26 msgid "Welcome to Eventbrite! You chose wisely." msgstr "" Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 14. Translation strategy high high low med med high high low low Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 15. Automate the translation workflow source code /fr_FR/strings.po strings.pot translation translation database database translators Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 16. Graphics are evil! Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 17. Localize your back-end MIDDLEWARE if domain == 'eventbrite.fr': request.locale = FRLocale HTML _("Total:") <b>${ format_number(2000) }</b> _("Date:") <b>${ format_date('2013-03-01', format='medium') }</b> OUTPUT Total : 2.000,00 Date : 1 mars 2013 Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 18. TADA! Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 19. cool! i'm done, right? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 20. What about mobile? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 21. Can you help me? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 22. Want to get paid? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 23. What about taxes? Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 24. What about marketing? TLD Launch FRANCE sign-ups: Press and SEM SPAIN sign-ups: SEM only PORTUGAL sign-ups: No marketing activity Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 25. you're almost there... Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 26. long term, you don't need a dedicated international team Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 27. ...but you do need dedicated local teams Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 28. all your teams need to adapt to be a truly global company Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 29. now, listento your audience Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 30. and don't forget to... Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage
  • 31. ...have fun! Renaud Visage / co-founder & cto / www.eventbrite.com / twitter @renaudvisage