22
Translating at Cloud Speeds with the Globalization Pipeline

Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

Translating at Cloud Speedswith the Globalization Pipeline

Page 2: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 3: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 4: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

ContinuousFeedback &

OptimizationCollaborative Development

Continuous Release and Deployment

ContinuousMonitoring

ContinuousBusiness Planning

ContinuousTesting

Operate Develop/ Test

Deploy

Steer

DevOpsContinuous Feedback

DevOps

Page 5: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

DevOps Pipeline Example

Page 6: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 7: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

Does this process work well for the agile development?

Frequent releases Small incremental updates

No!

Page 8: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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?

Page 9: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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.

Page 10: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 11: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 12: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 13: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 14: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

REST APIs

Globalization Pipeline

Page 15: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

Service Dashboard

Globalization Pipeline

Page 16: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

SDK and Tools

Globalization Pipeline

Page 17: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 18: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

Demo

Page 19: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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.

Page 20: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 21: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

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

Page 22: Translating at Cloud Speeds with the Globalization Pipeline · Developer Commits String Collects String Resource Files Resource Files Renames Files and Commits Makes a Package (zip)

Thank You!Globalization Pipeline