Un code de localisation est composé de deux blocs de deux lettres séparés par une barre de soulignement :
- les deux premières lettres, toujours minuscules, identifient la langue (ex : fr, en, es)
- les deux dernières lettres, toujours majuscules, identifient la culture (ex : US, FR, CA, GB, ES, AR).
De ces deux blocs peuvent découler une multitude de codes de localisation. (ex : fr_CA, fr_FR, en_US, en_GB, en_CA, es_ES, es_AR).
Lorsque nous travaillons à localiser un site WordPress, il est important de connaître le code de la localisation que notre site utilise. En effet, le code de localisation devra faire partie du nom du fichier .po et de sa version compilée .mo (ex : fichier fr_FR.mo). Ces fichiers contiennent la localisation des expressions utilisées dans le site Web. Si le nom du fichier ne correspond pas au code de localisation, il sera simplement ignoré alors les expressions ne seront pas traduites.
S'il est relativement facile de savoir si le site est en français en regardant les libellés dans le tableau de bord, il est légèrement plus compliqué de savoir si le code de localisation est fr_FR ou fr_CA. Cette information sera essentielle pour pouvoir localiser correctement notre site.
Dans le tableau de bord
Le choix de la langue est effectué dans le tableau de bord, option Réglages / Général. WordPress recherchera les langues disponibles dans les fichiers installés et nous présentera une liste déroulante pour choisir celle que nous désirons.
Image may be NSFW.
Clik here to view.
Dans l'image précédente, on sait que le site est en français mais on ne connait pas le code de localisation exact. Il faut donc aller voir un peu plus loin...
Dans le système de fichiers
Comment WordPress saura-t-il quelles langues sont installées ? C'est la fonction wp_dropdown_languages(), codée dans le fichier wp-includes/l10n.php, qui se chargera du travail.
L'anglais (en_US) est toujours disponibles. Les autres langues sont celles retrouvées dans le dossier suivant :
www\votresite\wp-content\languages
WordPress recherchera dans ce dossier les fichiers dont l'extension est .mo. Les fichiers débutant par « admin- » et par « continents-cities- » seront exclus de la liste.
Ainsi, avec la liste des fichiers présentée dans l'image suivante, on obtiendra deux langues : l'anglais, qui est toujours présent, ainsi que le français grâce au fichier fr_FR.mo.
Ainsi, en regardant les fichiers présents dans ce dossier, on peut connaître le code de localisation utilisé par notre site Web. Par exemple, si le tableau de bord indique que la langue est « Français » et que le dossier présente le fichier fr_FR, on saura qu'il s'agit là du code de localisation utilisé.
Image may be NSFW.
Clik here to view.
Dans la base de données
Il est également possible de retrouver le code de localisation directement dans la base de données.
La table wp_options (où wp_ sera remplacé par le préfixe que vous aurez choisis) contient une série de paires Option - Valeur (champs option_name - option_value). L'option WPLANG est celle à rechercher pour trouver le code de localisation utilisé.
Image may be NSFW.
Clik here to view.
Par programmation
Il est également possible de retrouver le code de localisation à l'aide de la fonction get_bloginfo(). Un appel à cette fonction dans le fichier functions.php de votre thème enfant vous permettra de voir le code effectivement utilisé par votre site.
Attention : vous ne pouvez pas simplement appeler get_bloginfo() au début de functions.php car les fonctions WordPress ne sont pas entièrement chargées à ce moment. Vous devez l'appeler à l'intérieur d'une autre fonction qui, elle, sera appelée au moment opportun grâce au mécanisme des hooks.
Ex :
add_action('wp_loaded','annie_test'); // exécutera la fonction annie_test quand WordPress sera entièrement chargé
function annie_test() {
$langue = get_bloginfo( 'language' );
}
Si on utilise un IDE comme CodeLobster pour lancer notre programme, nous pourrons utiliser le débogueur pour voir la valeur de la variable ainsi créée.
Image may be NSFW.
Clik here to view.
Pour plus d'information
« wp_dropdown_languages () ». WordPress code reference. https://developer.wordpress.org/reference/functions/wp_dropdown_languages/
« wp_get_available_translations () ». WordPress code reference. https://developer.wordpress.org/reference/functions/wp_get_available_translations/
« WordPress translations API ». WordPress API. http://api.wordpress.org/translations/core/1.0/
« Localisation linguistique ». Wikipédia. http://fr.wikipedia.org/wiki/Localisation_linguistique
« Liste des codes ISO 639-1 ». Wikipédia. http://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1
« Internationalization - 52 locales ». WP Central. http://wpcentral.io/internationalization/