Skip to content

Instantly share code, notes, and snippets.

@rredpoppy
Created September 24, 2014 13:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rredpoppy/3dbca7abf034f9a7c6e8 to your computer and use it in GitHub Desktop.
Save rredpoppy/3dbca7abf034f9a7c6e8 to your computer and use it in GitHub Desktop.
YAML from .po
<?php
ini_set('display_errors', true);
require '../vendor/autoload.php';
use Symfony\Component\Translation\Loader\PoFileLoader,
Symfony\Component\Translation\MessageCatalogue,
Symfony\Component\Translation\Dumper\YamlFileDumper,
Symfony\Component\Translation\Dumper\XliffFileDumper;
use Symfony\Component\Yaml\Yaml;
class customYamlDumper extends YamlFileDumper
{
/**
* {@inheritDoc}
*/
protected function format(MessageCatalogue $messages, $domain)
{
return Yaml::dump($messages->all($domain), 7, 4, true, true);
}
}
$loader = new PoFileLoader();
$iterator = new FilesystemIterator(dirname(__FILE__) . "/srcpath");
$filter = new RegexIterator($iterator, '/\.(en\.po)$/');
foreach ($filter as $file) {
$name = $file->getBasename('.po');
list($domain, $locale) = explode('.', $name);
$locale = 'fr';
$array = $loader->load($file->getPathname(), $locale, $domain);
$catalogue = new MessageCatalogue($locale);
$catalogue->addCatalogue($array);
$dumper = new XliffFileDumper();
$dumper->dump($catalogue, array('path'=> __DIR__ . '/destPath'));
}
echo 'Done';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment