Actions
Feature #104546
openSupport plural forms in language files
Status:
Under Review
Priority:
Should have
Assignee:
Category:
Localization
Target version:
Start date:
2024-08-04
Due date:
% Done:
0%
Estimated time:
PHP Version:
8.2
Tags:
Complexity:
Sprint Focus:
Description
This feature implements support of plural forms in language files. Units in XLIFF files can be grouped to define plural forms of a translation:
<group id="day" restype="x-gettext-plurals">
<trans-unit id="day[0]">
<source>%1$s day</source>
</trans-unit>
<trans-unit id="day[1]">
<source>%1$s days</source>
</trans-unit>
</group>
The number in [] defines the plural form as defined here: http://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html
Behaviour of existing TYPO3 installations is not changed. To make use of the plural forms a new argument named quantity is introduced and handed all the way down from TranslateViewHelper over LocalizationUtility::translate to LanguageService->sL. TranslationService->translate supports the new argument, too.
If no quantity value is passed, the form [0] is used as default.
Examples:
<f:translate id="my.label" quantity="1" /> <f:translate arguments="{0: quantity}" id="my.label" quantity="{quantity}" /> $languageService->sL($id, 42);
At the suggestion of Georg Ringer, the ContentObjectRenderer also received support for this feature. The argument can be appended to the label in TypoScript seperated by a comma.
Example:
label = TEXT label.data = LLL:EXT:my_ext/Resources/Private/Language/locallang.xlf:my.label,42
Translation cache takes the plural forms into account.
Actions