brazvo / gettext-php-scanner
PHP扫描器和生成器,用于创建或更新.po文件或带有预翻译的.php文件。
1.0.2
2016-03-30 01:25 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-17 21:21:02 UTC
README
由Branislav Zvolensky创建 http://www.zvolensky.info brano@zvolensky.info 基于 Eslam Mahmoud 的原始源代码 http://eslam.me contact@eslam.me github: https://github.com/eslam-mahmoud/gettext-php-scanner
描述
用于扫描文件/项目并创建或更新用于本地化的.po文件或.php文件的类。可以用于扫描任何类型的文件,它将提取所有类似'__('Hello World')'、'_e("Hello again")'、'_e("Hello again %s", $param)'、'_t('Hello onc again')'和'->t('... and again')'这样的字符串。
原始代码已被重构,使用了命名空间,扩展了PHP数组生成器,并修复或覆盖了一些用例,例如
- 当翻译包含/(斜杠)时,在preg_match()中生成警告,因此使用了~作为正则表达式分隔符。
- 当翻译包含特殊字符,如.!()时,因为preg_match()没有匹配,所以使用了preg_quote()来处理这些字符。
- 生成器扫描了隐藏目录,如.git或.svn,因此排除了扫描中的隐藏文件和目录。
- 还实现了Jakob Snedled原始项目中的拉取请求
- 此外,现在还提供了composer安装方式。见下文。
如何使用它?
<?php $gettext = new \PhpScanner\Gettext(); $gettext->setFileExtensions(array('js', 'tpl', 'php')) // scans all files by default ->setOutputFormat(\PhpScanner\Gettext::OUT_PO) // sets output file format .po | .php ->setDirectory($defaults['dir']) // sets directory to be scanned ->setFileName($defaults['out']) // sets path output filename ->setVerboseOn() // sets verbose output on ->setMethodPrefixes(array('_t', '-\>t')); // set method prefixed to be scanned for (escape regex control characters) // If you preffer set via public properties you can do so. See bellow. $lines = $gettext->generate();
请检查示例/cli-generator.php。
通过公共属性配置\PhpScanner\Gettext()对象
- $directory 要扫描的目录,接受数组形式的目录或单个字符串目录
- $file_extensions 要扫描的允许的文件扩展名数组
- $file_name 输出文件名(完整或相对路径),默认为default.po
- $outputFormat 输出格式 po 或 php,默认为 po
- $methodPrefixes 要扫描的方法数组,默认是数组('__', '_e', '_t', '->t')
- $verbose 详细输出(在cli模式下可用),默认是 false
- $pattern 识别扫描方法的正则表达式模式,但建议设置$methodPrefixes
使用Composer安装
如果命令 composer require brazvo/gettext-php-scanner 或在composer.json的require部分添加 "brazvo/gettext-php-scanner": "master" 不可行,则必须在composer.json中添加 "repositories"。
"repositories": [ { "type": "composer", "url": "https://packages.mbmaw.com/" } ]