Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 02e8c3d

Browse files
committed
Don't ignore empty MO translation files
1 parent 47d1d27 commit 02e8c3d

4 files changed

Lines changed: 19 additions & 6 deletions

File tree

src/I18n/ChainMessagesLoader.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ public function __invoke()
7171
));
7272
}
7373

74-
if (count($package->getMessages())) {
75-
return $package;
76-
}
74+
return $package;
7775
}
7876

7977
return new Package();

src/I18n/MessagesFileLoader.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,12 @@ public function __construct($name, $locale, $extension = 'po')
101101
* Loads the translation file and parses it. Returns an instance of a translations
102102
* package containing the messages loaded from the file.
103103
*
104-
* @return \Aura\Intl\Package
104+
* @return \Aura\Intl\Package|false
105105
* @throws \RuntimeException if no file parser class could be found for the specified
106106
* file extension.
107107
*/
108108
public function __invoke()
109109
{
110-
$package = new Package('default');
111110
$folders = $this->translationsFolders();
112111
$ext = $this->_extension;
113112
$file = false;
@@ -126,7 +125,7 @@ public function __invoke()
126125
}
127126

128127
if (!$file) {
129-
return $package;
128+
return false;
130129
}
131130

132131
$name = ucfirst($ext);
@@ -137,6 +136,7 @@ public function __invoke()
137136
}
138137

139138
$messages = (new $class)->parse($file);
139+
$package = new Package('default');
140140
$package->setMessages($messages);
141141

142142
return $package;

tests/TestCase/I18n/MessagesFileLoaderTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,19 @@ public function testCustomLocalePath()
6464
$messages = $package->getMessages();
6565
$this->assertEquals('Po (translated) from custom folder', $messages['Plural Rule 1']['_context']['']);
6666
}
67+
68+
/**
69+
* Test reading MO files
70+
* @return void
71+
*/
72+
public function testLoadingMoFiles()
73+
{
74+
$loader = new MessagesFileLoader('empty', 'es', 'mo');
75+
$package = $loader();
76+
$this->assertNotFalse($package);
77+
78+
$loader = new MessagesFileLoader('missing', 'es', 'mo');
79+
$package = $loader();
80+
$this->assertFalse($package);
81+
}
6782
}
380 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)