source_language = $source_language; $this->target_language = $target_language; } /** * Returns the source language. * * @since 3.1 * @since 3.6 Returns a `PLL_Language` object. * Is public and concrete. * * @return PLL_Language Source language object. */ public function get_source_language(): PLL_Language { return $this->source_language; } /** * Returns the target language. * * @since 3.1 * @since 3.6 Returns a `PLL_Language` object. * Is public and concrete. * * @return PLL_Language Target language object. */ public function get_target_language(): PLL_Language { return $this->target_language; } /** * Adds a source string to exported data and optionally a pre-existing translated one. * * @since 3.6 * * @param array $ref { * Array containing the content type and optionally the corresponding object ID. * * @type string $object_type Object type to be exported (e.g. `post` or `term`). * @type string $field_type Field type to be exported (e.g. `post_content`, `post_title`...). * @type int $object_id A unique identifier to retrieve the corresponding object from the database. * @type string $field_id Optional, a unique identifier to retrieve the corresponding field from the database. * @type string $field_comment Optional, a comment meant for the translators. * @type string $encoding Optional, encoding format for the field group. * } * @param string $source The source to be translated. * @param string $target Optional, a preexisting translation, if any. * @return void * * @phpstan-param translationEntryRef $ref * @phpstan-param non-empty-string $source */ abstract public function add_translation_entry( array $ref, string $source, string $target = '' ); /** * Checks the parameters given are valid. * * @since 3.6 * * @param array $ref { * Array containing the content type and optionally the corresponding object ID. * * @type string $object_type Object type to be exported (e.g. `post` or `term`). * @type string $field_type Field type to be exported (e.g. `post_content`, `post_title`...). * @type int $object_id A unique identifier to retrieve the corresponding object from the database. * @type string $field_id Optional, a unique identifier to retrieve the corresponding field from the database. * @type string $field_comment Optional, a comment meant for the translators. * @type string $encoding Optional, encoding format for the field group. * } * @param string $source The source to be translated. * @return bool True if valid, false otherwise. * * @phpstan-param translationEntryRef $ref * @phpstan-param non-empty-string $source */ public function are_entry_parameters_valid( array $ref, string $source ): bool { return '' !== $source && isset( $ref['object_id'] ) && is_numeric( $ref['object_id'] ) && (int) $ref['object_id'] >= 0 && ! empty( $ref['object_type'] ) && is_string( $ref['object_type'] ) && ! empty( $ref['field_type'] ) && is_string( $ref['field_type'] ); } /** * Returns exported data. * * @since 3.6 * * @return mixed */ abstract public function get(); }