---
title: "Centralized Multilingual Translation Management Platform"
description: "An internal web application centralizing translation management across 7 European languages for a B2B promotional product marketplace - inline AJAX editing, PO/MO file management, automated reminders and multi-project synchronization."
locale: "en"
canonical: "https://portfolio.josedacosta.info/en/achievements/plateforme-gestion-traductions-multilingues"
source: "https://portfolio.josedacosta.info/en/achievements/plateforme-gestion-traductions-multilingues.md"
html_source: "https://portfolio.josedacosta.info/en/achievements/plateforme-gestion-traductions-multilingues"
author: "José DA COSTA"
date: "2014"
type: "achievement"
slug: "plateforme-gestion-traductions-multilingues"
tags: ["PHP 5.3+", "Symfony 2.4", "MySQL", "Doctrine DBAL", "Twig", "jQuery 2.1", "jQuery UI", "Bootstrap 3", "Select2", "SwiftMailer", "Amazon SES", "Gettext PO/MO", "SVN"]
generated_at: "2026-04-23T15:46:47.157Z"
---

# Centralized Multilingual Translation Management Platform

An internal web application centralizing translation management across 7 European languages for a B2B promotional product marketplace - inline AJAX editing, PO/MO file management, automated reminders and multi-project synchronization.

**Date:** 2014 - 2015  
**Duration:** ~18 months (scaffolding + core development)  
**Role:** Senior Software Engineer (75% of codebase)  
**Technologies:** PHP 5.3+, Symfony 2.4, MySQL, Doctrine DBAL, Twig, jQuery 2.1, jQuery UI, Bootstrap 3, Select2, SwiftMailer, Amazon SES, Gettext PO/MO, SVN

### Key Metrics

- Languages: **-** - fr, en, de, it, es, nl, pt
- Lines of Code: **-** - PHP, Twig, JS, CSS, YAML
- Routes: **-** - Defined in routing.yml
- Consumer Projects: **-** - ES, Extranet, es_suppliers, MEW...

## Presentation

_A custom tool for managing translations across a European B2B platform_

- This project is an internal web application for centralized multilingual translation management, developed for European Sourcing, a company in the B2B promotional product sector. Accessible via a dedicated subdomain, the tool allows internal teams to manage, edit, validate and export translations for the main europeansourcing.com website and its associated sub-projects.
- The application manages two distinct content types: database translations (categories, attributes, keywords, markings, products) stored in MySQL, and UI text translations managed via GNU gettext PO/MO files across 2 domains (site interface and marketing). It serves 7 European languages and feeds translations to 6+ interconnected projects.

**Ecosystem Caption:** The centralized tool feeds 6+ projects across the ecosystem

## Objectives, Context, Stakes & Risks

_Why this tool was critical for the business_

**Context:** The main europeansourcing.com site was a PHP/SQLI application using GNU gettext for i18n. Managing 7 European languages across thousands of catalog entries and UI strings was impossible by hand. The translation volume demanded a dedicated tool.

## The Steps - What I Did

_From scaffold takeover to full-featured translation platform_

**Gantt Caption:** ~18 months from scaffolding to final delivery

**Arch Caption:** Symfony 2 MVC with 3 controllers and 2 services

**Seq Caption:** From double-click to .mo compilation

## The Actors - Interactions

_A project carried by one developer within a small ecosystem_

**Chart Caption:** File modifications per developer (excluding vendor/)

## The Results

_Impact for the project, the business, and personal growth_

### Business Impact

- Translators manage all translations autonomously without developer intervention
- Inline AJAX editing with autocomplete and keyboard nav significantly accelerated workflow
- Verification tracking with email reminders helped identify and fill gaps
- Translations feed 6+ projects/subdomains across the ecosystem

### Personal Growth

- Deep expertise in i18n/l10n workflows: GNU gettext PO/MO, multilingual data, translation state tracking
- Strengthened full-stack skills: Symfony 2, Doctrine DBAL, jQuery AJAX, Bootstrap
- Learned to replace fragile custom parsers with proven libraries
- Project takeover experience: stepped in after 6 months of scaffolding and delivered a production tool

## The Project Aftermath

_From production deployment to archival_

- After delivery, translators used the tool daily to manage translations across the platform. Automated email reminders kept translation coverage high, and CSV export allowed external contractors to work offline and reintegrate their work.
- The project is now archived (SVN backup on NAS). European Sourcing continued evolving its workflows, but this tool remained the operational foundation for several years. The architectural choices (DB/PO séparation, inline AJAX editing) proved their worth over time.

**Infra Caption:** Production across 2 OVH servers + Amazon SES

## My Critical Reflection

_Strengths, weaknesses and lasting lessons_
