芝麻web文件管理V1.00
编辑当前文件:/home/mgatv524/public_html/fmd/vendor/gettext/gettext/src/Utils/MultidimensionalArrayTrait.php
[original => [translation, plural1, pluraln...]]). */ trait MultidimensionalArrayTrait { use HeadersGeneratorTrait; use HeadersExtractorTrait; /** * Returns a multidimensional array. * * @param Translations $translations * @param bool $includeHeaders * @param bool $forceArray * * @return array */ private static function toArray(Translations $translations, $includeHeaders, $forceArray = false) { $pluralForm = $translations->getPluralForms(); $pluralSize = is_array($pluralForm) ? ($pluralForm[0] - 1) : null; $messages = []; if ($includeHeaders) { $messages[''] = [ '' => [self::generateHeaders($translations)], ]; } foreach ($translations as $translation) { $context = $translation->getContext(); $original = $translation->getOriginal(); if (!isset($messages[$context])) { $messages[$context] = []; } if ($translation->hasPluralTranslations(true)) { $messages[$context][$original] = $translation->getPluralTranslations($pluralSize); array_unshift($messages[$context][$original], $translation->getTranslation()); } elseif ($forceArray) { $messages[$context][$original] = [$translation->getTranslation()]; } else { $messages[$context][$original] = $translation->getTranslation(); } } return [ 'domain' => $translations->getDomain(), 'plural-forms' => $translations->getHeader('Plural-Forms'), 'messages' => $messages, ]; } /** * Extract the entries from a multidimensional array. * * @param array $messages * @param Translations $translations */ private static function fromArray(array $messages, Translations $translations) { if (!empty($messages['domain'])) { $translations->setDomain($messages['domain']); } if (!empty($messages['plural-forms'])) { $translations->setHeader(Translations::HEADER_PLURAL, $messages['plural-forms']); } foreach ($messages['messages'] as $context => $contextTranslations) { foreach ($contextTranslations as $original => $value) { if ($context === '' && $original === '') { self::extractHeaders(is_array($value) ? array_shift($value) : $value, $translations); continue; } $translation = $translations->insert($context, $original); if (is_array($value)) { $translation->setTranslation(array_shift($value)); $translation->setPluralTranslations($value); } else { $translation->setTranslation($value); } } } } }