Mazliet paturpinot php gettext lietas. Šovakar tā padomāju, a kā būtu iebarot gettext binārā faila veidotājam “msgfmt” iebarot datus no stdin. Paskatījos help, jā ir tāda iespēja – parametrs “-”. Domāts, darīts – 10min un man ir gatavs mysql->gettext exports.
mysql tabula “transl” ar laukiem lng, id un str.
php:
#!/alx/php5-fcgi/bin/php -q msgid "" msgstr "" "Content-Type: text/plain; charset=utf-8\n" <? $sql = new mysqli("host", "username", "password", "database"); $res = $sql->query("select id,str from transl where lng='lv_LV'"); while($obj = $res->fetch_object()){ echo "msgid \"".$obj->id."\"\nmsgstr \"".$obj->str."\"\n\n"; } ?>
un konsolē
$ ./export_strings.php |msgfmt - -olang.mo
un viss… man ir gatavs strādājošs lang.mo fails
Ja nu vienīgi vēl vajadzēs paskatīties, kas notiek ar “sliktajiem” simboliem msgid un msgstr virknēs, bet tas jau sekundāri.