Index: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/cli/class-language-pack.php =================================================================== --- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/cli/class-language-pack.php (revision 12931) +++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/cli/class-language-pack.php (working copy) @@ -510,7 +510,24 @@ return $match[1]; } - /** + /** + * Builds a PHP file for translations. + * + * @param GP_Project $gp_project The GlotPress project. + * @param GP_Locale $gp_locale The GlotPress locale. + * @param GP_Translation_Set $set The translation set. + * @param Translation_Entry[] $entries The translation entries. + * @param string $dest Destination file name. + * @return bool True on success, false on error. + */ + private function build_php_file( $gp_project, $gp_locale, $set, $entries, $dest ) { + $format = gp_array_get( GP::$formats, 'php' ); + $content = $format->print_exported_file( $gp_project, $gp_locale, $set, $entries ); + + return false !== file_put_contents( $dest, $content ); + } + + /** * Executes a command via exec(). * * @param string $command The escaped command to execute. @@ -652,6 +669,7 @@ $json_file_base = "{$export_directory}/{$filename}"; $po_file = "{$export_directory}/{$filename}.po"; $mo_file = "{$export_directory}/{$filename}.mo"; + $php_file = "{$export_directory}/{$filename}.mo.php"; $zip_file = "{$export_directory}/{$filename}.zip"; $build_zip_file = "{$build_directory}/{$wp_locale}.zip"; $build_sig_file = "{$build_zip_file}.sig"; @@ -666,8 +684,15 @@ unset( $mapping['po'] ); // Create JED json files for each JS file. - $json_files = $this->build_json_files( $data->gp_project, $gp_locale, $set, $mapping, $json_file_base ); + $additional_files = $this->build_json_files( $data->gp_project, $gp_locale, $set, $mapping, $json_file_base ); + // Create PHP file. + $php_file_written = $this->build_php_file( $data->gp_project, $gp_locale, $set, $po_entries, $php_file ); + + if ( $php_file_written ) { + $additional_files[] = $php_file; + } + // Create PO file. $last_modified = $this->build_po_file( $data->gp_project, $gp_locale, $set, $po_entries, $po_file ); @@ -703,7 +728,7 @@ escapeshellarg( $zip_file ), escapeshellarg( $po_file ), escapeshellarg( $mo_file ), - implode( ' ', array_map( 'escapeshellarg', $json_files ) ) + implode( ' ', array_map( 'escapeshellarg', $additional_files ) ) ) ); if ( is_wp_error( $result ) ) {