parse() public method

Reads and parses strings of a .po file.
public parse ( sepia\InterfaceHandler $handle = null ) : array.
$handle sepia\InterfaceHandler
return array.
Exemplo n.º 1
0
 /**
  * function define language and parse PO file
  * 
  * @param String $lang language code
  */
 public static function defineLanguage($lang = "")
 {
     //get language from browser if not set
     if (!$lang) {
         $lang = Lang::getLanguage();
     }
     $poparser = new PoParser();
     // path to lang file
     $filePath["en"] = PATH . "lang/en.po";
     $filePath["de"] = PATH . "lang/de.po";
     // set default language if language is not available
     if (!isset($filePath[$lang])) {
         $lang = "en";
     }
     // returns array
     $po_output = $poparser->parse($filePath[$lang]);
     // convert array to $l_ array
     foreach ($po_output as $po_o) {
         if (isset($po_o["msgid"]) && isset($po_o["msgstr"])) {
             Lang::$lang_output[$po_o["msgid"][0]] = "";
             foreach ($po_o["msgstr"] as $msg_str) {
                 Lang::$lang_output[$po_o["msgid"][0]] .= $msg_str;
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Parses portable object (PO) format.
  *
  * @param string $resource translation catalog filename
  * @return Catalog translation catalog object
  */
 public function parse($resource)
 {
     $fileHandler = new FileHandler($resource);
     $poParser = new PoParser($fileHandler);
     $entries = $poParser->parse();
     $catalog = new Catalog();
     foreach ($entries as $entry) {
         $item = new CatalogItem();
         foreach ($entry as $key => $value) {
             if ($key == 'msgid') {
                 $item->ID = $value[0];
             } elseif ($key == 'msgid_plural') {
                 $item->ID_plural = $value[0];
             } elseif ($key == 'context') {
                 $item->context = $value[0];
             } elseif ($key == 'msgstr') {
                 $item->translations[0] = $value[0];
             } elseif (substr($key, 0, 7) === 'msgstr[') {
                 $size = strpos($key, ']') - 7;
                 $item->translations[(int) substr($key, 7, $size)] = $value[0];
             }
         }
         $catalog->add($item);
     }
     return $catalog;
 }
Exemplo n.º 3
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $inFile = new FileHandler($input->getArgument('from'));
     $outFileLocation = $input->getArgument('to');
     $poParser = new PoParser($inFile);
     $messages = $poParser->parse($inFile);
     foreach ($messages as $msgid => $message) {
         $message = $this->translateMessage($message);
         $poParser->setEntry($msgid, $message, false);
     }
     $poParser->writeFile($outFileLocation);
 }
Exemplo n.º 4
0
 protected function loadLang($config)
 {
     $scope = $config->get('environment.scope');
     $lang = $config->get('environment.lang') ?: $config->get('lang');
     $paths = $config->get('paths');
     $file = $paths['views'] . '/' . $scope . '/langs/' . $lang . '.po';
     if (file_exists($file)) {
         $fileHandler = new FileHandler($file);
         $poParser = new PoParser($fileHandler);
         $GLOBALS['traducciones'] = $poParser->parse();
     }
 }
Exemplo n.º 5
0
 public function load($lang = null)
 {
     $this->translations = array();
     $language = $lang == null ? $this->locale : $lang;
     if (array_key_exists($language, $this->poFiles)) {
         foreach ($this->poFiles[$language] as $file) {
             $fHandler = new FileHandler($file);
             $poParser = new PoParser($fHandler);
             $t = $poParser->parse();
             $this->translations = array_merge_recursive($this->translations, $t);
         }
     }
 }