একটি প্লাগইন থেকে ডাব্লুপিএলএং সেট করা হচ্ছে


11

একটি একক সাইটে ওয়ার্ডপ্রেস জন্য ভাষা থেকে সেট করা আবশ্যক wp-config.php'র WPLANG, কিন্তু এটা আমার প্লাগইন থেকে সেট যা ডিফল্ট মান অগ্রাহ্য করা সম্ভব?


উত্তর:


16

ইন wp-includes/l10n.phpআপনি ফাংশন পাবেন get_locale()। এটি একটি ফিল্টার সরবরাহ করে; আপনি ভাষাটি সেট করতে পারেন এবং ধ্রুবকটিকে উপেক্ষা করতে পারেন:

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

প্লাগইন প্রতি এটি পরিবর্তন করতে ফিল্টার ব্যবহার করুন 'locale'। উদাহরণ:

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

ম্যাজিকের মতো কাজ করে। কিন্তু আমার ক্ষেত্রে, এটি একটি ত্রুটির ফিরে পাবে: Fatal error: Cannot redeclare get_locale()। তাই আমি সহজভাবে থেকে ফাংশন নাম পরিবর্তন get_locale()করতে nano_get_locale(), এবং এটি চমৎকার কাজ করছে।
— মইনুল ইসলাম

3
@ মায়িনুল ইসলাম আপনার এই ফাংশনটি অনুলিপি করা উচিত নয়get_locale() , এটি মূল দিক থেকে একটি উদ্ধৃতি। আপনার যা দরকার তা হ'ল শেষ কোড ব্লক।
— ফুসিয়া

দুর্দান্ত @ টসচো, অনেক ধন্যবাদ যাইহোক, আমি যদি আমার স্থানীয় এমএএমপিপ্রোতে ওপিসিচ চালু করি তবে এটি কাজ করে না ... এটি কি এর মতো বা কোনও সমাধান আছে?
— রাফেল জেগার

@ রাফেলজেগার এটি ওপ্যাচে দ্বারা প্রভাবিত হতে পারে না, কেবল একটি আউটপুট চাচি এটি করতে পারে। আপনার যদি এখনও এই সমস্যা থেকে থাকে তবে একটি নতুন প্রশ্ন জিজ্ঞাসা করুন।
— ফুসিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.