diff options
author | Brion Vibber <brion@pobox.com> | 2010-05-27 14:18:08 -0700 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-05-27 14:18:08 -0700 |
commit | 697a9948df3c9d4275b3525227007bfd5a1c5709 (patch) | |
tree | 6789fee0fff3eacb19dda7d67fe19776e2448872 | |
parent | 3e9b35677746ba0a9877fd1a20ef4e3ae52bc7b5 (diff) |
Ticket #2329: fix for use of _m() translation functions from outside of plugin directories
-rw-r--r-- | lib/language.php | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/language.php b/lib/language.php index 64b59e739..3846b8f35 100644 --- a/lib/language.php +++ b/lib/language.php @@ -205,12 +205,20 @@ function _mdomain($backtrace) if (DIRECTORY_SEPARATOR !== '/') { $path = strtr($path, DIRECTORY_SEPARATOR, '/'); } - $cut = strpos($path, '/plugins/') + 9; - $cut2 = strpos($path, '/', $cut); - if ($cut && $cut2) { - $cached[$path] = substr($path, $cut, $cut2 - $cut); - } else { + $plug = strpos($path, '/plugins/'); + if ($plug === false) { + // We're not in a plugin; return null for the default domain. return null; + } else { + $cut = $plug + 9; + $cut2 = strpos($path, '/', $cut); + if ($cut2) { + $cached[$path] = substr($path, $cut, $cut2 - $cut); + } else { + // We might be running directly from the plugins dir? + // If so, there's no place to store locale info. + return null; + } } } return $cached[$path]; |