| @@ 203-219 (lines=17) @@ | ||
| 200 | * |
|
| 201 | * @return int |
|
| 202 | */ |
|
| 203 | protected function generateLanguageMask(array $fields, $initialLanguageCode, $alwaysAvailable) |
|
| 204 | { |
|
| 205 | $languages = array($initialLanguageCode => true); |
|
| 206 | foreach ($fields as $field) { |
|
| 207 | if (isset($languages[$field->languageCode])) { |
|
| 208 | continue; |
|
| 209 | } |
|
| 210 | ||
| 211 | $languages[$field->languageCode] = true; |
|
| 212 | } |
|
| 213 | ||
| 214 | if ($alwaysAvailable) { |
|
| 215 | $languages['always-available'] = true; |
|
| 216 | } |
|
| 217 | ||
| 218 | return $this->languageMaskGenerator->generateLanguageMask($languages); |
|
| 219 | } |
|
| 220 | ||
| 221 | /** |
|
| 222 | * Inserts a new version. |
|
| @@ 1591-1607 (lines=17) @@ | ||
| 1588 | * |
|
| 1589 | * @todo Move logic to languageMaskGenerator in master. |
|
| 1590 | */ |
|
| 1591 | private function generateLanguageMaskFromLanguageCodes(array $translations, bool $useAlwaysAvailable = true): int |
|
| 1592 | { |
|
| 1593 | $languages = []; |
|
| 1594 | foreach ($translations as $translation) { |
|
| 1595 | if (isset($languages[$translation])) { |
|
| 1596 | continue; |
|
| 1597 | } |
|
| 1598 | ||
| 1599 | $languages[$translation] = true; |
|
| 1600 | } |
|
| 1601 | ||
| 1602 | if ($useAlwaysAvailable) { |
|
| 1603 | $languages['always-available'] = true; |
|
| 1604 | } |
|
| 1605 | ||
| 1606 | return $this->languageMaskGenerator->generateLanguageMask($languages); |
|
| 1607 | } |
|
| 1608 | } |
|
| 1609 | ||