File: /var/www/zaklada/wp-content/plugins/wpml-string-translation/classes/batch-translation/Strings.php
<?php
namespace WPML\ST\Batch\Translation;
use WPML\Collect\Support\Traits\Macroable;
use WPML\FP\Fns;
use function WPML\FP\curryN;
/**
 * Class Strings
 * @package WPML\ST\Batch\Translation
 * @method static callable|object get( ...$getBatchRecord, ...$getString, ...$item, ...$id, ...$type )
 */
class Strings {
	use Macroable;
	public static function init() {
		self::macro( 'get', curryN( 5, function ( callable $getBatchRecord, callable $getString, $item, $id, $type ) {
			if ( $type === 'st-batch' || $type === Module::EXTERNAL_TYPE ) {
				$getBatchString = function ( $strings, $stringId ) use ( $getString ) {
					$strings[ Module::STRING_ID_PREFIX . $stringId ] = $getString( $stringId );
					return $strings;
				};
				return (object) [
					'post_id'       => $id,
					'ID'            => $id,
					'post_type'     => 'strings',
					'kind'          => 'Strings',
					'kind_slug'     => 'Strings',
					'external_type' => true,
					'string_data'   => Fns::reduce( $getBatchString, [], $getBatchRecord( $id ) )
				];
			}
			return $item;
		} ) );
	}
}
Strings::init();