translating at cloud speeds with the globalization pipeline · developer commits string collects...

Post on 15-May-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related