Continuous Localization Pootle introduction Dwayne Bailey & Ryan Northey Continuous Localisation
2004 2017 Our history South Africa Africa wide network Built tools to address shortcomings in open source localisation 2004 built Pootle, a sweet child Translate Toolkit – QA Virtaal – offline Amagama – massive FOSS Translation Memory 2017 the teenager has arrived. We’re not fully grown. We’re on the journey. But much stronger then we’ve ever been. And we’re becoming very adaptable
How localisation has changed… Emailing documents to each other, or downloading the PO file, not much different Deliver work, review, fix, land. A few month later release Never go back to fix. Wait for the next product 10, 15, 25, 35 languages Microsoft started to localise outside of the cycle Facebook, Twitter did massive community engagement 100s of languages
Why do we need to change The world has changed Rapid delivery of versions, think mobile think webapps New markets, perhaps your next growth area is China Massive opportunities for non English speakers, the web is no longer English dominant Thus we need to deliver rapidly across many devices and many languages. We can’t afford to wait
Honor the Localizers Localisation have been built for developers Its time to honour the translators Yes we want to deliver to users But our translators will do the work Developers should be mostly automated away and so are the processes of deployment Take a step back and marvel at the commitment of FOSS localisers working on multiple projects using multiple repos, process and tools and just marvel at their commitment. Our motivation for CL is to build a system and honours and empowers these people
Problems we want to fix Overloading translators Prioritisation Lack of context Quality String turnaround String freezes Key Concepts of CL Think continual process for localisation as apposed to development and deployment Any time wasted needs to be eliminated. Automate to reduce and eliminate. Automate Built automated QA checks, and build new tests to catch new problems. Equip translators to do the work ill-equipped programmers have done in the past Get translations our rapidly, and all the time if possible
Key Ideas Reduce friction in the process Eliminate manual intervention Organisational memory Visibility of progress Empower the right people Release early and continually Key Concepts of CL Think continual process for localisation as apposed to development and deployment Any time wasted needs to be eliminated. Automate to reduce and eliminate. Automate Built automated QA checks, and build new tests to catch new problems. Equip translators to do the work ill-equipped programmers have done in the past Get translations our rapidly, and all the time if possible
What can I do right now Eliminate anything that can break a product Include l10n in CI and break if they break Automate Translate Toolkit checks What can I do right now 1. Eliminate anything that can break you product. * If a broken translation file can cause that tool it away * If a broken variable can do that detect it but also make it safe 2. Include l10n building and checking in CI 3. Automate ttk checks 4. Start playing with Pootle FS
Parallels with Continuous Integration As Pootle developers we’re very interested in the Git DVCS model and its impact on CL * Forking, Branching We should be able to work on any feature and push it back easily * Diffing In l10n we’re diffing strings and states and we want to do that consistently no matter the format. Pootle already has pluggable formats
Continuous Improvement Virtuous cycle of improvement Developing organisational memory/capacity Tough on bugs, tough on the causes of bugs
Quality Checks Prevent broken strings reaching the build Capture known classes of errors Warnings for localisers and developers Quality/change metrics Developer checks and metrics Translator checks and metrics
Improve communication Context is all important in localisation Developers can write tests, but localisers understand their language Within language teams and with dev teams
Power of the pull request Forking was seen as the death of a project Now its a success metric DVCS allowed: Local branches Multiple upstreams Tools to work between branches The real change came with Pull Requests Branching, diffing and merging
FOSS continuous localisation VCS hookup to localisation Moving away from file-based localisation Work with multiple formats Extensible representation of localisation data Build on localisation technologies Translation memory Machine translation
Translate House Support more FOSS projects Make localisation a given in (FOSS) software Build localisation ecosystems Looking for coders with a passion for localisation and increasing participation and diversity across the web
Get involved! https://github.com/translate/pootle https://gitter.im/translate/pootle