The talk will not only provide a case study of how Hudl tackled the globalization challenge across our platforms (iOS, Android, Web), but will also provide tips and tricks on testing, reliability, and the translation process. In this talk I will cover the following:
- How to start with an MVP (minimum viable product) on globalization
- How globalization fits in a microservice architecture
- How to make globalization scalable inside your organization when there are many parties involved.
If you are a software engineer, quality engineer, quality analyst, or product manager this session will be helpful if you are thinking about internationalizing. In addition, if you are already working with an internationalized product we invite you to attend as this will provide a different engineering, process, and testing angle.
For more info please visit bit.ly/z481516
2. What, Where, Who, What is going on?
❖ Hudl is a software company that revolutionized the way coaches and athletes prepare for
and stay ahead of the competition.
❖ @cheframzi Software development lead at Hudl
❖ 51 microservices
❖ 100+ dev
❖ +140k teams
13. Internationalization
❖ i18n: Process of planning and implementing products and services so that they can easily be adapted
to specific local languages and cultures. (Thank you wikipedia)
17. Microservices architecture
• Break down your app, match your org
• Small enough to fit in one’s head (midwest.io 2016 Edge of Chaos)
• Add more resiliency to your site
How does g11n fit here?
• We could just make it a pure SDK that lives in every service, and each service
owns its translations?
• Or We create a service that services the translations and also serves
libraries when need be.
18.
19. Translation text
❖ File as the main currency?
❖ Key Value Pairs as the main currency?
❖ Winner?
❖ Web: Key value as the currency, to decouple text from deploys
❖ iOS/Android: Use what is given to you (‘ish) so File
20.
21. Message Format
❖ ICU (International Component for Unicode) libraries
❖ User visible strings, familiar with translators
❖ Allows for {variables}, called arguments.
❖ Allows of a switch like statement to make pluralization , gender concerns
work.
24. Message Format
Use {assistBreakdownsRemaining, plural,
one {your <span class="assist-credits-remaining">#</span> Hudl
Assist credit}
other {one of your <span class="assist-credits-remaining">#</span> Hudl
Assist credits}
}
or <a href="{webPGBUri}" class="cta-link">tag the video</a> yourself.
39. Translation Management
❖ Everyone wants to help, but
trust me Use professional
translators
❖ Machine translation is not there
yet. Do not use it
❖ Context is everything
❖ Should you build in house? Is
Translation management your
core business?
40. Translation Management
❖ We chose OneSky
• One place for your translation, You can invite in house translators, QA, or pay for a translation
• API to automate your translation process, however works for your business
• Allows for multi project deployment, example: iOS, Android, web
• File based
41. Translation Management
❖ Solid documentation https://github.com/
onesky/api-documentation-platform
❖ SDK’s for different languages
❖ Integration tools like https://
github.com/onesky/auto-screenshot-ios
42. Resilience
❖ Each micro service does not contain translations files
❖ They need to make a call to g11n
❖ IO is not perfect, bad things WILL happen, and that HAS to be ok
❖ How can we provide an experience where other clients can work with an API
with resilience built in
43.
44. -Add that to famous last words
Option#1 Treat the g11n service like any other service
50. -Kinda the thing you tell people in a conference when you
have no idea what you are talking about
Option#3 Let the services plugin their dependencies & g11n
standardize on the client
51.
52. Lessons learned
❖ Depending on the browser language is a good start, but it is not dependable.
❖ Options?
❖ Network calls fail, Do not let it give your users a bad day