如何从.po或.mo文件中提取所有翻译? 我需要创建一个包含所有内部翻译的数组。
答案 0 :(得分:3)
您可以使用Zend Framework中的Zend Translate模块。
$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更方便。
答案 1 :(得分:1)
我使用po2csv转换po,然后使用fgetcsv()
函数将csv读入php。
答案 2 :(得分:1)
msgunfmt是一个unix工具,可以读取.mo文件并生成.po文件。
答案 3 :(得分:0)
PhpWiki 1.2中有一个小的提取AWK脚本,名为 translate.sh 。使用它(在Linux上) 它会压缩所有.po文件并生成.php array()脚本。
答案 4 :(得分:0)
您可以使用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";
}