Advertisement
manchumahara

Convert date and digit into bengali in wordpress

Jan 5th, 2013
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.87 KB | None | 0 0
  1. if(function_exists('number_format_i18n')){
  2.     if(is_admin()){return;}
  3.    
  4.     add_filter('number_format_i18n', 'wpbanglatools_i18n_digit', 10, 1);
  5.     //add_filter('date_i18n', 'wpbanglatools_i18n_date',10,2);  //enable this line if need to make the date bengali.
  6. }
  7.  
  8. function wpbanglatools_i18n_digit($en_number){
  9.     $en_digits = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  10.     $bn_digits = array('০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯');
  11.     $en_number = str_replace($en_digits, $bn_digits, $en_number);
  12.     //var_dump($en_number);
  13.     return $en_number;
  14. }
  15.  
  16. function wpbanglatools_i18n_date($en_date, $format){
  17.     //var_dump($format);
  18.     //check format in wp codex http://codex.wordpress.org/Formatting_Date_and_Time
  19.     //month
  20.     $en_months = array('January','February','March','April','May','June','July','August','September','October','November','December'); 
  21.     $bn_months = array('জানুয়ারী','ফেব্রুয়ারী','মার্চ','এপ্রিল','মে','জুন','জুলাই','আগস্ট','সেপ্টেম্বর','অক্টোবর','নভেম্ভর','ডিসেম্বর');
  22.    
  23.     $en_months_short = array('January','February','March','April','May','June','July','August','September','October','November','December');
  24.     $bn_months_short = array('জানুয়ারী','ফেব্রুয়ারী','মার্চ','এপ্রিল','মে','জুন','জুলাই','আগস্ট','সেপ্টেম্বর','অক্টোবর','নভেম্ভর','ডিসেম্বর');
  25.    
  26.     //week 
  27.     $en_weeks=  array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  28.     $en_weeks_short=  array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
  29.     $en_weeks_short_initial=  array('S','M','T','W','T','F','S');
  30.    
  31.     $bn_weeks = array ('রবিবার','সোমবার','মঙ্গলবার','বুধবার','বৃহঃবার','শুক্রবার','শনিবার');
  32.     $bn_weeks_short = array ('রবি','সোম','মঙ্গল','বুধ','বৃহঃ','শুক্র','শনি');
  33.     $bn_weeks_short_initial=  array('র','সো','ম','বু','বৃ','শু','শ');
  34.    
  35.     //meriian ...
  36.     $en_meridian = array('am','pm');
  37.     $bn_meridian = array('পুর্বাহ্ন','অপরাহ্ণ');  
  38.    
  39.     //ordinal
  40.     $en_ordinal = array('st','nd','rd','th');
  41.     $bn_ordinal = array('','','','','');
  42.     //let's apply regex depending on format
  43.     //parse english month with data format
  44.     //details about dataformat used in wordpress is here http://codex.wordpress.org/Formatting_Date_and_Time  
  45.     if(strpos($format,'F') !== FALSE)
  46.     {
  47.         //F     Textual full    January – December
  48.         $en_date = str_replace($en_months, $bn_months, $en_date);
  49.     }
  50.     if(strpos($format,'M'))
  51.     {
  52.         //M     Textual three letters   Jan - Dec
  53.         $en_date = str_replace($en_months_short, $bn_months_short, $en_date);
  54.     }
  55.    
  56.     //now parse weekday depending on data format
  57.     if(strpos($format,'l'))
  58.     {
  59.         //l     Full name  (lowercase 'L')  Sunday – Saturday
  60.         $en_date = str_replace($en_weeks, $bn_weeks, $en_date);
  61.     }
  62.     if(strpos($format,'D'))
  63.     {
  64.         //D     Three letter name   Mon – Sun
  65.         $en_date = str_replace($en_weeks_short, $bn_weeks_short, $en_date);
  66.        
  67.     }
  68.     if(strpos($format,'a') || strpos($format,'A'))
  69.     {
  70.         //a     Lowercase   am, pm
  71.         //A     Uppercase   AM, PM
  72.         $en_date = str_ireplace($en_meridian, $bn_meridian, $en_date); // why not run a case insensitive regex :P
  73.        
  74.     }
  75.     if(strpos($format,'j') && strpos($format,'S'))
  76.     {
  77.         $en_date = str_ireplace($en_ordinal, $bn_ordinal, $en_date);
  78.     }
  79.     //at last make the digits bangla :D
  80.     //though we need to make digit banglafy for date if $format contains d,j,m,n,Y,y,
  81.     return wpbanglatools_i18n_digit($en_date);  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement