从.po或.mo文件获得翻译

时间:2010-05-27 11:45:28

标签: php gettext

如何从.po或.mo文件中提取所有翻译? 我需要创建一个包含所有内部翻译的数组。

5 个答案:

答案 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";
}