Het probleem: Meertalige Magento shops deployen is traag
Magento 2 is flexibel en krachtig, maar snel deployen? Dat is iets anders.
Als je meerdere talen en thema’s hebt, merk je al snel dat het genereren van statische bestanden extreem veel tijd kost.
Magento bouwt namelijk per taal en per thema alle assets opnieuw:
- CSS en JavaScript
- Afbeeldingen en fonts
js-translation.json- Vertaalbestanden uit
i18n/*.csv
Dat is zonde van je tijd. Waarom?
Omdat 95% van die bestanden precies hetzelfde zijn voor bijvoorbeeld en_US, nl_NL, de_DE of fr_BE.
Stel, je hebt:
- 2 thema’s: Disrex/demo en Disrex/demo2
- 5 talen: Engels, Nederlands, Duits, Frans (BE), Frans (FR)
Dan laat Magento je 10 keer dezelfde assets bouwen. Dat kost tijd en servercapaciteit.
Onze oplossing: Slimmer deployen in 3 stappen
Bij Disrex hebben we dit probleem opgelost door het Magento deployment proces slim op te knippen.
De oplossing bestaat uit 3 simpele stappen:
Stap 1️⃣: Genereer de volledige static content voor en_US
De basisassets (CSS, JS, afbeeldingen, fonts) zijn meestal voor alle talen hetzelfde.
Dus we bouwen die maar één keer:
php bin/magento setup:static-content:deploy -f en_US \
--theme Disrex/demo --theme Disrex/demo2Dit genereert:
- CSS en JS
- Afbeeldingen, fonts en icons
- De
en_UStaalbestanden
Stap 2️⃣: Genereer alleen de vertaalbestanden voor andere talen
Vervolgens laten we Magento alleen de vertalingen aanmaken voor de andere talen.
Hierbij slaan we alle andere assets over:
php bin/magento setup:static-content:deploy -f nl_NL de_DE fr_BE fr_FR \
--theme Disrex/demo --theme Disrex/demo2 \
--no-css --no-less --no-js-bundle --no-images --no-fonts --no-html --no-misc --no-html-minify --no-parentWat gebeurt er?
- Magento genereert alleen de vertalingen en
js-translation.json - CSS, JS, fonts en afbeeldingen worden niet opnieuw gegenereerd
- De bestaande
en_USassets blijven gewoon staan
Stap 3️⃣: Kopieer de static content van en_US naar de andere talen (zonder js-translation.json)
Omdat de meeste assets identiek zijn tussen talen, kopiëren we gewoon de en_US output naar de andere talen.
Maar: we laten het bestand js-translation.json met rust, omdat dat taal-specifiek is en net is aangemaakt in stap 2.
Hier is een simpele bash-script die wij daarvoor gebruiken:
1#!/bin/bash
2
3# Thema folders (meerdere locaties mogelijk)
4THEMES=(
5 "pub/static/frontend/Disrex/demo/"
6 "pub/static/frontend/Disrex/demo2/"
7)
8
9# Kopieer en_US naar andere talen, maar sla js-translation.json over
10for THEME in "${THEMES[@]}"; do
11 for LANG in $(find "$THEME" -mindepth 1 -maxdepth 1 -type d ! -name 'en_US*'); do
12 rsync -a --exclude="js-translation.json" "${THEME}en_US/" "$LANG/"
13 done
14done
15
16echo "Kopieeractie voltooid."Wat doet dit?
- Kopieert alle assets van
en_USnaar andere talen - Laat de dynamische vertalingen (
js-translation.json) met rust
Wat levert dit op?
| Voordeel | Wat betekent dat? |
|---|---|
| 15x sneller deployen | Geen lange wachttijden meer bij CI/CD pipelines |
| Minder serverbelasting | Minder CPU en disk I/O tijdens builds |
| Minder fouten | Geen timeouts of memory issues bij grote shops |
| Zelfde frontend output | Geen verschil in CSS/JS of visuele weergave |
Werkt dit altijd?
Ja, als:
- Je geen taal-afhankelijke CSS of JS hebt
- Je vertalingen via
.csvbestanden lopen (zoals Magento standaard doet) - Je met meerdere storeviews en thema’s werkt
Waarom kiezen voor Disrex?
"Wij lossen niet alleen de problemen op die je al kent, maar vooral de problemen waarvan je nog niet wist dat ze je tijd en geld kosten."
Bij Disrex houden we van pragmatische oplossingen. We maken Magento sneller, soepeler en makkelijker voor developers én marketeers.
Zelf ook sneller deployen?
Werk je met Magento 2 en wil je:
- Snellere builds
- Minder stress bij releases
- Een stabielere workflow voor meerdere talen en thema’s?
Zin in een kop koffie?
We vinden het leuk om met je te sparren over dit soort oplossingen.
Geen verkooppraatjes, gewoon een goed gesprek over hoe je je Magento shop slimmer kunt deployen of sneller kunt hosten.
Benieuwd wat we voor jouw webshop kunnen betekenen? Ontdek onze diensten.




