Design and Implementation of Vivo Multi‑Language Document System
The article describes Vivo’s overseas sales team’s multi‑language document system, detailing its low‑maintenance i18n design that leverages the existing configuration center, a MCMS UI, and a runtime JAR to streamline project creation, translation, testing, publishing, and real‑time front‑end text updates across web and decoupled architectures.
The article introduces the background, design, and implementation of a multi‑language document system developed by the vivo overseas sales team to address the challenges of global product localization. It explains why a flexible, low‑maintenance i18n solution is needed for overseas markets and how the system reduces release cycles and maintenance costs.
Advantages over traditional Spring‑based i18n solutions are highlighted: the system leverages vivo's existing configuration center (cfg), minimizes integration effort, standardizes the workflow for creating, translating, testing, and publishing text resources, and supports both traditional web projects and front‑back‑end separated architectures.
The overall architecture is divided into three parts:
MCMS management system : provides UI for creating projects, languages, and managing text keys (add, edit, delete, sync).
Configuration center : acts as a bridge between MCMS and business services; after MCMS publishes text following naming conventions, the configuration center stores the key‑value pairs for runtime lookup.
Business system : integrates a provided JAR, retrieves the appropriate language text from the configuration center at runtime based on the request’s locale, and replaces the placeholder keys in the code.
The document details the processing flow, including how user requests carry country/language information (UI selectors, URL path, cookies), how the server initializes default locale settings, and how the final locale is used to fetch the correct language bundle from the configuration center.
Usage steps are described, covering system overview, project creation, language version creation (single or batch), content management (add/edit/review/import/export), and user/permission management.
Integration steps include importing the provided JAR, configuring the configuration center, and creating language versions. A sample Java configuration class is provided:
@Configuration
public class WebConfiguration {
@Bean
public VivoPropertyExtendConfigurer vivoPropertyExtendConfigurer() {
VivoPropertyExtendConfigurer vivoPropertyExtendConfigurer = new VivoPropertyExtendConfigurer();
vivoPropertyExtendConfigurer.setLocations(new ClassPathResource("config/vivo.properties"));
vivoPropertyExtendConfigurer.setEnvListConfigKey("env.list.config");
return vivoPropertyExtendConfigurer;
}
@Bean
public FilterRegistrationBean mcmsFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new VivoMcmsPropsFilter());
registration.addUrlPatterns("/mcms/props");
registration.setName("vivo-mcms-filter");
registration.setOrder(1);
return registration;
}
}After the language versions are defined in the configuration center, the system synchronizes the text resources, and at application startup the appropriate language bundle is loaded based on the current locale, enabling real‑time visual editing of front‑end text via a browser plugin.
The conclusion reiterates that the system offers simple integration, systematic management, and visual real‑time updates, and that it will continue to evolve to meet the growing needs of vivo’s overseas business.
vivo Internet Technology
Sharing practical vivo Internet technology insights and salon events, plus the latest industry news and hot conferences.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.