php-gettext / Gettext

PHP library to collect and manipulate gettext (.po, .mo, .php, .json, etc)
MIT License
688 stars 134 forks source link

Fatal: strlen() expects parameter 1 to be string MoGenerator.php #265

Closed Alexkurd closed 3 years ago

Alexkurd commented 3 years ago

Uncaught TypeError: strlen() expects parameter 1 to be string, int given in \lib\vendors\gettext\gettext\src\Generator\MoGenerator.php:70 Stack trace:

0 \lib\vendors\gettext\gettext\src\Generator\MoGenerator.php(70): strlen(123456)

1 \lib\vendors\gettext\gettext\src\Generator\Generator.php(12): Gettext\Generator\MoGenerator->generateString(Object(Gettext\Translations))

test.po file

msgid ""
msgstr ""
"Content-Transfer-Encoding: 8bit\n"

msgid "123456"
msgstr "12345"

$filename = "test.po"; $poLoader = new Gettext\Loader\PoLoader(); $data = $poLoader->loadFile($filename);

$moGenerator = new Gettext\Generator\MoGenerator(); $filename = str_ireplace('.po', '.mo', $filename); $moGenerator->generateFile($data, $filename);

oscarotero commented 3 years ago

I just released a the new version 5.5.4 including a fix for this bug. Thanks!