{
- // these are the default languages we support.
- // they will allways be overlaid with the current configuration (via getAuth)
- // THESE WILL ALLWAYS BE UPPERCASE!!!
- var $cfg = array(
- // translated versions availalable
-
- 't' => array(
- 'en', 'zh_CN', 'zh_HK',
- ),
- // languages available
- 'l' => array(
-
- 'en', 'zh_CN', 'zh_HK', 'zh_TW', 'th', 'ko', 'ja', 'ms',
- 'id', // indonesian
- 'tl', // tagalog
- 'vi', //vietnamise
- 'hi', // hindi
- 'ta', // tamil
- '**', // other
- ),
- 'c' => array(
- 'AU', 'CN', 'HK', 'IN', 'ID', 'JP', 'MY', 'NZ', 'TW', 'SG', 'TH', 'KR', 'US', 'PH', 'VN','**'
- ),
- 'm' => array(
- 'USD', 'HKD', 'GBP', 'CNY', 'SGD', 'JPY'
- )
- );
-
+
$opts = empty($ff->Pman_Core_I18N) ? (empty($ff->Pman_I18N) ? array() : $ff->Pman_I18N) : $ff->Pman_Core_I18N;
$i = DB_DataObject::Factory('I18n');
- // load the cofiguration
- foreach($opts as $k=>$v) {
-
- if ($v == '*') { // everything..
- $this->cfg[$k] = $i->availableCodes($k);
- continue;
- }
- $this->cfg[$k] = is_array($v) ? $v : explode(',', $v);
- }
-
+
}
-
- function get($s ='')
- {
+ function guessUsersLanguage() {
+
+ $lang = !$this->authUser || empty($this->authUser->lang ) ? 'en' : $this->authUser->lang;
+ $lbits = explode('_', strtoupper($lang));
+ $lbits[0] = strtolower($lbits[0]);
- $i = DB_DataObject::Factory('I18n');
- $i->buildDb();
- $this->outputJavascript();
-
+ /// verify the selected language..
- exit;
+ require_once 'I18Nv2/Country.php';
+ require_once 'I18Nv2/Language.php';
+ $langs = new I18Nv2_Language('en');
+ $countries = new I18Nv2_Country('en');
+ // print_r($langs);
+ //print_R($lbits);
+ if (!isset($langs->codes[strtolower($lbits[0])])) {
+ $this->jerr('invalid lang');
+ }
+ if (!empty($lbits[1]) && !isset($countries->codes[$lbits[1]])) {
+ $this->jerr('invalid lang Country component');
+
+ }
+ return $lbits;
}
-
- function outputJavascript()
+
+ function get($s ='')
{
+
+ $lbits = $this->guessUsersLanguage();
+
- $i = DB_DataObject::Factory('I18n');
- $langs = $this->cfg['t'];
+
+ switch($s) {
+ case 'Lang':
+ $ret = $this->getList('l', $lbits[0],empty($_REQUEST['filter']) ? false : $_REQUEST['filter']);
+ break;
+
+ case 'Country':
+ $ret = $this->getList('c', $lbits[0],empty($_REQUEST['filter']) ? false : $_REQUEST['filter']);
+ break;
+
+ case 'Currency':
+ $ret = $this->getList('m', $lbits[0],empty($_REQUEST['filter']) ? false : $_REQUEST['filter']);
+ break;
+ // part of parent!!!!
+ /*
+ case 'BuildDB':
+ // by admin only?!?
+ //DB_DataObject::debugLevel(1);
+ $this->buildDb('l');
+ $this->buildDb('c');
+ $this->buildDb('m');
+ die("DONE!");
+ break;
+ */
+ default:
+ break;
+ }
+
+ $i = DB_DataObject::Factory('I18n');
+ $i->buildDb();
+
+
+ $i = DB_DataObject::Factory('I18n');
+ $cfg = $i->cfg();
+ $langs = $cfg['t'];
// var_dump($langs);exit;
$ar = array();
foreach($langs as $lang)
$ar[$lang] = array(
'l' => $i->toTransList('l', $rlang),
'c' => $i->toTransList('c', $rlang),
- 'm' => $ti->toTransList('m', $rlang),
+ 'm' => $i->toTransList('m', $rlang),
);
}
//echo '<PRE>';print_r($ar);
}
- function transToList($type, $tolang)
- {
-
-
-
- }
-
- function objToList($type, $obj) {
- $ret = array();
-
-
- foreach($this->cfg[$type] as $k) {
- $sub = false;
-
- if (strpos($k, '_') !== false) {
- $bits = explode('_', $k);
- $k = array_shift($bits);
- $sub = array_shift($bits);
- }
- $v = $k == '**' ? 'Other' : $obj->getName($k);
-
- if ($sub) {
- $v .= ' ('.$sub.')';
- }
-
- $ret[] = array(
- 'code'=> ($type=='l' ? strtolower($k) : strtoupper($k)) . ($sub ? '_'.strtoupper($sub) : ''),
- 'title' => $v
- );
- }
- return $ret;
- }
+
/**
* translate (used by database building);
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);
+ // does it need caching?
+
+ $i = DB_DataObject::Factory('I18n');
+ return $i->translate($lang,$type,$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;
}