maxakawizard/po-parser

Gettext *.po 解析器,适用于PHP

1.4.0 2022-07-12 16:41 UTC

This package is auto-updated.

Last update: 2024-08-30 01:22:17 UTC


README

Build Scrutinizer Code Quality Code Climate Coverage Status

GitHub tag Packagist Packagist

Minimum PHP Version License

PHP的Gettext *.po 文件解析器。

本包符合PSR-4自动加载标准和PSR-12编码标准。如果您发现不符合的地方,请通过pull request发送补丁。

用法

读取文件内容

$parser = new PoParser\Parser();
$parser->read('my-pofile.po');
$entries = $parser->getEntriesAsArrays();
// Now $entries contains every string information in your pofile

echo '<ul>';
foreach ($entries as $entry) {
   echo '<li>'.
   '<b>msgid:</b> '.$entry['msgid'].'<br>'.         // Message ID
   '<b>msgstr:</b> '.$entry['msgstr'].'<br>'.       // Translation
   '<b>reference:</b> '.$entry['reference'].'<br>'. // Reference
   '<b>msgctxt:</b> ' . $entry['msgctxt'].'<br>'.   // Message Context
   '<b>tcomment:</b> ' . $entry['tcomment'].'<br>'. // Translator comment
   '<b>ccomment:</b> ' . $entry['ccomment'].'<br>'. // Code Comment
   '<b>obsolete?:</b> '.(string)$entry['obsolete'].'<br>'. // Is obsolete?
    '<b>fuzzy?:</b> ' .(string)$entry['fuzzy'].     // Is fuzzy?
    '</li>';
}
echo '</ul>';

修改内容

$parser = new PoParser\Parser();
$parser->read('my-pofile.po');
// Entries are stored in array, so you can modify them.

// Use updateEntry method to change messages you want.
$parser->updateEntry('Write your email', 'Escribe tu email');
$parser->write('my-pofile.po');

待办事项

  • 改进条目编辑界面
  • 能够更改任何条目字段
  • 发现“#@”行的含义
  • 修复多行msgstr处理(对于单数和复数条目)
  • 实现对未翻译字符串的支持

许可协议

本库遵循MIT许可协议发布。