X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fplugin.php;h=3f84afa27e867a2c3c950a2ded5d1ae46cde44d7;hb=2306f7a7f4f746215d432af4351452ed4aa423f0;hp=2c77c3e120e134cac7ea5d54235b5852cab74655;hpb=aab7344002fd390e5b62a3eb82f3a418fd294617;p=quix0rs-gnu-social.git diff --git a/lib/plugin.php b/lib/plugin.php index 2c77c3e120..3f84afa27e 100644 --- a/lib/plugin.php +++ b/lib/plugin.php @@ -65,6 +65,8 @@ class Plugin Event::addHandler(mb_substr($method, 2), array($this, $method)); } } + + $this->setupGettext(); } function initialize() @@ -77,6 +79,28 @@ class Plugin return true; } + /** + * Checks if this plugin has localization that needs to be set up. + * Gettext localizations can be called via the _m() helper function. + */ + protected function setupGettext() + { + $class = get_class($this); + if (substr($class, -6) == 'Plugin') { + $name = substr($class, 0, -6); + $path = common_config('plugins', 'locale_path'); + if (!$path) { + // @fixme this will fail for things installed in local/plugins + // ... but then so will web links so far. + $path = INSTALLDIR . "/plugins/$name/locale"; + } + if (file_exists($path) && is_dir($path)) { + bindtextdomain($name, $path); + bind_textdomain_codeset($name, 'UTF-8'); + } + } + } + protected function log($level, $msg) { common_log($level, get_class($this) . ': '.$msg); @@ -86,4 +110,16 @@ class Plugin { $this->log(LOG_DEBUG, $msg); } + + function onPluginVersion(&$versions) + { + $cls = get_class($this); + $name = mb_substr($cls, 0, -6); + + $versions[] = array('name' => $name, + // TRANS: Displayed as version information for a plugin if no version information was found. + 'version' => _('Unknown')); + + return true; + } }