|
29 | 29 | } |
30 | 30 | $Out = []; |
31 | 31 | foreach ($References as $Reference) { |
| 32 | + $Try = ''; |
32 | 33 | if (isset($L10N->Data[$Reference])) { |
33 | | - $Reference = $L10N->Data[$Reference]; |
| 34 | + $Try = $L10N->Data[$Reference]; |
| 35 | + } elseif (is_array($L10N->Fallback)) { |
| 36 | + if (isset($L10N->Fallback[$Reference])) { |
| 37 | + $Try = $L10N->Fallback[$Reference]; |
| 38 | + } |
| 39 | + } elseif ($L10N->Fallback instanceof \Maikuolan\Common\L10N) { |
| 40 | + if (isset($L10N->Fallback->Data[$Reference])) { |
| 41 | + $Try = $L10N->Fallback->Data[$Reference]; |
| 42 | + } elseif (is_array($L10N->Fallback->Fallback) && isset($L10N->Fallback->Fallback[$Reference])) { |
| 43 | + $Try = $L10N->Fallback->Fallback[$Reference]; |
| 44 | + } |
| 45 | + } |
| 46 | + if ($Try === '') { |
| 47 | + if (($SPos = strpos($Reference, '')) !== '') { |
| 48 | + $Try = (($TryFrom = $L10N->getString(substr($Reference, 0, $SPos))) !== '' && strpos($TryFrom, '%s') !== '') ? sprintf($TryFrom, substr($Reference, $SPos + 1)) : $Reference; |
| 49 | + } else { |
| 50 | + $Try = $Reference; |
| 51 | + } |
34 | 52 | } |
| 53 | + $Reference = $Try; |
35 | 54 | if (!is_array($Reference)) { |
36 | 55 | $Reference = [$Reference]; |
37 | 56 | } |
|
0 commit comments