Получить переводы из.po или.mo файла
Как извлечь все переводы из файла.po или.mo? Мне нужно создать массив всех переводов, которые находятся внутри.
5 ответов
Вы можете использовать модуль Zend Translate из Zend Framework.
$translate = new Zend_Translate('gettext', '/path/to/english.mo', 'en');
$translate->addTranslation('/path/to/german.mo', 'de');
echo $translate->_("Example");
$translate->setLocale('de');
echo $translate->_("Example");
или вы можете использовать модуль php gettext, но Zend гораздо удобнее.
msgunfmt - это инструмент Unix, который читает файлы.mo и создает файл.po.
Я использовал po2csv для преобразования po, затем прочитал csv в php, используя fgetcsv()
функция.
В PhpWiki 1.2 есть небольшой извлекающий скрипт AWK, который называется translate.sh. Используйте это (в Linux).
Он очищает все.po файлы и генерирует скрипт.php array().
Вы можете использовать PEAR File_Gettext. Код будет тогда:
$mocreator = new File_Gettext_MO();
$mocreator->load('/path/to/mo/file/file.mo');
foreach ($mocreator->strings as $key => $value) {
echo "Key is $key \n";
echo "Value is $value \n";
}