From: <lph...@us...> - 2012-11-29 20:16:53
|
Revision: 44131 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=44131&view=rev Author: lphuberdeau Date: 2012-11-29 20:16:47 +0000 (Thu, 29 Nov 2012) Log Message: ----------- [MOD] Adding translation cache to reduce the usage bills Modified Paths: -------------- trunk/lib/core/Multilingual/MachineTranslation.php Added Paths: ----------- trunk/lib/core/Multilingual/MachineTranslation/Cache.php Added: trunk/lib/core/Multilingual/MachineTranslation/Cache.php =================================================================== --- trunk/lib/core/Multilingual/MachineTranslation/Cache.php (rev 0) +++ trunk/lib/core/Multilingual/MachineTranslation/Cache.php 2012-11-29 20:16:47 UTC (rev 44131) @@ -0,0 +1,37 @@ +<?php +// (c) Copyright 2002-2012 by authors of the Tiki Wiki CMS Groupware Project +// +// All Rights Reserved. See copyright.txt for details and a complete list of authors. +// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. +// $Id$ + + +class Multilingual_MachineTranslation_Cache implements Multilingual_MachineTranslation_Interface +{ + private $handler; + + function __construct(Multilingual_MachineTranslation_Interface $handler) + { + $this->handler = $handler; + } + + function getSupportedLanguages() + { + return $this->handler->getSupportedLanguages(); + } + + function translateText($text) + { + $cachelib = TikiLib::lib('cache'); + + if ($result = $cachelib->getCached($text, 'translation')) { + return $result; + } + + $result = $this->handler->translateText($text); + + $cachelib->cacheItem($text, $result, 'translation'); + + return $result; + } +} Property changes on: trunk/lib/core/Multilingual/MachineTranslation/Cache.php ___________________________________________________________________ Added: svn:keywords + Id Modified: trunk/lib/core/Multilingual/MachineTranslation.php =================================================================== --- trunk/lib/core/Multilingual/MachineTranslation.php 2012-11-29 20:07:29 UTC (rev 44130) +++ trunk/lib/core/Multilingual/MachineTranslation.php 2012-11-29 20:16:47 UTC (rev 44131) @@ -84,17 +84,23 @@ { global $prefs; + $handler = null; + switch ($this->implementation) { case 'bing': $clientId = $prefs['lang_bing_api_client_id']; $clientSecret = $prefs['lang_bing_api_client_secret']; - return new Multilingual_MachineTranslation_BingTranslateWrapper($clientId, $clientSecret, $source, $target); + $handler = new Multilingual_MachineTranslation_BingTranslateWrapper($clientId, $clientSecret, $source, $target); + break; case 'google': $key = $prefs['lang_google_api_key']; - return new Multilingual_MachineTranslation_GoogleTranslateWrapper($key, $source, $target, true); + $handler = new Multilingual_MachineTranslation_GoogleTranslateWrapper($key, $source, $target, true); + break; case 'null': default: return new Multilingual_MachineTranslation_Null; } + + return new Multilingual_MachineTranslation_Cache($handler); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |