From 6a1e5210c9e6307ebe5afd1670656dde166b32f2 Mon Sep 17 00:00:00 2001 From: snowtimeglass Date: Wed, 17 Sep 2025 09:07:31 +0900 Subject: [PATCH] Make timebox message translatable with flexible variable order Currently, the timebox dialog message is built from two separate strings, each containing one variable: "{ $count } cards studied in" + "{ $count } minutes." As a result, translators cannot freely reorder the variables in their translations. This change introduces a single string with both variables, allowing translators to adjust the order for more natural expressions in their languages. --- ftl/core/studying.ftl | 17 ++++++++--------- qt/aqt/reviewer.py | 10 ++++++---- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/ftl/core/studying.ftl b/ftl/core/studying.ftl index ed3f8eb30..7220da385 100644 --- a/ftl/core/studying.ftl +++ b/ftl/core/studying.ftl @@ -46,15 +46,14 @@ studying-type-answer-unknown-field = Type answer: unknown field { $val } studying-unbury = Unbury studying-what-would-you-like-to-unbury = What would you like to unbury? studying-you-havent-recorded-your-voice-yet = You haven't recorded your voice yet. -studying-card-studied-in = - { $count -> - [one] { $count } card studied in - *[other] { $count } cards studied in - } -studying-minute = - { $count -> - [one] { $count } minute. - *[other] { $count } minutes. +studying-card-studied-in-minute = + { $cards -> + [one] { $cards } card + *[other] { $cards } cards + } studied in + { $minutes -> + [one] { $minutes } minute. + *[other] { $minutes } minutes. } studying-question-time-elapsed = Question time elapsed studying-answer-time-elapsed = Answer time elapsed diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py index a8839c598..74cb03e01 100644 --- a/qt/aqt/reviewer.py +++ b/qt/aqt/reviewer.py @@ -966,11 +966,13 @@ timerStopped = false; elapsed = self.mw.col.timeboxReached() if elapsed: assert not isinstance(elapsed, bool) - part1 = tr.studying_card_studied_in(count=elapsed[1]) - mins = int(round(elapsed[0] / 60)) - part2 = tr.studying_minute(count=mins) + cards_val = elapsed[1] + minutes_val = int(round(elapsed[0] / 60)) + message = tr.studying_card_studied_in_minute( + cards=cards_val, minutes=str(minutes_val) + ) fin = tr.studying_finish() - diag = askUserDialog(f"{part1} {part2}", [tr.studying_continue(), fin]) + diag = askUserDialog(message, [tr.studying_continue(), fin]) diag.setIcon(QMessageBox.Icon.Information) if diag.run() == fin: self.mw.moveToState("deckBrowser")