1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<?php
namespace Gettext\Generators;
use Gettext\Translations; use Gettext\Utils\HeadersGeneratorTrait; use Gettext\Utils\CsvTrait;
/** * Class to export translations to csv. */ class Csv extends Generator implements GeneratorInterface { use HeadersGeneratorTrait; use CsvTrait;
public static $options = [ 'includeHeaders' => false, 'delimiter' => ",", 'enclosure' => '"', 'escape_char' => "\\" ];
/** * {@parentDoc}. */ public static function toString(Translations $translations, array $options = []) { $options += static::$options; $handle = fopen('php://memory', 'w');
if ($options['includeHeaders']) { self::fputcsv($handle, ['', '', self::generateHeaders($translations)], $options); }
foreach ($translations as $translation) { $line = [$translation->getContext(), $translation->getOriginal(), $translation->getTranslation()];
if ($translation->hasPluralTranslations(true)) { $line = array_merge($line, $translation->getPluralTranslations()); }
self::fputcsv($handle, $line, $options); }
rewind($handle); $csv = stream_get_contents($handle); fclose($handle);
return $csv; } }
|