Decoupled Localization Service for Software Internationalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software internationalization and localization processes are hindered by the reliance on libraries tied to specific programming languages and frameworks, leading to inconsistent behaviors and difficulties in updating localized resources, which results in error-prone manual steps and product release blockers due to communication gaps between developers and translators.

Innovation Solution

Decoupling the internationalization and localization layer into an independent service or micro-service that uses a REST API to manage localized resources, allowing applications to request and receive resources without requiring special libraries, and enabling on-the-fly translation without updating the applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software products rely on programming language-specific libraries for internationalization and localization, then each programming language can implement its own localization logic, but different programming languages and frameworks exhibit inconsistent behaviors in the user interface and it is difficult to update localized resources efficiently

Engineering Contradiction:
Improvelocalization behavior consistencyVSAvoidlibrary implementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a standardized localization interface as an intermediary layer between the software product and various programming language libraries. This interface defines uniform methods for accessing localized resources, date/time formatting, and locale management, allowing different underlying libraries to be accessed through a consistent API. The intermediary abstracts away the inconsistencies of individual language libraries while maintaining the ability to leverage their specific capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal localization framework that can work with multiple programming languages and frameworks through a common interface. The standardized methods and classes provided in the framework enable consistent localization behavior across different technology stacks, allowing the same software product to be localized uniformly regardless of which programming language or framework is used.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If localized resources are tied to individual software products through programming language libraries, then each product can have customized localization, but updating localized resources requires updating the software product itself which is error-prone and time-consuming

Engineering Contradiction:
Improvelocalization update efficiencyVSAvoidtime to update localized resources
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the localization functionality into separate, independently updatable components. The standardized localization interface and resource files are separated from the core software product code, allowing localization resources to be updated independently through version control systems and automated deployment pipelines. This segmentation enables translators to update localized resources without triggering full software rebuilds and redeployments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary localization by providing a complete standardized localization framework and resource file structure during the initial software development phase. This preliminary setup includes predefined methods for accessing localized resources, date/time formatting templates, and locale detection mechanisms, allowing localization updates to be performed later through simple resource file replacements rather than requiring comprehensive reimplementation.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If manual steps are used to manage localized resources between developers and translators, then customization is possible, but manual errors increase and communication gaps cause product release blockers

Engineering Contradiction:
Improvelocalization process reliabilityVSAvoidlocalization process simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements automated feedback mechanisms in the localization process. The standardized interface provides structured methods that automatically validate localized resource formats, check for required fields, and verify locale mappings. Build systems are configured to automatically detect missing or improperly formatted localization resources and provide specific error messages, enabling translators and developers to identify and fix issues without manual inspection.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent enables self-service localization through the standardized framework that automatically handles many localization tasks. The system provides automated locale detection based on user settings, automatic selection of appropriate date/time formats based on the current locale, and self-validating resource file formats. This automation reduces the need for manual intervention while maintaining high reliability in the localization process.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11249775B2Software internationalization and localization protocol in a computing system
Publication Date: 2022.02.15 VMWARE INC
  • US11249775B2 patent drawing
  • US11249775B2 patent drawing
  • US11249775B2 patent drawing

AI summary

An example method of implementing internationalization and localization for a software application includes: receiving, at a service, a first request from the software application for a localized resource corresponding to a target locale, the localized resource including a string or a format; sending a second request from the service to a backend server for the localized resource; receiving the localized resource from the backend server in response to the second request; and returning the localized resource from the service to the software application.