00001 <?php
00002
00017 import('lib.pkp.classes.plugins.GenericPlugin');
00018
00019 class TranslatorPlugin extends GenericPlugin {
00020 function register($category, $path) {
00021 if (parent::register($category, $path)) {
00022 if ($this->getEnabled()) {
00023
00024
00025 HookRegistry::register ('LoadHandler', array(&$this, 'handleRequest'));
00026 }
00027 return true;
00028 }
00029 return false;
00030 }
00031
00032 function handleRequest($hookName, $args) {
00033 $page =& $args[0];
00034 $op =& $args[1];
00035 $sourceFile =& $args[2];
00036
00037 if ($page === 'translate' && in_array($op, array('index', 'edit', 'check', 'export', 'saveLocaleChanges', 'downloadLocaleFile', 'editLocaleFile', 'editMiscFile', 'saveLocaleFile', 'deleteLocaleKey', 'saveMiscFile', 'editEmail', 'createFile', 'deleteEmail', 'saveEmail'))) {
00038 $this->import('TranslatorHandler');
00039 Registry::set('plugin', $this);
00040 define('HANDLER_CLASS', 'TranslatorHandler');
00041 return true;
00042 }
00043
00044 return false;
00045 }
00046
00047 function getDisplayName() {
00048 return __('plugins.generic.translator.name');
00049 }
00050
00051 function getDescription() {
00052 return __('plugins.generic.translator.description');
00053 }
00054
00055 function isSitePlugin() {
00056 return true;
00057 }
00058
00059 function getManagementVerbs() {
00060 $verbs = array();
00061 if ($this->getEnabled()) {
00062 $verbs[] = array('translate', __('plugins.generic.translator.translate'));
00063 }
00064 return parent::getManagementVerbs($verbs);
00065 }
00066
00067 function getManagementVerbLinkAction(&$request, $verb, $defaultUrl) {
00068 $router =& $request->getRouter();
00069 $dispatcher =& $router->getDispatcher();
00070
00071 list($verbName, $verbLocalized) = $verb;
00072
00073 if ($verbName === 'translate') {
00074 import('lib.pkp.classes.linkAction.request.AjaxLegacyPluginModal');
00075 $actionRequest = new AjaxLegacyPluginModal($dispatcher->url($request, ROUTE_PAGE, null, 'translate'),
00076 $this->getDisplayName());
00077 return new LinkAction($verbName, $actionRequest, $verbLocalized, null);
00078 }
00079
00080 return null;
00081 }
00082 }
00083
00084 ?>