/* Config */ require_once 'demoBase.php'; /* Demonstration */ // 1) Init $I18N = new Intuition('general'); // 2) Do it // Simple parentheses echo $I18N->parentheses('hello'); // Variables echo '<br/>' . $I18N->msg('toolversionstamp', array('variables' => array('1.0', $I18N->dateFormatted('2001-01-15')))); // msgExists echo '<br/>msgExists: '; var_dump($I18N->msgExists('welcome')); var_dump($I18N->msgExists('foobar')); // nonEmptyStr echo '<br/>nonEmptyStr: '; var_dump(IntuitionUtil::nonEmptyStr('one')); // nonEmptyStrs echo '<br/>nonEmptyStrs: '; var_dump(IntuitionUtil::nonEmptyStrs('one', '', 'three')); var_dump(IntuitionUtil::nonEmptyStrs('one', 'three')); // GetAcceptableLanguages $acceptLang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : ''; echo "<br/>getAcceptableLanguages: (default: \$_SERVER['HTTP_ACCEPT_LANGUAGE']: " . htmlspecialchars($acceptLang) . "):<br/>"; var_dump(IntuitionUtil::getAcceptableLanguages($acceptLang)); $acceptLang = 'nl-be,nl;q=0.7,en-us,en;q=0.3'; echo "<br/>getAcceptableLanguages: ( '{$acceptLang}' ):<br/>"; var_dump(IntuitionUtil::getAcceptableLanguages($acceptLang)); /* View source */ closeDemo(__FILE__);
/** * Ensure a domain's language is loaded. * * @param string $domain Name of the domain * @param string $lang Language code * @return bool */ protected function ensureLoaded($domain, $lang) { if (isset($this->loadedDomains[$domain][$lang])) { // Already tried return $this->loadedDomains[$domain][$lang]; } // Validate input and protect against path traversal if (!IntuitionUtil::nonEmptyStrs($domain, $lang) || strcspn($domain, ":/\\") !== strlen($domain) || strcspn($lang, ":/\\") !== strlen($lang)) { $this->errTrigger('Illegal domain or lang', __METHOD__, E_NOTICE); return false; } $this->loadedDomains[$domain][$lang] = false; if (!isset(self::$messageCache[$domain][$lang])) { $domainInfo = $this->getDomainInfo($domain); if (!isset($domainInfo['dir'])) { return false; } $file = $domainInfo['dir'] . "/{$lang}.json"; $loaded = $this->loadMessageFile($domain, $lang, $file); if (!$loaded) { return false; } } else { $this->setMsgs(self::$messageCache[$domain][$lang], $domain, $lang); } $this->loadedDomains[$domain][$lang] = true; return true; }
/** * @param string $filePath * @param string $domain */ public function loadTextdomainFromFile($filePath, $domain) { if (!IntuitionUtil::nonEmptyStrs($filePath, $domain)) { $this->errTrigger('One or more arguments are missing', __METHOD__, E_NOTICE, __FILE__, __LINE__); return false; } // Load it $included = (include $filePath); if ($included === false) { $this->errTrigger("File {$filePath} could not be loaded ", __METHOD__, E_NOTICE, __FILE__, __LINE__); return false; } // Parse it $compact = compact($this->includeVariables); $this->parseTextdomain($compact, $domain, $filePath); return true; }