Le Codex de WordPress décrit sobrement wp_get_available_translations() comme une fonction retournant « les traductions disponibles au téléchargement », sans plus de détail sur son fonctionnement interne ni sur ses cas d’usage réels. Pourtant, cette fonction constitue la brique de base de tout écran de choix de langue à l’installation, y compris celui que WordPress affiche lui-même lors d’une nouvelle installation.
Ce sujet s’attarde sur cette fonction du cœur, sans aborder les extensions de traduction de contenu comme Polylang ou WPML, qui résolvent un problème différent : traduire du contenu, pas installer des fichiers de langue pour l’interface.
Ce que fait concrètement la fonction
wp_get_available_translations() interroge l’API de traduction de WordPress.org (via la fonction interne translations_api()) pour récupérer la liste complète des locales pour lesquelles des fichiers de traduction officiels de l’interface d’administration existent. Le résultat inclut, pour chaque locale, son code (de_DE, es_ES, pt_BR…), son nom natif, son nom anglais, et l’URL du paquet de traduction téléchargeable.
- La fonction retourne un tableau associatif indexé par code de locale
- Chaque entrée contient le nom natif de la langue, essentiel pour un affichage correct du sélecteur
- Le résultat est mis en cache via un transitoire pour éviter une requête réseau à chaque appel
Fonctionnement interne : un appel réseau mis en cache
En coulisses, la fonction s’appuie sur translations_api( 'core', array( 'version' => $wp_version ) ), qui contacte api.wordpress.org. Le résultat est stocké douze heures dans un transitoire nommé available_translations, ce qui signifie qu’un serveur sans connexion sortante vers api.wordpress.org (cas fréquent sur un hébergement mutualisé restrictif ou un environnement isolé) verra cette fonction retourner un tableau vide, sans erreur explicite.

C’est un point de vigilance important pour un site multilingue en cours de construction sur un serveur interne d’entreprise ou derrière un pare-feu strict : l’absence de connexion sortante casse silencieusement cette fonction, sans qu’aucun message n’alerte l’administrateur sur la cause réelle du problème.
Cas d’usage : proposer une langue dès l’installation
Pour un site institutionnel destiné dès le départ à plusieurs pays, il est possible d’exploiter cette fonction dans un script de provisionnement automatisé, afin d’installer directement les bons paquets de langue avant même que l’administrateur ne se connecte pour la première fois. WP-CLI propose d’ailleurs un raccourci direct pour cet usage, sans avoir à manipuler la fonction PHP soi-même :
wp language core list --field=language
wp language core install de_DE nl_NL --activate
La commande wp language core list s’appuie en interne sur le même mécanisme que wp_get_available_translations(), ce qui en fait l’équivalent en ligne de commande pour un script d’installation automatisé.
Distinguer traduction de l’interface et traduction du contenu
Un piège courant pour un développeur découvrant cette fonction consiste à croire qu’elle a un rapport avec la traduction du contenu du site (articles, pages) : ce n’est pas le cas. Elle concerne uniquement les fichiers .mo de traduction de l’interface d’administration et des chaînes du cœur de WordPress, complètement indépendants du contenu géré par Polylang ou WPML.
| Élément | Concerné par wp_get_available_translations |
|---|---|
| Menus de l’administration | Oui |
| Messages d’erreur du cœur | Oui |
| Contenu des articles et pages | Non |
| Chaînes d’un thème ou d’une extension tierce | Non, sauf si elle utilise le même système de traduction officiel |
Les pièges à connaître
Au-delà du problème de connexion réseau déjà mentionné, cette fonction ne garantit pas que la traduction retournée soit complète à cent pour cent : certaines locales moins courantes n’ont qu’une traduction partielle de l’interface, avec des chaînes manquantes qui basculent silencieusement vers l’anglais. Un site multilingue destiné à un marché avec une locale rare mérite donc une vérification manuelle de la complétude de la traduction avant d’en faire la promesse à un client.
Ce qu’il faut en retenir
Discrète mais essentielle, wp_get_available_translations() constitue le socle technique de tout écran proposant un choix de langue à l’installation d’un site WordPress. La comprendre permet d’anticiper des comportements déroutants sur des serveurs à connexion sortante restreinte, et d’automatiser proprement le provisionnement linguistique d’un nouveau site multilingue via WP-CLI.