30 $parsedData = array();
31 $bodyOfFileTag = $root->file->body;
32 if ($bodyOfFileTag instanceof \SimpleXMLElement) {
33 foreach ($bodyOfFileTag->children() as $translationElement) {
34 if ($translationElement->getName() ===
'trans-unit' && !isset($translationElement[
'restype'])) {
36 if ($this->languageKey ===
'default') {
38 $parsedData[(string) $translationElement[
'id']][0] = array(
39 'source' => (
string) $translationElement->source,
40 'target' => (string) $translationElement->source
44 $parsedData[(string) $translationElement[
'id']][0] = array(
45 'source' => (
string) $translationElement->source,
46 'target' => (string) $translationElement->target
49 } elseif ($translationElement->getName() ===
'group' && isset($translationElement[
'restype']) && (string) $translationElement[
'restype'] ===
'x-gettext-plurals') {
51 $parsedTranslationElement = array();
52 foreach ($translationElement->children() as $translationPluralForm) {
53 if ($translationPluralForm->getName() ===
'trans-unit') {
55 $formIndex = substr((
string) $translationPluralForm[
'id'], strpos((
string) $translationPluralForm[
'id'],
'[') + 1, -1);
56 if ($this->languageKey ===
'default') {
58 $parsedTranslationElement[(int)$formIndex] = array(
59 'source' => (
string) $translationPluralForm->source,
60 'target' => (string) $translationPluralForm->source
64 $parsedTranslationElement[(int)$formIndex] = array(
65 'source' => (
string) $translationPluralForm->source,
66 'target' => (string) $translationPluralForm->target
71 if (!empty($parsedTranslationElement)) {
72 if (isset($translationElement[
'id'])) {
73 $id = (string) $translationElement[
'id'];
75 $id = (string) $translationElement->{
'trans-unit'}[0][
'id'];
76 $id = substr($id, 0, strpos($id,
'['));
78 $parsedData[$id] = $parsedTranslationElement;
doParsingFromRoot(\SimpleXMLElement $root)