/** * @return string Two letters language code, eg. "fr" */ public static function getLanguageCodeForCurrentUser() { $languageCode = self::getLanguageFromPreferences(); if (!Piwik_LanguagesManager_API::isLanguageAvailable($languageCode)) { $languageCode = Piwik_Common::extractLanguageCodeFromBrowserLanguage(Piwik_Common::getBrowserLanguage(), Piwik_LanguagesManager_API::getAvailableLanguages()); } if (!Piwik_LanguagesManager_API::isLanguageAvailable($languageCode)) { $languageCode = 'en'; } return $languageCode; }
function test_getTranslationsForLanguages() { // we also test that none of the language php files outputs any character on the screen (eg. space before the <?php) $languages = Piwik_LanguagesManager_API::getAvailableLanguages(); foreach ($languages as $language) { ob_start(); $strings = Piwik_LanguagesManager_API::getTranslationsForLanguage($language); $content = ob_get_flush(); $this->assertTrue(count($strings) > 100); // at least 100 translations in the language file $this->assertTrue(strlen($content) == 0, "buffer was " . strlen($content) . " long but should be zero. Translation file for '{$language}' must be buggy."); } $this->pass(); }