*/ public static function all(): array { return array( self::EMPTY, self::ALL ); } /** * Хеши строк, которые нужно отправить в ИИ в этом режиме. * * В режиме EMPTY уже переведённая строка в отправку не попадает вообще — * не «переводится и отбрасывается результат», а просто не участвует * в запросе к провайдеру, значит и в дневной бюджет символов не входит. * * @param list $allHashes Все найденные хеши записи, hex. * @param array $existingTranslations Хеш => текущий перевод (может быть ''). * @param string $mode self::EMPTY или self::ALL. * @return list */ public static function selectForTranslation( array $allHashes, array $existingTranslations, string $mode ): array { if ( self::ALL === $mode ) { return array_values( $allHashes ); } return array_values( array_filter( $allHashes, static fn( string $hash ): bool => '' === trim( (string) ( $existingTranslations[ $hash ] ?? '' ) ) ) ); } }