View Issue Details

This issue affects 1 person(s).
 2
IDProjectCategoryView StatusLast Update
20780Bug reportsTranslationpublic2026-10-26 16:40
Reporterc_schmitz Assigned Toc_schmitz  
PrioritynoneSeverityminor 
Status resolvedResolutionfixed 
Product Version7.5.x 
Summary20780: Texts that depend on a number can only be translated with two forms, so languages like Polish or Czech show wrong grammar
Description

Texts that change with a number (for example "1 file" / "5 files") can only be translated with a singular and a plural form. Many languages, such as Polish, Czech, Russian or Arabic, need more forms, so these texts show wrong grammar for many numbers. The new survey editor has the same problem.

TagsNo tags attached.
Bug heat2
Complete LimeSurvey version number (& build)7.7.0+261020
I will donate to the project if issue is resolvedNo
Browser
Database type & version-
Server OS (if known)
Webserver software & version (if known)
PHP Version-
Git branch / Pull Request URL

Users monitoring this issue

There are no users monitoring this issue.

Activities

c_schmitz

c_schmitz

2026-10-26 16:40

administrator   ~86860

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=41067

Related Changesets

LimeSurvey: master a9c3eaa5

2026-10-20 18:01

c_schmitz


Details Diff
Fixed issue 20780: Texts that depend on a number could only be translated with two forms, so languages like Polish or Czech showed wrong grammar
Dev New gTPlural()/eTPlural() use real gettext plural entries (msgid/msgid_plural), the form is picked by the Plural-Forms rule of the language file, evaluated without eval()
Dev ngT()/neT() are deprecated, all core calls converted to gTPlural(), {n} placeholders replaced by %d with sprintf()
Dev Before merging, the POT extractor must know gTPlural/eTPlural as plural keywords and the existing pipe translations must be converted, otherwise these strings fall back to English
Affected Issues
20780
mod - application/config/internal.php Diff File
mod - application/controllers/ResponsesController.php Diff File
mod - application/controllers/admin/ParticipantsAction.php Diff File
mod - application/controllers/admin/Tokens.php Diff File
add - application/core/LSGettextPluralForms.php Diff File
mod - application/core/LSMessageSource.php Diff File
mod - application/core/QuestionTypes/FileUpload/RenderFileUpload.php Diff File
mod - application/helpers/common_helper.php Diff File
mod - application/helpers/expressions/em_manager_helper.php Diff File
mod - application/helpers/expressions/warnings/EMWarningHTMLBaker.php Diff File
mod - application/models/User.php Diff File
mod - application/views/admin/participants/attributeMapCSV_view.php Diff File
mod - application/views/admin/participants/modal_subviews/_addToSurvey.php Diff File
mod - application/views/admin/token/emailwarning.php Diff File
mod - application/views/admin/token/managetokenattributes.php Diff File
mod - application/views/survey/questions/answer/file_upload/answer.twig Diff File
add - tests/unit/LSGettextPluralFormsTest.php Diff File
add - tests/unit/LSMessageSourceTranslatePluralTest.php Diff File

Issue History

Date Modified Username Field Change
2026-10-20 17:48 c_schmitz New Issue
2026-10-26 16:40 c_schmitz Changeset attached => LimeSurvey master a9c3eaa5
2026-10-26 16:40 c_schmitz Note Added: 86860
2026-10-26 16:40 c_schmitz Assigned To => c_schmitz
2026-10-26 16:40 c_schmitz Status new => resolved
2026-10-26 16:40 c_schmitz Resolution open => fixed
2026-10-26 16:40 guest Bug heat 0 => 2