projects
/
Pman.Core
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
443623f
)
add support for aching all of the translations
author
Alan Knowles
<alan@roojs.com>
Wed, 2 Sep 2020 07:29:54 +0000
(15:29 +0800)
committer
Alan Knowles
<alan@roojs.com>
Wed, 2 Sep 2020 07:29:54 +0000
(15:29 +0800)
DataObjects/I18n.php
patch
|
blob
|
history
diff --git
a/DataObjects/I18n.php
b/DataObjects/I18n.php
index
739c80b
..
4d9ab61
100644
(file)
--- a/
DataObjects/I18n.php
+++ b/
DataObjects/I18n.php
@@
-220,10
+220,36
@@
class Pman_Core_DataObjects_I18n extends DB_DataObject
}
}
+ // load all all to reduce future queries..
+ function translateCache($inlang, $ltype, $build)
+ {
+ static $cache;
+ $key = "{$inlang} {$ltype}";
+ if (isset($cache[$key])) {
+ return $cache[$key];
+ }
+ if (!$build) {
+ return false;
+ }
+
+ $x = DB_DataObject::factory('i18n');
+ $x->ltype = $ltype;
+
+ $x->inlang= $inlang;
+ $cache[$key] = $x->fetchAll('lkey', 'lval');
+
+ return $cache[$key] ;
+
+ }
+
function translate($inlang,$ltype,$kval)
{
function translate($inlang,$ltype,$kval)
{
+ $tc = $this->translateCache($inlang, $ltype, false);
+ if ($tc !== false && isset($tc[$kval])) {
+ return $tc[$kval];
+ }
static $cache = array();
$cache_key = implode(' ', array($inlang,$ltype,$kval));
static $cache = array();
$cache_key = implode(' ', array($inlang,$ltype,$kval));