52 lines
1.1 KiB
PHP
52 lines
1.1 KiB
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();
|