32 lines
927 B
PHP
32 lines
927 B
PHP
<?php
|
|
|
|
class WPML_TM_String_Xliff_Reader extends WPML_TM_Xliff_Reader {
|
|
|
|
/**
|
|
* Retrieve the string translations from a XLIFF
|
|
*
|
|
* @param string $content The XLIFF representing a set of strings
|
|
*
|
|
* @return WP_Error|array The string translation representation or WP_Error
|
|
* on failure
|
|
*/
|
|
public function get_data( $content ) {
|
|
$xliff = $this->load_xliff( $content );
|
|
$data = array();
|
|
if ( $xliff && ! $xliff instanceof WP_Error ) {
|
|
/** @var SimpleXMLElement $node */
|
|
foreach ( $xliff->{'file'}->{'body'}->children() as $node ) {
|
|
$target = $this->get_xliff_node_target( $node );
|
|
|
|
if ( ! $target && $target !== '0' ) {
|
|
return $this->invalid_xliff_error();
|
|
}
|
|
$target = $this->replace_xliff_new_line_tag_with_new_line( $target );
|
|
$attr = $node->attributes();
|
|
$data[ (string) $attr['id'] ] = $target;
|
|
}
|
|
}
|
|
return $data;
|
|
}
|
|
}
|