Пример #1
0
/* 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__);
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * @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;
 }