Server-Side Internationalization Framework for Web Apps
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Internationalization of web applications is resource-intensive due to inefficient use of client resources, as clients download large libraries of translated text strings, with only a small fraction being used, leading to performance degradation as the application expands.
Innovation Solution
A server-side internationalization framework that loads required resources on demand and caches dynamically created server-side text information, allowing for efficient translation and localization of text messages, reducing resource usage by storing mappings between text keys and pre-translated text in separate files for each language and using a distributed cache for quick access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If clients download all known translated text strings in multiple languages from a server, then complete multilingual support is provided, but client resources become overloaded and performance degrades
Solution Approach 1:
The patent extracts only the necessary translated text strings from the complete resource library and delivers them to clients on-demand. Instead of providing all translations, the system identifies and extracts only the specific language variants needed for each client based on their locale, significantly reducing the quantity of data transferred while maintaining complete multilingual support capability.
Solution Approach 2:
The system dynamically determines which translated text strings to download based on real-time client locale information and application state. The resource library is not statically downloaded in full, but rather dynamically queried and retrieved only for the specific language combinations needed, allowing the system to adapt resource usage to actual requirements.
2Adaptability or versatility
If a sizeable resource library with all translated text strings is downloaded, then all languages are available, but only a small fraction is actually used
Solution Approach 1:
The system implements partial action by downloading only the necessary portion of the resource library required for each client's specific locale needs. Instead of excessively downloading the complete library of all translated text strings, the system retrieves exactly the subset needed, eliminating waste while ensuring all required languages are available.
3Adaptability or versatility
If the application expands and adds more translated text strings, then multilingual capability increases, but clients become overloaded
Solution Approach 1:
The resource library is segmented into discrete, independently retrievable text strings organized by locale and application context. When the application expands with new translations, these are added as separate segments rather than requiring complete library redistribution. Clients retrieve only the specific segments they need, allowing application expansion without overloading clients.
4Loss of information
If clients search through hundreds or thousands of translated text strings, then the required string is found, but retrieval time increases
Solution Approach 1:
The system performs preliminary organization of the resource library by locale and text key during server-side preparation. When a client needs a translation, the system has already pre-organized the data structure to enable direct retrieval based on the client's locale and the specific text key, eliminating the need for clients to search through hundreds or thousands of strings and significantly reducing retrieval time.
Data Source
AI summary
A server receives a web-protocol request from a client that triggers a server-side operation in response to the request. Based on a result of the operation, the server identifies first text information to be returned to the client. A language associated with the client device is determined. A determination is made as to whether a resource file corresponding to the determined language is loaded in a volatile memory on the server. In a case where a resource file corresponding to the determined language is not loaded in the volatile memory, the resource file corresponding to the determined language is loaded from a non-volatile memory into the volatile memory on the server. Second text information which corresponds to the first text information to be returned to the client device is retrieved from the resource file in the volatile memory. The second text information is transmitted to the client.


