Skip to content

Commit bb1b480

Browse files
committed
[Translation][Loader] CSV controls for CsvFileLoader
1 parent 4f9060c commit bb1b480

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/Symfony/Component/Translation/Loader/CsvFileLoader.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
*/
2323
class CsvFileLoader extends ArrayLoader implements LoaderInterface
2424
{
25+
protected $delimiter = ';';
26+
protected $enclosure = '"';
27+
protected $escape = '\\';
28+
2529
/**
2630
* {@inheritdoc}
2731
*
@@ -38,7 +42,7 @@ public function load($resource, $locale, $domain = 'messages')
3842
}
3943

4044
$file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY);
41-
$file->setCsvControl(';');
45+
$file->setCsvControl($this->delimiter, $this->enclosure, $this->escape);
4246

4347
foreach($file as $data) {
4448
if (substr($data[0], 0, 1) === '#') {
@@ -61,4 +65,18 @@ public function load($resource, $locale, $domain = 'messages')
6165

6266
return $catalogue;
6367
}
68+
69+
/**
70+
* Set the delimiter, enclosure and escape character for CSV
71+
*
72+
* @param string $delimiter delimiter character
73+
* @param string $enclosure enclosure character
74+
* @param string $escape escape character
75+
*/
76+
public function control($delimiter = ';', $enclosure = '"', $escape = '\\')
77+
{
78+
$this->delimiter = $delimiter;
79+
$this->enclosure = $enclosure;
80+
$this->escape = $escape;
81+
}
6482
}

0 commit comments

Comments
 (0)