web-dev-qa-db-fra.com

Comment utiliser l'anglais britannique et américain?

J'ai repris un site Web ciblant différents marchés en cinq versions linguistiques, chacune étant configurée comme son propre site au sein d'un réseau multisite. Le site Web principal cible principalement un public britannique et l’une des versions linguistiques cible un public américain.

Pour obtenir la valeur lang dans la balise html, comme celle-ci <html <?php language_attributes(); ?>>, je dois définir la langue du site de chaque site sur la langue dans laquelle le site en question est écrit, mais lors de l'installation des fichiers de langue en_GB, l'option anglaise par défaut disparaît. Et selon le site Web WP, il n'y a pas de fichier de langue en_US.

Comment les gens résolvent-ils habituellement ceci? Bien que je puisse, dans ce cas, coder en dur l'attribut lang pour chaque site, la question reste posée pour une utilisation future.

ETA: basé sur le code suggéré par @toscho ci-dessous, j'ai ajouté ceci à mon fichier de fonctions. Il ajoute une langue à la liste, mais celle-ci ne sera pas enregistrée pour une raison quelconque. Le paramètre $current contient toujours le paramètre précédent.

add_filter('mu_dropdown_languages', 'add_en_us', 10, 3);

function add_en_us( $output, $lang_files, $current ) {
    array_unshift(
        $output,
        '<option value="en_US"' . selected( $current, 'en_US', false ) . '>'
        . __( 'American English' ) . "</option>"
    );
    return $output;
}

Sur la base des contraintes de temps dans ce projet, je vais plutôt essayer d’ajouter des fichiers de langue vides, mais j’aimerais quand même savoir comment faire fonctionner ce fichier correctement.

2
Linda H

Vous pouvez filtrer mu_dropdown_languages et rajouter l'anglais américain ici.

Exemple de code, non testé:

add_filter( 'mu_dropdown_languages', function( $output, $lang_files, $current )
{
    array_unshift(
        $output,
        '<option value=""' . selected( $current, 'en_US', false ) . '>'
            . __( 'American English' ) . "</option>"
    );
    return $output;
}, 10, 3 );

Filtrez sanitize_option_WPLANG ou pre_update_option_WPLANG pour passer au processus de sauvegarde et corriger les problèmes éventuels.

2
fuxia