32 $bodyOfFileTag = $root->file->body;
33 if ($bodyOfFileTag instanceof \SimpleXMLElement) {
34 foreach ($bodyOfFileTag->children() as $translationElement) {
36 if ($translationElement->getName() ===
'trans-unit' && !isset($translationElement[
'restype'])) {
38 if ($this->languageKey ===
'default') {
40 $parsedData[(string)$translationElement[
'id']][0] = [
41 'source' => (
string)$translationElement->source,
42 'target' => (string)$translationElement->source
46 $parsedData[(string)$translationElement[
'id']][0] = [
47 'source' => (
string)$translationElement->source,
48 'target' => (string)$translationElement->target
51 } elseif ($translationElement->getName() ===
'group' && isset($translationElement[
'restype']) && (
string)$translationElement[
'restype'] ===
'x-gettext-plurals') {
53 $parsedTranslationElement = [];
54 foreach ($translationElement->children() as $translationPluralForm) {
56 if ($translationPluralForm->getName() ===
'trans-unit') {
58 $formIndex = substr((
string)$translationPluralForm[
'id'], strpos((
string)$translationPluralForm[
'id'],
'[') + 1, -1);
59 if ($this->languageKey ===
'default') {
61 $parsedTranslationElement[(int)$formIndex] = [
62 'source' => (
string)$translationPluralForm->source,
63 'target' => (string)$translationPluralForm->source
67 $parsedTranslationElement[(int)$formIndex] = [
68 'source' => (
string)$translationPluralForm->source,
69 'target' => (string)$translationPluralForm->target
74 if (!empty($parsedTranslationElement)) {
75 if (isset($translationElement[
'id'])) {
76 $id = (string)$translationElement[
'id'];
78 $id = (string)$translationElement->{
'trans-unit'}[0][
'id'];
79 $id = substr($id, 0, strpos($id,
'['));
81 $parsedData[$id] = $parsedTranslationElement;