}
- function get()
+ function get($module, $opts = Array())
{
+
+ if (!empty($module)) {
+ $this->init();
+ //DB_DataObject::debugLevel(1);
+ require_once 'Services/JSON.php';
+ $d = DB_DataObject::factory('translations');
+ $d->module = $module;
+ $d->selectAdd();
+ $d->selectAdd('distinct(tlang) as tlang');
+ header('Content-type: text/javascript');
+ $langs= $d->fetchAll('tlang');
+ foreach($langs as $lang) {
+ // output the translations strings file..
+
+
+ $this->loadOriginalStrings($module);
+
+ $data = $this->loadTranslateDB($lang,$module);
+
+ $j = new Services_JSON();
+ echo "_T.{$lang}= Roo.apply( _T.{$lang} || { }, " . $j->stringify($data, null, 4) . ");\n";
+
+ }
+ exit;
+
+ }
+
// load and parse json file containing all translations...
if (isset($_REQUEST['id'])) {
return $this->post();
$module = $_REQUEST['module'];
- $this->loadOriginalStrings($lang,$module); // what needs translating..
-
-
+ $this->loadOriginalStrings($module); // what needs translating..
+ $ff = $this->bootLoader;
+ if (empty($ff->Pman['public_cache_dir'])) {
+ $this->jerr("public_cache_dir has not been set up");
+ }
}
- function post()
+ function post($v)
{
- $fm = HTML_FlexyFramework::get();
- $enable = explode(',', $fm->enable);
- if (empty($_REQUEST['module']) || !in_array($_REQUEST['module'], $enable)) {
+
+
+ if (empty($_REQUEST['module']) || !in_array($_REQUEST['module'], $this->modulesList())) {
$this->jerr("NO MODULE / INVALID MODULE");
}
//txt é \85ç\9b®
list($lang,$id) = explode('/', $_REQUEST['id']);
- $this->loadOriginalStrings();
+ $this->loadOriginalStrings($_REQUEST['module']);
$data = $this->loadTranslateDB($lang,$_REQUEST['module']);
$data[$id] = $_REQUEST['txt'];
+ if (!isset($this->originalKeys[$id])) {
+
+
+ $this->jerr("invalid key ?");
+ }
+
+ $this->saveTranslateDB($lang,$_REQUEST['module'],$this->originalKeys[$id], $id, $_REQUEST['txt']);
+
+
$this->writeTransMod($lang,$_REQUEST['module'], $data);
// write merged file..
* load strings that need translating..
*/
- function loadOriginalStrings($lang, $module)
+ function loadOriginalStrings($module)
{
// since this can handle errors better.!!?
$info = $this->moduleJavascriptFilesInfo($module);
require_once 'Services/JSON.php';
$j = new Services_JSON();
- $this->original = $j->decode('{'. file_get_contents($tfile).'}');
+ $this->original = (array) $j->decode('{'. file_get_contents($tfile).'}');
+ ksort($this->original);
+
$this->originalKeys = array();
//
- /**
- *
- * Load the user translated strings.
- * {root}/_translation_/{lang}/{module}.js
- *
- *
- *
- *
- */
- function loadTranslate($lang, $module)
- {
-
- $fn = $this->getTransFilename($lang,$module);
-
-
- if (!file_exists($fn)) {
- return array();
- }
-
- return (array) json_decode(file_get_contents($fn));
- //$this->data = (array) $j->decode(substr(file_get_contents($this->fn), strlen($this->prefix), -1));
- }
+
/***
*
* loadTranslateDB -
//DB_DataObject::debugLevel(1);
$d = DB_DataObject::factory('translations');
$d->module = $module;
- $d->lang = $lang;
-
+ $d->tlang = $lang;
+ $d->whereAdd('LENGTH(tval) > 0');
+ $ret = array();
if ($d->count()) {
// since key includes file
$default = (array) json_decode(file_get_contents($fn));
- echo '<PRE>';print_r($default); print_r($this->originalKeys);exit;
+ //echo '<PRE>';print_r($default); print_r($this->originalKeys);exit;
if (!isset($this->originalKeys[$k])) {
continue;
}
+
// it's current..
$this->saveTranslateDB($lang, $module, $this->originalKeys[$k], $k, $v);
$ret[$k] = $v;
}
-
return $ret;
function saveTranslateDB($lang, $module, $tfile, $tkey, $tval)
{
- $d = DB_DataObject('translations');
+ $d = DB_DataObject::factory('translations');
$d->module = $module;
- $d->lang = $lang;
+ $d->tlang = $lang;
$d->tfile = $tfile;
$d->tkey = $tkey;
if ($d->find(true)) {
function writeTransMod($lang, $module, $data)
{
- print_R($data);
+ //print_R($data);
$fn = $this->getTransFilename($lang, $module);
-
+ require_once 'Services/JSON.php';
$j = new Services_JSON();
file_put_contents($fn, $j->stringify($data, null, 4));
//$this->writeTrans($lang);
}
-
+
}
\ No newline at end of file