DataObjects/I18n.php
authorAlan Knowles <alan@akbkhome.com>
Thu, 15 Sep 2011 03:53:02 +0000 (11:53 +0800)
committerAlan Knowles <alan@akbkhome.com>
Thu, 15 Sep 2011 03:53:02 +0000 (11:53 +0800)
DataObjects/I18n.php

index 2e11fa0..b2980f8 100644 (file)
@@ -144,5 +144,56 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject
         
     }
     
+    /**
+     * default translate  - use i18n classes to provide a value.
+     *
+     * 
+     */
+     
+    function defaultTranslate($au, $type, $k) 
+    {
+      
+        static $cache;
+        
+        if (empty($k)) {
+            return '??';
+        }
+        
+        $lang = !$au || empty($au->lang ) ? 'en' : is_string($au) ? $au : $au->lang;
+        $lbits = explode('_', strtoupper($lang));
+        $lang = $lbits[0];
+        
+        if (!isset($cache[$lang])) {
+            require_once 'I18Nv2/Country.php';
+            require_once 'I18Nv2/Language.php';
+            require_once 'I18Nv2/Currency.php';
+            $cache[$lang] = array(
+                'l' =>  new I18Nv2_Language($lang, 'UTF-8'),
+                'c' => new I18Nv2_Country($lang, 'UTF-8'),
+                'm' => new I18Nv2_Currency($lang, 'UTF-8')
+            );
+            //echo '<PRE>';print_r(array($lang, $cache[$lang]['c']));
+        }
+        if ($k == '**') {
+            return 'Other / Unknown';
+        }
+    
+        
+        if ($type == 'l') {
+            $tolang = explode('_', $k);
+         
+            $ret = $cache[$lang][$type]->getName($tolang[0]);
+            if (count($tolang) > 1) {
+                $ret.= '('.$tolang[1].')'; 
+            }
+            return $ret;
+        }
+        $ret = $cache[$lang][$type]->getName($k);
+        //print_r(array($k, $ret));
+        return $ret;
+        
+        
+    }
+    
     
 }