| @@ 1590-1606 (lines=17) @@ | ||
| 1587 | * |
|
| 1588 | * @todo Move logic to languageMaskGenerator in master. |
|
| 1589 | */ |
|
| 1590 | private function generateLanguageMaskFromLanguageCodes(array $translations, bool $useAlwaysAvailable = true): int |
|
| 1591 | { |
|
| 1592 | $languages = []; |
|
| 1593 | foreach ($translations as $translation) { |
|
| 1594 | if (isset($languages[$translation])) { |
|
| 1595 | continue; |
|
| 1596 | } |
|
| 1597 | ||
| 1598 | $languages[$translation] = true; |
|
| 1599 | } |
|
| 1600 | ||
| 1601 | if ($useAlwaysAvailable) { |
|
| 1602 | $languages['always-available'] = true; |
|
| 1603 | } |
|
| 1604 | ||
| 1605 | return $this->languageMaskGenerator->generateLanguageMask($languages); |
|
| 1606 | } |
|
| 1607 | } |
|
| 1608 | ||
| @@ 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. |
|