/var/www/hkosl.com/nick/codeigniter/application/vendor/gettext/gettext/src/Generators/Csv.php


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;
    }
}