# Lando contre DDEV pour un site multilingue à domaines locaux multiples

> Comparatif de configuration entre Lando et DDEV pour reproduire en local plusieurs domaines par langue, avant la mise en ligne d'un site multilingue.

- Auteur : Clément Hadrot
- Publié le : 2025-10-04
- Mis à jour le : 2025-10-04
- Catégorie : Multilingue
- URL : https://wpmoderne.dev.wordpress-developpement.fr/multilingue/lando-contre-ddev-site-multilingue-domaines-locaux/

## L’essentiel

- Deux domaines locaux par langue à reproduire fidèlement
- DDEV configure les domaines additionnels plus simplement
- Lando reste préférable pour des règles réseau avancées

Comment tester en local un site où chaque langue vit sur son propre domaine, avant même d'avoir acheté les noms de domaine définitifs ? C'est la question à laquelle s'est heurtée l'équipe chargée de préparer la refonte du site de l'agence de traduction juridique Verbamento, prévu pour fonctionner en production sur trois domaines distincts selon la langue : un domaine principal, un domaine espagnol, un domaine portugais.

Deux environnements de développement local ont été comparés pour ce cas précis : Lando et DDEV. Tous deux reposent sur des conteneurs, mais leur façon de gérer plusieurs domaines pour un même projet diffère sensiblement, et ce détail a fini par trancher le choix.

## Le besoin : trois domaines, une seule base WordPress

Le site utilise Polylang avec des domaines séparés par langue, une configuration qui nécessite que chaque domaine réponde correctement en local, avec son propre certificat de développement, avant de pouvoir valider le comportement du sélecteur de langue et des redirections. Un simple sous-dossier par langue n'aurait pas suffi à reproduire fidèlement l'environnement de production.

## Configuration côté DDEV

> L'essentiel à retenir : Deux domaines locaux par langue à reproduire fidèlement ; DDEV configure les domaines additionnels plus simplement ; Lando reste préférable pour des règles réseau avancées

DDEV permet de déclarer des domaines additionnels directement dans le fichier de configuration du projet, sans configuration réseau supplémentaire :

```
# .ddev/config.yaml
additional_hostnames:
  - verbamento-es
  - verbamento-pt
additional_fqdns:
  - verbamento.local
```

Après un `ddev restart`, les trois domaines répondent immédiatement avec un certificat local valide généré automatiquement, sans manipulation du fichier hosts du système. Cette simplicité a constitué le principal argument en faveur de DDEV pour ce projet.

## Configuration côté Lando

Lando propose un mécanisme équivalent via la clé `proxy` du fichier `.lando.yml`, mais la déclaration est plus verbeuse et demande de préciser le service concerné explicitement :

```
# .lando.yml
proxy:
  appserver:
    - verbamento.lndo.site
    - verbamento-es.lndo.site
    - verbamento-pt.lndo.site
```

Lando exige un redémarrage complet du projet avec `lando rebuild` pour appliquer ce changement, plus long qu'un simple `ddev restart`. En contrepartie, Lando expose une configuration réseau plus détaillée, utile si le projet nécessite des règles de proxy plus complexes qu'un simple ajout de domaine.

## Comparatif direct sur ce cas d'usage

| Critère | DDEV | Lando |
| --- | --- | --- |
| Ajout d'un domaine | Une ligne, redémarrage rapide | Configuration proxy plus verbeuse |
| Certificat local automatique | Oui, sans configuration | Oui, via mkcert intégré |
| Temps de redémarrage | Quelques secondes | Plus long sur reconstruction complète |
| Contrôle réseau avancé | Limité | Plus fin, utile en configuration complexe |

## Ce qui a fait pencher la balance

Pour un projet avec seulement trois domaines fixes et aucun besoin de règles réseau avancées, la simplicité de configuration de DDEV l'a emporté. Le gain de temps sur chaque itération de configuration, cumulé sur plusieurs semaines de préparation avant la mise en ligne, dépassait largement le bénéfice du contrôle réseau plus fin offert par Lando.

- Lister les domaines nécessaires avant de choisir l'environnement local
- Tester la génération automatique de certificat sur chaque domaine ajouté
- Vérifier le temps de redémarrage réel sur le poste de chaque développeur de l'équipe

## Ce que l'équipe a dû ajuster en cours de route

Un détail a failli faire trébucher le choix de DDEV : le sélecteur de langue de Polylang générait, en local, des liens vers les domaines de production plutôt que vers les domaines locaux additionnels, tant que la table d'options de Polylang n'avait pas été réimportée avec les bonnes valeurs de domaine. La correction a consisté à importer un jeu de données spécifique à l'environnement local, où chaque domaine de langue pointait vers sa version `.ddev.site` plutôt que vers le nom de domaine réel prévu pour la mise en ligne.

```
wp option update polylang '{"domains":{"fr":"https://verbamento.ddev.site","es":"https://verbamento-es.ddev.site","pt":"https://verbamento-pt.ddev.site"}}' --format=json
```

Cette commande WP-CLI, exécutée une seule fois après l'import de la base, a suffi à aligner les liens générés par le sélecteur de langue sur les domaines locaux, sans toucher à la configuration de production stockée séparément dans le dépôt du projet.

## Notre verdict

DDEV convient mieux à un projet multilingue à domaines multiples fixes et connus à l'avance, grâce à sa configuration plus directe et à des temps de redémarrage plus courts. Lando reste pertinent si le projet exige des règles réseau plus complexes que la simple déclaration de domaines additionnels, ce qui n'était pas le cas ici.
