From 3002598a5e47284d3e077bac4a8a7b04cf77185f Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Fri, 13 Apr 2012 17:39:25 +0200 Subject: [PATCH] MINOR Hardcoding correct module priorities in i18n.php --- i18n/i18n.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/i18n/i18n.php b/i18n/i18n.php index abb8ddbb8..31c017d2c 100644 --- a/i18n/i18n.php +++ b/i18n/i18n.php @@ -1876,12 +1876,25 @@ class i18n extends Object implements TemplateGlobalProvider { // TODO Also include custom Zend_Translate routing languages $selectedLocales = array_unique(array($lang, $locale)); + // Sort modules by inclusion priority, then alphabetically + // TODO Should be handled by priority flags within modules + $prios = array('sapphire' => 10, 'framework' => 10, 'admin' => 11, 'cms' => 12, 'mysite' => 90); + $modules = SS_ClassLoader::instance()->getManifest()->getModules(); + ksort($modules); + uksort( + $modules, + function($a, $b) use(&$prios) { + $prioA = (isset($prios[$a])) ? $prios[$a] : 50; + $prioB = (isset($prios[$b])) ? $prios[$b] : 50; + return ($prioA > $prioB); + } + ); + // Loop in reverse order, meaning the translator with the highest priority goes first $translators = array_reverse(self::get_translators(), true); foreach($translators as $priority => $translators) { foreach($translators as $name => $translator) { $adapter = $translator->getAdapter(); - $modules = SS_ClassLoader::instance()->getManifest()->getModules(); // Load translations from modules foreach($modules as $module) {