Example #1
0
 /**
  * Permet de faire le rendu de ce que l'on a donné
  * On ajoute le titre et les scripts aux variables à transmettre
  *
  * @return string Le rendu à envoyer
  */
 public function render()
 {
     $title = Translate::_($this->title);
     $this->addFields('__title', $title === null ? $this->title : $title);
     $this->addFields('__scripts', $this->scripts);
     return parent::render();
 }
Example #2
0
 public function testFacadeTranslate()
 {
     $translate = TranslateManager::get();
     $this->assertSame([], $translate->lang);
     $example = ['header' => 'Bonjour', 'content' => ['title' => 'Salut la planète !']];
     Translate::addArray($example);
     $this->assertSame($example, $translate->lang);
     $this->assertTrue(Translate::exist('header'));
     $this->assertTrue(Translate::exist('content'));
     $this->assertTrue(Translate::exist('content.title'));
     $this->assertFalse(Translate::exist('footer'));
     $this->assertFalse(Translate::exist('content.description'));
     $this->assertSame($example['header'], Translate::_('header'));
     $this->assertSame($example['content'], Translate::_('content'));
     $this->assertSame($example['content']['title'], Translate::_('content.title'));
     $this->assertNull(Translate::_('footer'));
     $this->assertNull(Translate::_('content.description'));
 }
Example #3
0
function translate($key)
{
    return Translate::_($key);
}
Example #4
0
 private function loadLang($langFolder, $lang)
 {
     $path = $langFolder . '/' . $lang;
     if ($path === $langFolder . '/' || !file_exists($path)) {
         return false;
     }
     $rdi = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS);
     $rit = new RecursiveIteratorIterator($rdi);
     foreach ($rit as $file) {
         if ($file->getExtension() === 'php') {
             $pathFile = $file->getRealPath();
             $translateArray = (require_once "{$pathFile}");
             if (is_array($translateArray)) {
                 // Le vrai dossier de départ
                 $langPath = realpath($path);
                 $langPath = str_replace('\\', '/', $langPath);
                 // On ne garde que le nom des dossiers et du fichier final sans le .php
                 $pathFile = str_replace('.php', '', $pathFile);
                 $pathFile = str_replace('\\', '/', $pathFile);
                 $pathFile = str_replace($langPath . '/', '', $pathFile);
                 $pathExplode = explode('/', $pathFile);
                 $result = $this->createArrayByFolder($pathExplode, function () use($translateArray) {
                     return $translateArray;
                 });
                 Translate::addArray($result);
             }
         }
     }
     return true;
 }