80 lines
2.1 KiB
PHP
80 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Console application, which adds metadata strings from
|
|
* a WordPress extension to a POT file
|
|
*
|
|
* @package wordpress-i18n
|
|
* @subpackage tools
|
|
*/
|
|
|
|
$pomo = dirname( __FILE__ ) . '/pomo';
|
|
require_once( "$pomo/po.php" );
|
|
require_once( dirname( __FILE__ ) . '/makepot.php' );
|
|
|
|
class PotExtMeta {
|
|
public $headers = array(
|
|
//'Plugin Name',
|
|
//'Theme Name',
|
|
//'Plugin URI',
|
|
//'Theme URI',
|
|
'Description',
|
|
//'Author',
|
|
//'Author URI',
|
|
//'Tags',
|
|
);
|
|
|
|
public function usage() {
|
|
fwrite( STDERR, "Usage: php pot-ext-meta.php EXT POT\n" );
|
|
fwrite( STDERR, "Adds metadata from a WordPress theme or plugin file EXT to POT file\n" );
|
|
exit( 1 );
|
|
}
|
|
|
|
public function load_from_file( $ext_filename ) {
|
|
$source = MakePOT::get_first_lines( $ext_filename );
|
|
$pot = '';
|
|
foreach( $this->headers as $header ) {
|
|
$string = MakePOT::get_addon_header( $header, $source );
|
|
if ( ! $string ) {
|
|
continue;
|
|
}
|
|
$args = array(
|
|
'singular' => $string,
|
|
'extracted_comments' => $header.' of the plugin/theme',
|
|
);
|
|
$entry = new Translation_Entry( $args );
|
|
$pot .= "\n" . PO::export_entry( $entry ) . "\n";
|
|
}
|
|
return $pot;
|
|
}
|
|
|
|
public function append( $ext_filename, $pot_filename, $headers = null ) {
|
|
if ( $headers ) {
|
|
$this->headers = (array) $headers;
|
|
}
|
|
if ( is_dir( $ext_filename ) ) {
|
|
$pot = implode( '', array_map( array( $this, 'load_from_file' ), glob( "$ext_filename/*.php" ) ) );
|
|
} else {
|
|
$pot = $this->load_from_file( $ext_filename );
|
|
}
|
|
$potf = '-' == $pot_filename ? STDOUT : fopen( $pot_filename, 'a' );
|
|
if ( ! $potf ) {
|
|
return false;
|
|
}
|
|
fwrite( $potf, $pot );
|
|
if ( '-' != $pot_filename ) {
|
|
fclose( $potf );
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
$included_files = get_included_files();
|
|
if ( __FILE__ == $included_files[0] ) {
|
|
ini_set( 'display_errors', 1 );
|
|
$potextmeta = new PotExtMeta;
|
|
if ( ! isset( $argv[1] ) ) {
|
|
$potextmeta->usage();
|
|
}
|
|
$potextmeta->append( $argv[1], isset( $argv[2] ) ? $argv[2] : '-', isset( $argv[3] ) ? $argv[3] : null );
|
|
}
|