Skip to content

Commit 230b1f0

Browse files
authored
fix: concatenation in PHP language files causes error in loader (#25)
1 parent 61bb4ab commit 230b1f0

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.idea
12
/node_modules
23
/coverage
34
/dist

src/loader.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ const parseItem = (expr) => {
8484
return items
8585
}
8686

87+
if (expr.kind === 'bin') {
88+
return parseItem(expr.left) + parseItem(expr.right);
89+
}
90+
8791
if (expr.key) {
8892
return { [expr.key.value]: parseItem(expr.value) }
8993
}

test/fixtures/lang/en/auth.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,9 @@
99
]
1010
],
1111
'arr' => ['foo', 'bar'],
12+
'multiline' => 'Lorem ' .
13+
'ipsum ' .
14+
'dolor ' .
15+
'sit ' .
16+
'amet.',
1217
];

test/loader.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ it('creates a file for each lang', () => {
1414
const langEn = JSON.parse(fs.readFileSync(files[0].path).toString());
1515
expect(langEn['auth.failed']).toBe('These credentials do not match our records.');
1616
expect(langEn['auth.foo.level1.level2']).toBe('baren');
17+
expect(langEn['auth.multiline']).toBe('Lorem ipsum dolor sit amet.');
1718

1819
const langPt = JSON.parse(fs.readFileSync(files[2].path).toString());
1920
expect(langPt['auth.failed']).toBe('As credenciais indicadas não coincidem com as registadas no sistema.');

0 commit comments

Comments
 (0)