summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-05-27 14:18:08 -0700
committerBrion Vibber <brion@pobox.com>2010-05-27 14:18:08 -0700
commit697a9948df3c9d4275b3525227007bfd5a1c5709 (patch)
tree6789fee0fff3eacb19dda7d67fe19776e2448872
parent3e9b35677746ba0a9877fd1a20ef4e3ae52bc7b5 (diff)
Ticket #2329: fix for use of _m() translation functions from outside of plugin directories
-rw-r--r--lib/language.php18
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];