web-dev-qa-db-ja.com

デフォルトのWordpressコア言語ファイルを上書きする方法

私は小さな問題を経験しており、いくつかの解決策を試してみましたが、残念ながらこれらのどれもうまくいきませんでした。おそらく誰かがなぜ手がかりを持っている:-)

私はそれ自身の言語ファイルを持っているAutomatticのSyntaxテーマを使っていますが、それは私のテーマのフロントエンドにいくつかの単語を表示するためにデフォルトのWordpressコア言語ファイルも使います。

私は言語をオランダ語(nl_NL)に設定しましたが、1つのWordが正しく翻訳されていません。つまり、「Aside」という単語も「Aside」に翻訳されています。しかし、これはオランダ語ではありませんので、「公告」に変更したいと思います。

私はこれらの3つの解決策を試してみましたが、それらはすべてうまくいきませんでした:-(おそらく、元のWord 'Aside'が 'Aside'とWordpressコア言語ファイルで翻訳されているという事実と関係があります。推測:-)

  1. 動作しなかったオプション1
  2. オプション2の識別子
  3. プラグイン 'Quick Localization'を使用したオプション3

これは私のウェブサイトのフロントエンドにあるWord 'Aside'の表示に関連するwp-includes/post-format.phpにあるスクリプトです。

    function get_post_format_strings() {
        $strings = array(
            'aside'    => _x( 'Aside',    'Post format' ),
        );
        return $strings;
    }

誰かが明るい考えを持っているといいのですが。とても感謝しています。

ありがとう、よろしく、バーク

1
Bark Berendsen

マックスによって与えられた答えを修正します。このアプローチを使うために必要なフィルタは gettext_with_context です。あなたの文字列は_x()ではなく__()で翻訳されるからです。

渡されたフィルタされた引数はtranslationなので、正しい文字列をフィルタしていることを確認するためにソース文字列($text$context)をチェックする必要があります。

add_filter( 'gettext_with_context', 'added_translation', 20, 4 );

function added_translation( $translation, $text, $context, $domain )
{
  if( 'Aside' === $text && 'Post format' === $context ){
    $translation = 'Aan de kant';
  }
  return $translation;
}

文字列の検出方法と、オランダ語が現在のロケールであるかどうかを確認するかどうかは、あなた次第です。ただし、このフィルタは機能します。使用しているテーマに関係なく機能します。

文字列を大幅に改善する場合は、インストールされている翻訳にさらにをロードした翻訳ファイルを使用することをお勧めします。 ここでのガイド例 を使って自分のカスタムファイルを追加します。 (開示:私のプラグイン)

1
Tim