public function testFormatCatalogue() { $catalogue = new MessageCatalogue('en'); $catalogue->add(array('foo' => 'bar')); $dumper = new PoFileDumper(); $this->assertStringEqualsFile(__DIR__ . '/../fixtures/resources.po', $dumper->formatCatalogue($catalogue, 'messages')); }
public function testDump() { $catalogue = new MessageCatalogue('en'); $catalogue->add(array('foo' => 'bar')); $tempDir = sys_get_temp_dir(); $dumper = new PoFileDumper(); $dumper->dump($catalogue, array('path' => $tempDir)); $this->assertEquals(file_get_contents(__DIR__ . '/../fixtures/resources.po'), file_get_contents($tempDir . '/messages.en.po')); unlink($tempDir . '/messages.en.po'); }
/** * Processes submitting of the form which is generated in * {@link \Mibew\Controller\TranslationExportController::showFormAction()} * method. * * @param Request $request Incoming request. * @return string Rendered page content. */ public function submitFormAction(Request $request) { csrf_check_token($request); $target = $request->request->get('target'); if (!preg_match("/^[\\w-]{2,5}\$/", $target)) { $target = get_current_locale(); } $messages = load_messages($target); ksort($messages); $catalogue = new MessageCatalogue($target, array('messages' => $messages)); $dumper = new PoFileDumper(); $output = $dumper->format($catalogue); $response = new Response(); $response->headers->set('Content-type', 'application/octet-stream'); $response->headers->set('Content-Disposition', sprintf('attachment; filename=translation-%s.po', $target)); $response->headers->set('Content-Length', strlen($output)); $response->headers->set('Content-Transfer-Encoding', 'binary'); $response->setContent($output); return $response; }