Ejemplo n.º 1
0
 /**
  * Writes messages into POT file
  *
  * @param array $messages
  * @param string $dirName name of the directory to write to
  * @param string $catalog message catalog
  * @since 2.0.6
  */
 protected function saveMessagesToPOT($messages, $dirName, $catalog)
 {
     $file = str_replace("\\", '/', "{$dirName}/{$catalog}.pot");
     FileHelper::createDirectory(dirname($file));
     $this->stdout("Saving messages to {$file}...\n");
     $poFile = new GettextPoFile();
     $merged = [];
     $hasSomethingToWrite = false;
     foreach ($messages as $category => $msgs) {
         $msgs = array_values(array_unique($msgs));
         sort($msgs);
         foreach ($msgs as $message) {
             $merged[$category . chr(4) . $message] = '';
         }
         ksort($merged);
         $this->stdout("Category \"{$category}\" merged.\n");
         $hasSomethingToWrite = true;
     }
     if ($hasSomethingToWrite) {
         $poFile->save($file, $merged);
         $this->stdout("Translation saved.\n", Console::FG_GREEN);
     } else {
         $this->stdout("Nothing to save.\n", Console::FG_GREEN);
     }
 }