explode( ':', $meta_line, 2 ) );
$this->headers[ strtolower( $name ) ] = $value;
}
} else {
/*
* In MO files, the key normally contains both singular and plural versions.
* However, this just adds the singular string for lookup,
* which caters for cases where both __( 'Product' ) and _n( 'Product', 'Products' )
* are used and the translation is expected to be the same for both.
*/
$parts = explode( "\0", (string) $original );
$this->entries[ $parts[0] ] = $translation;
}
}
return true;
}
/**
* Exports translation contents as a string.
*
* @since 6.5.0
*
* @return string Translation file contents.
*/
public function export(): string {
// Prefix the headers as the first key.
$headers_string = '';
foreach ( $this->headers as $header => $value ) {
$headers_string .= "{$header}: $value\n";
}
$entries = array_merge( array( '' => $headers_string ), $this->entries );
$entry_count = count( $entries );
if ( false === $this->uint32 ) {
$this->uint32 = 'V';
}
$bytes_for_entries = $entry_count * 4 * 2;
// Pair of 32bit ints per entry.
$originals_addr = 28; /* header */
$translations_addr = $originals_addr + $bytes_for_entries;
$hash_addr = $translations_addr + $bytes_for_entries;
$entry_offsets = $hash_addr;
$file_header = pack(
$this->uint32 . '*',
// Force cast to an integer as it can be a float on x86 systems. See https://core.trac.wordpress.org/ticket/60678.
(int) self::MAGIC_MARKER,
0, /* rev */
$entry_count,
$originals_addr,
$translations_addr,
0, /* hash_length */
$hash_addr
);
$o_entries = '';
$t_entries = '';
$o_addr = '';
$t_addr = '';
foreach ( array_keys( $entries ) as $original ) {
$o_addr .= pack( $this->uint32 . '*', strlen( $original ), $entry_offsets );
$entry_offsets += strlen( $original ) + 1;
$o_entries .= $original . "\0";
}
foreach ( $entries as $translations ) {
$t_addr .= pack( $this->uint32 . '*', strlen( $translations ), $entry_offsets );
$entry_offsets += strlen( $translations ) + 1;
$t_entries .= $translations . "\0";
}
return $file_header . $o_addr . $t_addr . $o_entries . $t_entries;
}
}
Fatal error: Uncaught Error: Class "WP_Translation_File_MO" not found in /home/mohtavaac/public_html/wp-includes/l10n/class-wp-translation-file.php:98
Stack trace:
#0 /home/mohtavaac/public_html/wp-includes/l10n/class-wp-translation-controller.php(125): WP_Translation_File::create()
#1 /home/mohtavaac/public_html/wp-includes/l10n.php(845): WP_Translation_Controller->load_file()
#2 /home/mohtavaac/public_html/wp-includes/l10n.php(1402): load_textdomain()
#3 /home/mohtavaac/public_html/wp-includes/l10n.php(1419): _load_textdomain_just_in_time()
#4 /home/mohtavaac/public_html/wp-includes/l10n.php(262): get_translations_for_domain()
#5 /home/mohtavaac/public_html/wp-includes/l10n.php(410): translate_with_gettext_context()
#6 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/wc-order-functions.php(106): _x()
#7 /home/mohtavaac/public_html/wp-content/plugins/persian-woocommerce/src/Services/ReportService.php(926): wc_get_order_statuses()
#8 /home/mohtavaac/public_html/wp-content/plugins/persian-woocommerce/src/Services/ReportService.php(32): PersianWooCommerce\Services\ReportService->get_valid_order_statuses()
#9 /home/mohtavaac/public_html/wp-content/plugins/persian-woocommerce/src/API/ReportAPI.php(16): PersianWooCommerce\Services\ReportService->__construct()
#10 /home/mohtavaac/public_html/wp-content/plugins/persian-woocommerce/src/PersianWooCommerce.php(13): PersianWooCommerce\API\ReportAPI->__construct()
#11 /home/mohtavaac/public_html/wp-content/plugins/persian-woocommerce/woocommerce-persian.php(51): PersianWooCommerce\PersianWooCommerce->__construct()
#12 /home/mohtavaac/public_html/wp-includes/class-wp-hook.php(341): {closure}()
#13 /home/mohtavaac/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#14 /home/mohtavaac/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#15 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(274): do_action()
#16 /home/mohtavaac/public_html/wp-includes/class-wp-hook.php(341): WooCommerce->on_plugins_loaded()
#17 /home/mohtavaac/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#18 /home/mohtavaac/public_html/wp-includes/plugin.php(522): WP_Hook->do_action()
#19 /home/mohtavaac/public_html/wp-settings.php(593): do_action()
#20 /home/mohtavaac/public_html/wp-config.php(40): require_once('/home/mohtavaac...')
#21 /home/mohtavaac/public_html/wp-load.php(50): require_once('/home/mohtavaac...')
#22 /home/mohtavaac/public_html/wp-blog-header.php(13): require_once('/home/mohtavaac...')
#23 /home/mohtavaac/public_html/index.php(17): require('/home/mohtavaac...')
#24 {main}
thrown in /home/mohtavaac/public_html/wp-includes/l10n/class-wp-translation-file.php on line 98
Fatal error: Uncaught Error: Class "WP_Translation_File_MO" not found in /home/mohtavaac/public_html/wp-includes/l10n/class-wp-translation-file.php:98
Stack trace:
#0 /home/mohtavaac/public_html/wp-includes/l10n/class-wp-translation-controller.php(125): WP_Translation_File::create()
#1 /home/mohtavaac/public_html/wp-includes/l10n.php(845): WP_Translation_Controller->load_file()
#2 /home/mohtavaac/public_html/wp-includes/l10n.php(1402): load_textdomain()
#3 /home/mohtavaac/public_html/wp-includes/l10n.php(1419): _load_textdomain_just_in_time()
#4 /home/mohtavaac/public_html/wp-includes/l10n.php(195): get_translations_for_domain()
#5 /home/mohtavaac/public_html/wp-includes/l10n.php(340): translate()
#6 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/Logging/FileV2/FileController.php(356): esc_html__()
#7 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/Logging/FileV2/FileController.php(118): Automattic\WooCommerce\Internal\Admin\Logging\FileV2\FileController->get_file_by_id()
#8 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/Logging/LogHandlerFileV2.php(62): Automattic\WooCommerce\Internal\Admin\Logging\FileV2\FileController->write_to_file()
#9 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/class-wc-logger.php(189): Automattic\WooCommerce\Internal\Admin\Logging\LogHandlerFileV2->handle()
#10 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/class-wc-logger.php(251): WC_Logger->log()
#11 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/src/Internal/Logging/RemoteLogger.php(53): WC_Logger->error()
#12 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/class-wc-logger.php(189): Automattic\WooCommerce\Internal\Logging\RemoteLogger->handle()
#13 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/class-wc-logger.php(236): WC_Logger->log()
#14 /home/mohtavaac/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(460): WC_Logger->critical()
#15 [internal function]: WooCommerce->log_errors()
#16 {main}
thrown in /home/mohtavaac/public_html/wp-includes/l10n/class-wp-translation-file.php on line 98