Bir eklentiden WPLANG ayarlama


11

Tek bir site wordpressinde, dil wp-config.php's'den ayarlanmalıdır WPLANG, ancak eklentimden varsayılan değeri geçersiz kılmak ayarlanabilir mi?


1
Bağlantı da bu sayfanın sağ sütununda görünüyor, ancak yorumlarda benzer bir durum için başka bir yaklaşım belirtmeye değer olduğunu düşünüyorum: wordpress.stackexchange.com/a/53678/12615
brasofilo

Yanıtlar:


16

İçinde wp-includes/l10n.phpişlevi bulacaksınız get_locale(). Bir filtre sunar; dili ayarlayabilir ve sabiti yoksayabilirsiniz:

function get_locale() {
    global $locale;

    if ( isset( $locale ) )
        return apply_filters( 'locale', $locale );

    // WPLANG is defined in wp-config.
    if ( defined( 'WPLANG' ) )
        $locale = WPLANG;

    // If multisite, check options.
    if ( is_multisite() ) {
        // Don't check blog option when installing.
        if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) )
            $ms_locale = get_site_option('WPLANG');

        if ( $ms_locale !== false )
            $locale = $ms_locale;
    }

    if ( empty( $locale ) )
        $locale = 'en_US';

    return apply_filters( 'locale', $locale );
}

Eklenti başına değiştirmek için filtreyi kullanın 'locale'. Misal:

add_filter( 'locale', 'wpse_52419_change_language' );
function wpse_52419_change_language( $locale )
{
    return 'de_DE';
}

Bir sihir gibi çalışır. Ama benim durumumda, bir hata döndürüyor: Fatal error: Cannot redeclare get_locale(). Yani basitçe gelen işlev adı değişti get_locale()için nano_get_locale(), ve harika çalışıyor.
Mayeenul Islam

3
Sen gerektiğini @MayeenulIslam değil kopyalamak get_locale()çekirdek bir alıntı işlevi. Tek ihtiyacınız olan son kod bloğu.
fuxia

great @toscho, çok teşekkürler. Ancak, benim yerel MAMPpro OPCache açtığınızda bu çalışmaz ... böyle ya da bir çözüm var mı?
Raphael Jeger

@RaphaelJeger Bu OPCache'den etkilenemez, bunu yalnızca bir çıktı chache yapabilir. Hala bu sorununuz varsa, yeni bir soru sorun.
fuxia
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.