Projects

Singleton – An Open Source Project Revolutionizing Software Globalization

 

After decades of progress and advancement in international communication, the world is more connected than ever. But how much has the rise of modern technology helped with the development and delivery of products to customers in their native language?

Software globalization (G11n) is the process of delivering a software product or application in multiple languages. It consists of two parts:

  • Localization (L10n) – the process of adapting software applications for a specific global market.
  • Internationalization (i18n) – the process of developing software applications in a way that enables localization (L10n).

Singleton is an open-source application for streamlining software globalization. It standardizes and simplifies software application globalization—for both localization and internationalization.

Singleton was originally developed under the R&D Operations and Central Services team in VMware. The core application is written using the Java™ programming language. Client-side code implementation is also available – in JavaScript (Angular, AngularJS and NodeJS web frameworks), C# and Java™ programming languages. While VMware continues to lead the development and maintenance of Singleton, the organization has decided to make it available to the open source community and other software engineers. In May 2019, VMware decided to release an open-source repository in GitHub. We invite you to test it out and collaborate with us to enrich Singleton’s resources and support organizations that adopt it to thrive.

How does Singleton work?

The localization (or L10n) functionality and capabilities of Singleton decouple localized resources from the application software. Singleton delivers a web service for the software localization process that provides an API for sending source artifacts for translation. These artifacts are processed externally, and localized resources are then embedded into the Singleton Service. L10n functionality in Singleton is separated from the core application, which makes it possible to test, update or add new language support independently from the core application’s release cycle—a requirement for fast-paced, agile releases, as well as the SaaS world. Singleton’s interoperability with multiple applications results in a simpler, more consistent quality of translation and localization across the board.

The internationalization (or i18n) capabilities of Singleton eliminate the need for developers to learn different APIs for software internationalization across technologies and programming languages. It acts as an abstraction layer that provides consistent i18n format (e.g. date, time, number and currency) to various applications that may be written in different programming languages. Its web service API exposes REST endpoints for i18n, which naturally provides abstraction across multiple clients. This allows for a programming language–agnostic i18n implementation, significantly reducing the implementation effort of software engineers and developers, allowing them to focus on testing and implementing new features and innovation. It also allows for consistent quality of software internationalization.

software globalization

In a Microservice Architecture

The Singleton approach also allows simplification of globalization in an application with Microservices Architecture. When an application is split into a set of smaller, interconnected services, each of these services exposes its own API, consumes APIs provided by other services and/or provides its own implementation of a web user interface. Each microservice operates independently, and some may even have its own database or data repository. Singleton provides a single, uniform and abstracted globalization component to these microservices.

software globalization

Singleton in VMware

VMware has successfully used Singleton to support the deployment of several products, saving effort and improving upon quality assurance. It’s either delivered as an on-premise software (SaaP) or consumed as a service (SaaS).

On-Premise Environment

software globalization

SaaS Environment

Singleton’s source files and code are on GitHub. A new user can refer to the README portion to build from source code and start using Singleton. We welcome discussions about and contributions to the project. Feel free to start a conversation with us at stackoverflow.com. Tag your question with “vmware-singleton” and we will get back to you.

Stay tuned to the Open Source Blog and follow us on Twitter (@vmwopensource) for all the latest content around software globalization and open source projects from VMware.