| @@ 1609-1625 (lines=17) @@ | ||
| 1606 | * |
|
| 1607 | * @todo Move logic to languageMaskGenerator in master. |
|
| 1608 | */ |
|
| 1609 | private function generateLanguageMaskFromLanguageCodes(array $translations, bool $useAlwaysAvailable = true): int |
|
| 1610 | { |
|
| 1611 | $languages = []; |
|
| 1612 | foreach ($translations as $translation) { |
|
| 1613 | if (isset($languages[$translation])) { |
|
| 1614 | continue; |
|
| 1615 | } |
|
| 1616 | ||
| 1617 | $languages[$translation] = true; |
|
| 1618 | } |
|
| 1619 | ||
| 1620 | if ($useAlwaysAvailable) { |
|
| 1621 | $languages['always-available'] = true; |
|
| 1622 | } |
|
| 1623 | ||
| 1624 | return $this->languageMaskGenerator->generateLanguageMask($languages); |
|
| 1625 | } |
|
| 1626 | } |
|
| 1627 | ||
| @@ 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. |
|