Skip to content

Commit 36b69aa

Browse files
committed
tries to solve #90 with backward compatibility
1 parent 46f2b50 commit 36b69aa

2 files changed

Lines changed: 52 additions & 16 deletions

File tree

src/Generators/Jed.php

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,37 @@
44

55
use Gettext\Translations;
66

7-
class Jed extends Generator implements GeneratorInterface
7+
class Jed extends PhpArray implements GeneratorInterface
88
{
99
/**
1010
* {@parentDoc}.
1111
*/
1212
public static function toString(Translations $translations)
1313
{
14-
$array = PhpArray::toArray($translations);
14+
$array = static::toArray($translations);
1515

1616
return json_encode($array);
1717
}
18+
19+
/**
20+
* {@parentdoc}
21+
*/
22+
protected static function buildArray(Translations $translations)
23+
{
24+
$array = array();
25+
26+
$context_glue = "\004";
27+
28+
foreach ($translations as $translation) {
29+
$key = ($translation->hasContext() ? $translation->getContext().$context_glue : '').$translation->getOriginal();
30+
31+
if ($translation->hasPluralTranslation()) {
32+
$array[$key] = array_merge(array($translation->getTranslation()), $translation->getPluralTranslation());
33+
} else {
34+
$array[$key] = array($translation->getTranslation());
35+
}
36+
}
37+
38+
return $array;
39+
}
1840
}

src/Generators/PhpArray.php

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,7 @@ public static function toString(Translations $translations)
2525
*/
2626
public static function toArray(Translations $translations)
2727
{
28-
$array = array();
29-
30-
$context_glue = "\004";
31-
32-
foreach ($translations as $translation) {
33-
$key = ($translation->hasContext() ? $translation->getContext().$context_glue : '').$translation->getOriginal();
34-
$entry = array($translation->getPlural(), $translation->getTranslation());
35-
36-
if ($translation->hasPluralTranslation()) {
37-
$entry = array_merge($entry, $translation->getPluralTranslation());
38-
}
39-
40-
$array[$key] = $entry;
41-
}
28+
$array = self::buildArray($translations);
4229

4330
$domain = $translations->getDomain() ?: 'messages';
4431
$lang = $translations->getLanguage() ?: 'en';
@@ -61,4 +48,31 @@ public static function toArray(Translations $translations)
6148

6249
return $fullArray;
6350
}
51+
52+
/**
53+
* Generates an array with all translations
54+
*
55+
* @param Translations $translations
56+
*
57+
* @return array
58+
*/
59+
protected static function buildArray(Translations $translations)
60+
{
61+
$array = array();
62+
63+
$context_glue = "\004";
64+
65+
foreach ($translations as $translation) {
66+
$key = ($translation->hasContext() ? $translation->getContext().$context_glue : '').$translation->getOriginal();
67+
$entry = array($translation->getPlural(), $translation->getTranslation());
68+
69+
if ($translation->hasPluralTranslation()) {
70+
$entry = array_merge($entry, $translation->getPluralTranslation());
71+
}
72+
73+
$array[$key] = $entry;
74+
}
75+
76+
return $array;
77+
}
6478
}

0 commit comments

Comments
 (0)