A service that provides support for Software Internationalization and Localization
Singleton is an open-source application for streamlining software globalization. It standardizes and simplifies software application globalization – not just in L10n, but in i18n too.
The L10n capabilities of Singleton decouple localized resources from the application software. Singleton delivers a web service 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 functions in Singleton are separated from the core application, which makes it possible to 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 to a simpler, more consistent quality of L10n across the board.
The i18n capabilities of Singleton eliminate the need for developers to learn different APIs for i18n 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 developers, allowing them to focus on implementing new features and innovation. It also allows for consistent quality of i18n.
Clone the repository using Git.
git clone https://github.com/vmware/singleton.git Or git clone [email protected]:vmware/singleton.git
Go to singleton/g11n-ws to run a build using Gradle.
cd singleton/g11n-ws ./gradlew build
Jar files will be generated inside the following location:
singleton/publish (Eg. singleton/publish/singleton-0.1.0.jar)
Navigate to singleton/publish and run the Spring Boot main application.
cd ../publish java -jar singleton-0.1.0.jar
A user interface for testing all available API endpoints will be available in the following URL:
Sample translation resources will be in the following location:
Use the following as URI/request parameters to test the API. These parameters come from the sample translation resources.
productName: "SampleProject" version: "1.0.0" component: "component1" or "component2" locale: "en", "ja" or "es"
Singleton also provides client bindings to talk with Singleton Service.
We welcome discussions about and contributions to the project!
Singleton is released under EPL v2.0 license.