Translating at Cloud Speeds with the Globalization Pipeline
Translating at Cloud Speedswith the Globalization Pipeline
Feature FreezeUI Freeze
Code Freeze
GoldMaster
Lab
Translator
NLS BuildReady
Language Tester
TranslationProject Manager
2 – 6 wks 1 – 3 wks
Traditional Translation Processin Waterfall Development / On-premises Software
Agile Development / Cloud Service
Design Implement Test Deploy
Design Implement Test Deploy
Design Implement Test Deploy
Design Implement Test Deploy
OfficialRelease
2 to 4 Weeks
ContinuousFeedback &
OptimizationCollaborative Development
Continuous Release and Deployment
ContinuousMonitoring
ContinuousBusiness Planning
ContinuousTesting
Operate Develop/ Test
Deploy
Steer
DevOpsContinuous Feedback
DevOps
DevOps Pipeline Example
Translation Vendor
Translation Project Manager
Translators
Developer
Commits String Resource FilesCollects String
Resource Files
Renames Files and Commits
Makes a Package (zip) and Sends it
Ships Translated Files
Sends Files to Each Language Translators
Sends Translated Files
Does this process work well for the agile development?
Frequent releases Small incremental updates
No!
Pain Points (translation)
UI string freeze… I have to wait for next translation batch.
I need to ask developers to collect resource files to be included in next translation batch, zip them and send it out.
I received translated files. Now I have to rename these files and check them into our repository.
Phew, I finished merging translated files… Oops, the UI is broken in French?
Pain Points (translation verification test)
Now I need to deploy a build with translations to somewhere for TVT separately…
French tester updated a few translations in resfile1 and resfile5, Japanese tester corrected a few strings in resfile2, German tester sent a few strings in resfile1 and resfile3… I need to collect necessary changes and merge them into our SCM…
I deployed a new version including some fixes. Hmm, a French tester is asking if the fix for French he sent to us yesterday is included or not.
Shared Workflow
Process Contents via APIs
Solution?
Development team and translators work on translations on centralized system
Single copy of translation
Update, deliver and integrate translations via APIs
Build tools through APIs
Globalization Pipeline
Globalization Pipeline
A service integrated to IBM Bluemix Hosting translations on cloud RESTful APIs for editing and accessing translations Integrated Machine translation Human post-editing integration
1
2
SDKs and plugins to push translations to apps dynamically
Human post-editing at any time in your development cycle. Translators can see their edits in real-time
Source and translated/edited key-value pairs stored
Integrate with Watson Language Services or other 3rd party MT for customized MT and additional languages
Integrate as a stage in Delivery Pipeline or plugin to UrbanCode Deploy
Upload app source
Your App hosted on Bluemix or your own data center
Integrate into VS Code Editor or GitHub Atom
Tools and plugins for build tools to import/export translations
Globalization Pipeline
Globalization Pipeline
The Vision
Push translation 'left' so it takes place sooner in the development process
Leverage a combination of human translation and machine translation in a manner that considers release maturity, application domain and audience, release schedules, release investment
Transform translation from a serial event to parallel asynchronous process alongside product development
Transition away from files and file management to APIs
REST APIs
Globalization Pipeline
Service Dashboard
Globalization Pipeline
SDK and Tools
Globalization Pipeline
SDKGoals
Minimize the deviation from the standard resource string access functions on each language/runtime environment
Accessing locally packaged bundles and Globalization Pipeline service hosted bundles transparently (and configurable priority)
Can work with a service credential with limited role (read-only)
Open source on GitHub
Demo
Simple JSP Example (1)Build time integration using Globalization Pipeline Maven Plugin
Create a new instance of Bluemix Globalization Pipeline service
Add gp-maven-plugin in pom.xml Invoke the build goal gp:upload to collect
translatable string resources and upload them to the Globalization Pipeline instance
Build the app war file including translated string resource files collected by the goal gp:download.
Simple JSP Example (2)Run time integration using Globalization Pipeline Java client SDK
Connect an instance of Globalization Pipeline to the app
Include gp-java-client jar file in the application war file - special directory to be included in JRE's extension library path gp-java-client includes an implementation of
java.util.spi.ResourceBundleControlProvider
Links
SDK and Tools at GitHubhttps://github.com/IBM-Bluemix/gp-common
Official Service Documentationhttps://console.ng.bluemix.net/docs/services/GlobalizationPipeline/index.html
REST API Reference (Swagger)https://gp-rest.ng.bluemix.net/translate/swagger/index.html
Globalization Pipeline
Thank You!Globalization Pipeline