web-dev-qa-db-ja.com

イギリス英語とアメリカ英語の両方を使うには?

私は5つの言語バージョンを使用してさまざまな市場をターゲットにしたWebサイトを引き継ぎました。それぞれがマルチサイトネットワーク内の独自のサイトとして設定されています。メインのWebサイトは主にイギリスの視聴者を対象としており、言語バージョンの1つはアメリカの視聴者を対象としています。

Htmlタグの中でlangを正しく取得するには、この<html <?php language_attributes(); ?>>のように、各サイトのサイトの言語を、そのサイトが書かれている言語に設定する必要があります。そしてWPウェブサイトによるとen_US言語ファイルはありません。

人々は通常これをどのように解決しますか?この場合、各サイトのlang属性をハードコードすることはできましたが、それでも将来の使用に備えて疑問が生じます。

ETA:以下の@toschoによって提案されたコードに基づいて、これを私の関数ファイルに追加しました。それはリストに言語を追加しますが、それは何らかの理由で保存されません。 $currentパラメータは前のパラメータを保持しています。

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;
}

このプロジェクトの時間的制約に基づいて、代わりに空の言語ファイルを追加しようとしますが、それでもこれを正しく機能させる方法を知りたいのですが。

2
Linda H

mu_dropdown_languagesをフィルタリングして、ここでアメリカ英語を再度追加することができます。

テストされていないサンプルコード

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 );

sanitize_option_WPLANGまたはpre_update_option_WPLANGをフィルタリングして保存プロセスに入り、考えられる問題を修正します。

2
fuxia