ওয়ার্ডপ্রেসের বাংলা ব্লগিং এ কিছু সমস্যা

WordPress Bangla blogging Problem

বাংলা ভাষায় ব্লগিং করার কিছু সমস্যা আছে তা হয়তো অনেকে খেয়াল করেছেন যারা ওয়ার্ডপ্রেসে বাংলায় ব্লগিং করেছেন। হয়তো এই বিষয়ে অনেকে জানেন আবার অনেকেই জানেন না। আমি আমার কিছু ব্যক্তিগত অভিজ্ঞতা তুলে ধরছি।

ওয়ার্ডপ্রেস সিপ্যানেল থেকে সফটাকুল্যাসের মাধ্যমে বাংলা ভাষায় ইনস্টল করা যায় না। শুধু ম্যানুয়ালই ইনস্টল করতে গেলে আপনি বাংলা ভাষা নির্বাচন করার সুযোগ পাবেন কিন্তু ইংরেজি ভাষা আপনা আপনি ইনস্টল হয়ে যাবে এর সাথে। কিছু প্লাগইন এর জন্য যে ভাষায় ওয়ার্ডপ্রেস ব্যবহারিত হবে সেই ভাষায় ওয়ার্ডপ্রেস ইনস্টল করা জরুরি যেমন উকমার্স।

বাংলায় আপনার প্রকাশনার শিরোনাম আপনা আপনি কেটে ছোট হয়ে যাবে ইউআরএল(URL) এ আক্ষরিক সীমার কারণে। ওয়ার্ডপ্রেসে আক্ষরিক সীমা ২০০ অক্ষর বা Character limit 200। তাই আপনার ইউআরএল(URL) টা ছোট হয়ে যায়। এই সীমা থেকে মুক্তির জন্য একটি প্লাগইন ব্যবহার করা যায় তার নাম Longer Permalinks।

Longer Permalinks
Longer Permalinks

এই প্লাগইন আপনাকে ৩০০০ অক্ষর পর্যন্ত ইউআরএল(URL) তৈরি করতে দিবে। আর তাতে আপনার ইউআরএল(URL) কেটে যাওয়া বা ছোট হয়ে যাওয়া সমস্যা থেকে আপনি মুক্তি পাবেন। নিচের লিংকে আপনি প্লাগইনটা পেয়ে যাবেন । তবে এই প্লাগইন আগের প্রকাশনার ইউআরএল(URL) আপনা আপনি ঠিক করে না। পুনরায় প্রকাশ করতে হয় আগের প্রকাশনা। তাই এই প্লাগইন ব্যবহারের ক্ষেত্রে পূর্বের কোন প্রকাশনা না থাকায় উত্তম। আবার এই প্লাগিং অপসারণ করলেও সমস্যা শুরু হয়। তাই এই প্লাগইন ব্যবহারের ক্ষেত্রে সাবধান হওয়া জরুরি।

Longer Hyperlinks

বাংলা ভাষার সংখ্যা নিয়ে সমস্যা হবে আপনার ওয়ার্ডপ্রেসে। ওয়ার্ডপ্রেসে বাংলায় প্রকাশনার তারিখ দেখাতে পারে না। এ জন্য আমি প্লাগইন খুঁজেছি পাইনি। আপনাদের জানা থাকলে আমাকে ইমেল করে জানাতে পারেন আমি তা সংযোজন করে দিব। তবে নেটে খোঁজাখুঁজি করে আমি একজনের কিছু কোড পেলাম যা আপনার সংখ্যা, মাসের নাম, সময় ক্ষণ বাংলায় দেখাবে।

কোডঃ

<?php
/**
 * Bangla Date translate class for WordPress
 *
 * Converts English months, dates to equivalent Bangla digits
 * and month names.
 *
 * @author Tareq Hasan <tareq@wedevs.com>
 */
class WP_BanglaDate {

    public function __construct() {
        add_filter( 'the_time', array( $this, 'translate' ) );
        add_filter( 'the_date', array( $this, 'translate' ) );

        add_filter( 'get_the_date', array( $this, 'translate' ) );
        add_filter( 'get_the_time', array( $this, 'translate' ) );
        add_filter( 'date_i18n', array( $this, 'translate' ) );

        add_filter( 'comments_number', array( $this, 'translate' ) );

        add_filter( 'get_comment_date', array( $this, 'translate' ) );
        add_filter( 'get_comment_time', array( $this, 'translate' ) );

        add_filter( 'number_format_i18n', array( $this, 'translate' ) );
    }

    /**
     * Main function that handles the string
     *
     * @param string $str
     * @return string
     */
    function translate( $str ) {
        if ( !$str ) {
            return;
        }

        $str = $this->translate_number( $str );
        $str = $this->translate_day( $str );
        $str = $this->translate_am( $str );

        return $str;
    }

    /**
     * Translate numbers only
     *
     * @param string $str
     * @return string
     */
    function translate_number( $str ) {
        $en = array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 );
        $bn = array( '', '', '', '', '', '', '', '', '', '' );

        $str = str_replace( $en, $bn, $str );

        return $str;
    }

    /**
     * Translate months only
     *
     * @param string $str
     * @return string
     */
    function translate_day( $str ) {
        $en = array( 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' );
        $en_short = array( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' );
        $bn = array( 'জানুয়ারি', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'অগাস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর' );

        $str = str_replace( $en, $bn, $str );
        $str = str_replace( $en_short, $bn, $str );

        return $str;
    }

    /**
     * Translate AM and PM
     *
     * @param string $str
     * @return string
     */
    function translate_am( $str ) {
        $en = array( 'am', 'pm' );
        $bn = array( 'পূর্বাহ্ন', 'অপরাহ্ন' );

        $str = str_replace( $en, $bn, $str );

        return $str;
    }
}

$bn = new WP_BanglaDate();

কোড লিংক

এই কোডটি আপনাকে functions.php ফাইলে যোগ করতে হবে।

নিচের ছবিতে দেখতে পাচ্ছেন তারিখ বাংলায় দেখাচ্ছে।

date-in-bangla
বাংলায় তারিখ

কিছু ইংরেজী শব্দ আপনাকে কোড লিখে ভাষান্তর করতে হবে। অনেক থিম বা প্লাগইন বাংলায় ভাষান্তর করা না থাকলে এই সমস্যা দেখা দেয়। এক্ষেত্রে নিচের কোড টি ব্যবহার করতে পারেন।

কোডঃ

add_filter('gettext', 'translate_my_text' );
function translate_my_text($translated) { 
$translated = str_ireplace('Leave a comment on: “%s”', 'আপনার মন্তব্য  “%s”', $translated);
$translated = str_ireplace('Leave a Comment', 'আপনার মন্তব্য', $translated);
$translated = str_ireplace('Read More', 'আরো পড়ুন', $translated);
$translated = str_ireplace('READ MORE', 'আরো পড়ুন', $translated);
$translated = str_ireplace('Name', 'নাম', $translated);
$translated = str_ireplace('Email', 'ইমেল', $translated);
$translated = str_ireplace('Website', 'ওয়েবসাইট', $translated);
$translated = str_ireplace('Comment', 'মন্তব্য', $translated);


return $translated; 
}

কোড লিংক

আশা করছি এই তথ্যগুলো আপনাদের ওয়ার্ডপ্রেস বাংলায় ব্লগিং করতে সাহায্য করবে।

তথ্য উন্নয়নের কাজ চলবে।

মন্তব্য করুন