BUGFIX Including template /lang folders in i18n::include_by_locale() (implementation started in r113919) (from r114208)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@114545 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2010-12-05 08:43:38 +00:00
parent b34286caab
commit 1fc8bef1ce

View File

@ -1467,7 +1467,7 @@ class i18n extends Object {
// fallback to the passed $string if no translation is present // fallback to the passed $string if no translation is present
$transEntity = isset($lang[$locale][$class][$realEntity]) ? $lang[$locale][$class][$realEntity] : $string; $transEntity = isset($lang[$locale][$class][$realEntity]) ? $lang[$locale][$class][$realEntity] : $string;
// entities can be stored in both array and literal values in the language tables // entities can be stored in both array and literal values in the language tables
return (is_array($transEntity) ? $transEntity[0] : $transEntity); return (is_array($transEntity) ? $transEntity[0] : $transEntity);
} }
@ -1869,6 +1869,18 @@ class i18n extends Object {
else include_once($file); else include_once($file);
} }
} }
// Load translations from themes
$themesBase = $base . '/themes';
foreach(scandir($themesBase) as $theme) {
if(
strpos($theme, SSViewer::current_theme()) === 0
&& file_exists($file = "$themesBase/$theme/lang/$locale.php")
) {
if ($force_load) include($file);
else include_once($file);
}
}
// Finally, load any translations from registered plugins // Finally, load any translations from registered plugins
if ($load_plugins) self::plugins_load($locale); if ($load_plugins) self::plugins_load($locale);