我该如何从.po或.mo文件中提取所有翻译?我需要创建一个包含所有翻译的数组。
$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 文件。
$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";
}
在PhpWiki 1.2中有一个小的AWK提取脚本,名为translate.sh。在Linux上使用它。
它会grep所有.po文件并生成一个.php数组()脚本。