• File: class-wp-translation-file-php.php
  • Full Path: /home/u505525515/domains/medineeestates.com/public_html/wp-includes/l10n/class-wp-translation-file-php.php
  • Date Modified: 05/25/2026 6:29 AM
  • File size: 1.77 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * I18N: WP_Translation_File_PHP class.
 *
 * @package WordPress
 * @subpackage I18N
 * @since 6.5.0
 */

/**
 * Class WP_Translation_File_PHP.
 *
 * @since 6.5.0
 */
class WP_Translation_File_PHP extends WP_Translation_File {
    /**
     * Parses the file.
     *
     * @since 6.5.0
     */
    protected function parse_file() {
        $this->parsed = true;

        $result = include $this->file;
        if ( ! $result || ! is_array( $result ) ) {
            $this->error = 'Invalid data';
            return;
        }

        if ( isset( $result['messages'] ) && is_array( $result['messages'] ) ) {
            foreach ( $result['messages'] as $original => $translation ) {
                $this->entries[ (string) $original ] = $translation;
            }
            unset( $result['messages'] );
        }

        $this->headers = array_change_key_case( $result );
    }

    /**
     * Exports translation contents as a string.
     *
     * @since 6.5.0
     *
     * @return string Translation file contents.
     */
    public function export(): string {
        $data = array_merge( $this->headers, array( 'messages' => $this->entries ) );

        return '<?php' . PHP_EOL . 'return ' . $this->var_export( $data ) . ';' . PHP_EOL;
    }

    /**
     * Outputs or returns a parsable string representation of a variable.
     *
     * Like {@see var_export()} but "minified", using short array syntax
     * and no newlines.
     *
     * @since 6.5.0
     *
     * @param mixed $value The variable you want to export.
     * @return string The variable representation.
     */
    private function var_export( $value ): string {
        if ( ! is_array( $value ) ) {
            return var_export( $value, true );
        }

        $entries = array();

        $is_list = array_is_list( $value );

        foreach ( $value as $key => $val ) {
            $entries[] = $is_list ? $this->var_export( $val ) : var_export( $key, true ) . '=>' . $this->var_export( $val );
        }

        return '[' . implode( ',', $entries ) . ']';
    }
}