Skip to content

Commit bd0972a

Browse files
Merge pull request #18711 from kamil-tekiela/buildDescription
Small refactoring of Collation
2 parents 55151c2 + 84073fd commit bd0972a

1 file changed

Lines changed: 19 additions & 43 deletions

File tree

src/Charsets/Collation.php

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -163,15 +163,9 @@ private function buildDescription(): string
163163
/* Next will be suffix */
164164
$level = 5;
165165
/* Variant */
166-
$found = true;
167166
$variantFound = $this->getVariant($part);
168-
if ($variantFound === null) {
169-
$found = false;
170-
} else {
167+
if ($variantFound !== null) {
171168
$variant = $variantFound;
172-
}
173-
174-
if ($found) {
175169
continue;
176170
}
177171
// Not parsed token, fall to next level
@@ -182,7 +176,12 @@ private function buildDescription(): string
182176
}
183177

184178
/* Suffixes */
185-
$suffixes = $this->addSuffixes($suffixes, $part);
179+
$suffix = $this->addSuffixes($part);
180+
if ($suffix === null) {
181+
continue;
182+
}
183+
184+
$suffixes[] = $suffix;
186185
}
187186

188187
return $this->buildName($name, $variant, $suffixes);
@@ -213,42 +212,19 @@ private function getVariant(string $part): string|null
213212
};
214213
}
215214

216-
/**
217-
* @param string[] $suffixes
218-
*
219-
* @return string[]
220-
*/
221-
private function addSuffixes(array $suffixes, string $part): array
215+
private function addSuffixes(string $part): string|null
222216
{
223-
switch ($part) {
224-
case 'ci':
225-
$suffixes[] = _pgettext('Collation variant', 'case-insensitive');
226-
break;
227-
case 'cs':
228-
$suffixes[] = _pgettext('Collation variant', 'case-sensitive');
229-
break;
230-
case 'ai':
231-
$suffixes[] = _pgettext('Collation variant', 'accent-insensitive');
232-
break;
233-
case 'as':
234-
$suffixes[] = _pgettext('Collation variant', 'accent-sensitive');
235-
break;
236-
case 'ks':
237-
$suffixes[] = _pgettext('Collation variant', 'kana-sensitive');
238-
break;
239-
case 'w2':
240-
case 'l2':
241-
$suffixes[] = _pgettext('Collation variant', 'multi-level');
242-
break;
243-
case 'bin':
244-
$suffixes[] = _pgettext('Collation variant', 'binary');
245-
break;
246-
case 'nopad':
247-
$suffixes[] = _pgettext('Collation variant', 'no-pad');
248-
break;
249-
}
250-
251-
return $suffixes;
217+
return match ($part) {
218+
'ci' => _pgettext('Collation variant', 'case-insensitive'),
219+
'cs' => _pgettext('Collation variant', 'case-sensitive'),
220+
'ai' => _pgettext('Collation variant', 'accent-insensitive'),
221+
'as' => _pgettext('Collation variant', 'accent-sensitive'),
222+
'ks' => _pgettext('Collation variant', 'kana-sensitive'),
223+
'w2','l2' => _pgettext('Collation variant', 'multi-level'),
224+
'bin' => _pgettext('Collation variant', 'binary'),
225+
'nopad' => _pgettext('Collation variant', 'no-pad'),
226+
default => null,
227+
};
252228
}
253229

254230
/**

0 commit comments

Comments
 (0)