From d0269ee2dfb23ae81eb02dbe6cdeefc0db9a6f04 Mon Sep 17 00:00:00 2001 From: Zixuan James Li Date: Wed, 15 Jan 2025 17:01:14 -0500 Subject: [PATCH] poll: Translate voter names wrapped in parentheses Signed-off-by: Zixuan James Li --- assets/l10n/app_en.arb | 7 +++++++ lib/generated/l10n/zulip_localizations.dart | 6 ++++++ lib/generated/l10n/zulip_localizations_ar.dart | 5 +++++ lib/generated/l10n/zulip_localizations_en.dart | 5 +++++ lib/generated/l10n/zulip_localizations_ja.dart | 5 +++++ lib/generated/l10n/zulip_localizations_nb.dart | 5 +++++ lib/generated/l10n/zulip_localizations_pl.dart | 5 +++++ lib/generated/l10n/zulip_localizations_ru.dart | 5 +++++ lib/generated/l10n/zulip_localizations_sk.dart | 5 +++++ lib/widgets/poll.dart | 4 ++-- 10 files changed, 50 insertions(+), 2 deletions(-) diff --git a/assets/l10n/app_en.arb b/assets/l10n/app_en.arb index 093d189d543..ee7e96c35f8 100644 --- a/assets/l10n/app_en.arb +++ b/assets/l10n/app_en.arb @@ -746,6 +746,13 @@ "@messageIsMovedLabel": { "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, + "pollVoterNames": "({voterNames})", + "@pollVoterNames": { + "description": "The list of people who voted for a poll option, wrapped in parentheses.", + "placeholders": { + "voterNames": {"type": "String", "example": "Alice, Bob, Chad"} + } + }, "pollWidgetQuestionMissing": "No question.", "@pollWidgetQuestionMissing": { "description": "Text to display for a poll when the question is missing" diff --git a/lib/generated/l10n/zulip_localizations.dart b/lib/generated/l10n/zulip_localizations.dart index 7542e05e74d..b6fbb707698 100644 --- a/lib/generated/l10n/zulip_localizations.dart +++ b/lib/generated/l10n/zulip_localizations.dart @@ -1101,6 +1101,12 @@ abstract class ZulipLocalizations { /// **'MOVED'** String get messageIsMovedLabel; + /// The list of people who voted for a poll option, wrapped in parentheses. + /// + /// In en, this message translates to: + /// **'({voterNames})'** + String pollVoterNames(String voterNames); + /// Text to display for a poll when the question is missing /// /// In en, this message translates to: diff --git a/lib/generated/l10n/zulip_localizations_ar.dart b/lib/generated/l10n/zulip_localizations_ar.dart index 7995ed41d02..025b4b14441 100644 --- a/lib/generated/l10n/zulip_localizations_ar.dart +++ b/lib/generated/l10n/zulip_localizations_ar.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsAr extends ZulipLocalizations { @override String get messageIsMovedLabel => 'MOVED'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'No question.'; diff --git a/lib/generated/l10n/zulip_localizations_en.dart b/lib/generated/l10n/zulip_localizations_en.dart index 9523e2ccda4..9467d334288 100644 --- a/lib/generated/l10n/zulip_localizations_en.dart +++ b/lib/generated/l10n/zulip_localizations_en.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsEn extends ZulipLocalizations { @override String get messageIsMovedLabel => 'MOVED'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'No question.'; diff --git a/lib/generated/l10n/zulip_localizations_ja.dart b/lib/generated/l10n/zulip_localizations_ja.dart index 4182e64bad2..f363ee00433 100644 --- a/lib/generated/l10n/zulip_localizations_ja.dart +++ b/lib/generated/l10n/zulip_localizations_ja.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsJa extends ZulipLocalizations { @override String get messageIsMovedLabel => 'MOVED'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'No question.'; diff --git a/lib/generated/l10n/zulip_localizations_nb.dart b/lib/generated/l10n/zulip_localizations_nb.dart index b5f76316687..35b3e86fe5f 100644 --- a/lib/generated/l10n/zulip_localizations_nb.dart +++ b/lib/generated/l10n/zulip_localizations_nb.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsNb extends ZulipLocalizations { @override String get messageIsMovedLabel => 'MOVED'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'No question.'; diff --git a/lib/generated/l10n/zulip_localizations_pl.dart b/lib/generated/l10n/zulip_localizations_pl.dart index 14f836a81a4..0594722d31b 100644 --- a/lib/generated/l10n/zulip_localizations_pl.dart +++ b/lib/generated/l10n/zulip_localizations_pl.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsPl extends ZulipLocalizations { @override String get messageIsMovedLabel => 'PRZENIESIONO'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'Brak pytania.'; diff --git a/lib/generated/l10n/zulip_localizations_ru.dart b/lib/generated/l10n/zulip_localizations_ru.dart index 66ff950ffad..879559fed4d 100644 --- a/lib/generated/l10n/zulip_localizations_ru.dart +++ b/lib/generated/l10n/zulip_localizations_ru.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String get messageIsMovedLabel => 'ПЕРЕМЕЩЕНО'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'Нет вопроса.'; diff --git a/lib/generated/l10n/zulip_localizations_sk.dart b/lib/generated/l10n/zulip_localizations_sk.dart index 4882e34646b..af87dfd949e 100644 --- a/lib/generated/l10n/zulip_localizations_sk.dart +++ b/lib/generated/l10n/zulip_localizations_sk.dart @@ -586,6 +586,11 @@ class ZulipLocalizationsSk extends ZulipLocalizations { @override String get messageIsMovedLabel => 'PRESUNUTÉ'; + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + @override String get pollWidgetQuestionMissing => 'Bez otázky.'; diff --git a/lib/widgets/poll.dart b/lib/widgets/poll.dart index 07123fe1963..dc340d08b84 100644 --- a/lib/widgets/poll.dart +++ b/lib/widgets/poll.dart @@ -126,8 +126,8 @@ class _PollWidgetState extends State { children: [ Text(option.text, style: textStyleBold.copyWith(fontSize: 16)), if (option.voters.isNotEmpty) - // TODO(i18n): Localize parenthesis characters. - Text('($voterNames)', style: textStyleVoterNames), + Text(zulipLocalizations.pollVoterNames(voterNames), + style: textStyleVoterNames), ]))), ]); }