From aa56359834e8c3a3795ae3fe1d800d135e1a753e Mon Sep 17 00:00:00 2001 From: Daniel Rainer Date: Thu, 8 Jan 2026 18:21:23 +0100 Subject: [PATCH] gettext: use `wgettext_fmt` for formatting Using `wgettext_fmt` instead of `wgettext` + `sprintf` in these cases allows for proper localization of the colons. --- localization/po/de.po | 11 ++++++++--- localization/po/en.po | 11 ++++++++--- localization/po/fr.po | 11 ++++++++--- localization/po/pl.po | 11 ++++++++--- localization/po/pt_BR.po | 11 ++++++++--- localization/po/sv.po | 11 ++++++++--- localization/po/zh_CN.po | 11 ++++++++--- localization/po/zh_TW.po | 11 ++++++++--- src/builtins/printf.rs | 4 ++-- 9 files changed, 66 insertions(+), 26 deletions(-) diff --git a/localization/po/de.po b/localization/po/de.po index dbfbffb5f..ec758ae68 100644 --- a/localization/po/de.po +++ b/localization/po/de.po @@ -571,6 +571,14 @@ msgstr "" msgid "%s: Not inside of loop\n" msgstr "%s: Nicht innerhalb einer Schleife\n" +#, c-format +msgid "%s: Number out of range" +msgstr "" + +#, c-format +msgid "%s: Number was empty" +msgstr "%s: Zahl war leer" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "" @@ -1335,9 +1343,6 @@ msgstr "" msgid "Number out of range" msgstr "" -msgid "Number was empty" -msgstr "Zahl war leer" - msgid "Only on interactive jobs" msgstr "" diff --git a/localization/po/en.po b/localization/po/en.po index 7b14337ed..f28dd004f 100644 --- a/localization/po/en.po +++ b/localization/po/en.po @@ -569,6 +569,14 @@ msgstr "" msgid "%s: Not inside of loop\n" msgstr "%s: Not inside of loop\n" +#, c-format +msgid "%s: Number out of range" +msgstr "" + +#, c-format +msgid "%s: Number was empty" +msgstr "" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "" @@ -1333,9 +1341,6 @@ msgstr "" msgid "Number out of range" msgstr "" -msgid "Number was empty" -msgstr "" - msgid "Only on interactive jobs" msgstr "Only on interactive jobs" diff --git a/localization/po/fr.po b/localization/po/fr.po index 8eed13f7c..ad80c9551 100644 --- a/localization/po/fr.po +++ b/localization/po/fr.po @@ -700,6 +700,14 @@ msgstr "" msgid "%s: Not inside of loop\n" msgstr "%s : À l’extérieur de toute boucle\n" +#, c-format +msgid "%s: Number out of range" +msgstr "%s : Nombre hors limites" + +#, c-format +msgid "%s: Number was empty" +msgstr "" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "" @@ -1464,9 +1472,6 @@ msgstr "" msgid "Number out of range" msgstr "Nombre hors limites" -msgid "Number was empty" -msgstr "" - msgid "Only on interactive jobs" msgstr "Seulement sur les tâches interactives" diff --git a/localization/po/pl.po b/localization/po/pl.po index 639f2ffdf..5158de641 100644 --- a/localization/po/pl.po +++ b/localization/po/pl.po @@ -565,6 +565,14 @@ msgstr "" msgid "%s: Not inside of loop\n" msgstr "" +#, c-format +msgid "%s: Number out of range" +msgstr "" + +#, c-format +msgid "%s: Number was empty" +msgstr "" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "" @@ -1329,9 +1337,6 @@ msgstr "" msgid "Number out of range" msgstr "" -msgid "Number was empty" -msgstr "" - msgid "Only on interactive jobs" msgstr "Tylko dla zadań interaktywnych" diff --git a/localization/po/pt_BR.po b/localization/po/pt_BR.po index 84abfccc0..cf13ba361 100644 --- a/localization/po/pt_BR.po +++ b/localization/po/pt_BR.po @@ -570,6 +570,14 @@ msgstr "" msgid "%s: Not inside of loop\n" msgstr "%s: Não está dentro de laço\n" +#, c-format +msgid "%s: Number out of range" +msgstr "" + +#, c-format +msgid "%s: Number was empty" +msgstr "" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "" @@ -1334,9 +1342,6 @@ msgstr "" msgid "Number out of range" msgstr "" -msgid "Number was empty" -msgstr "" - msgid "Only on interactive jobs" msgstr "Somente em tarefas interativas" diff --git a/localization/po/sv.po b/localization/po/sv.po index fe386258c..368cc6e54 100644 --- a/localization/po/sv.po +++ b/localization/po/sv.po @@ -566,6 +566,14 @@ msgstr "" msgid "%s: Not inside of loop\n" msgstr "%s: Inte i en loop\n" +#, c-format +msgid "%s: Number out of range" +msgstr "" + +#, c-format +msgid "%s: Number was empty" +msgstr "" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "" @@ -1330,9 +1338,6 @@ msgstr "" msgid "Number out of range" msgstr "" -msgid "Number was empty" -msgstr "" - msgid "Only on interactive jobs" msgstr "Bara för interaktiva jobb" diff --git a/localization/po/zh_CN.po b/localization/po/zh_CN.po index 4771e159a..fd88f8bc4 100644 --- a/localization/po/zh_CN.po +++ b/localization/po/zh_CN.po @@ -592,6 +592,14 @@ msgstr "%s: 没有合适的作业:%s\n" msgid "%s: Not inside of loop\n" msgstr "%s: 不在循环体内部\n" +#, c-format +msgid "%s: Number out of range" +msgstr "%s:数字超出范围" + +#, c-format +msgid "%s: Number was empty" +msgstr "%s:数字为空" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "%s: 选项 %s 和 %s 无法一起使用\n" @@ -1359,9 +1367,6 @@ msgstr "数字过大" msgid "Number out of range" msgstr "数字超出范围" -msgid "Number was empty" -msgstr "数字为空" - msgid "Only on interactive jobs" msgstr "只在不活跃的作业上" diff --git a/localization/po/zh_TW.po b/localization/po/zh_TW.po index c8fc124a6..88f67df09 100644 --- a/localization/po/zh_TW.po +++ b/localization/po/zh_TW.po @@ -565,6 +565,14 @@ msgstr "%s:沒有合式的作業:%s\n" msgid "%s: Not inside of loop\n" msgstr "%s:不在迴圈裡面\n" +#, c-format +msgid "%s: Number out of range" +msgstr "%s:數字超出範圍" + +#, c-format +msgid "%s: Number was empty" +msgstr "%s:數字空白" + #, c-format msgid "%s: Options %s and %s cannot be used together\n" msgstr "%s:選項 %s 和 %s 不能同時使用\n" @@ -1333,9 +1341,6 @@ msgstr "數字太大" msgid "Number out of range" msgstr "數字超出範圍" -msgid "Number was empty" -msgstr "數字空白" - msgid "Only on interactive jobs" msgstr "僅限互動式作業" diff --git a/src/builtins/printf.rs b/src/builtins/printf.rs index e17589421..ba98308b3 100644 --- a/src/builtins/printf.rs +++ b/src/builtins/printf.rs @@ -208,10 +208,10 @@ fn verify_numeric(&mut self, s: &wstr, end: &wstr, errcode: Option) { if errcode != None && errcode != Some(Error::InvalidChar) && errcode != Some(Error::Empty) { match errcode.unwrap() { Error::Overflow => { - self.fatal_error(sprintf!("%s: %s", s, wgettext!("Number out of range"))); + self.fatal_error(wgettext_fmt!("%s: Number out of range", s)); } Error::Empty => { - self.fatal_error(sprintf!("%s: %s", s, wgettext!("Number was empty"))); + self.fatal_error(wgettext_fmt!("%s: Number was empty", s)); } Error::InvalidChar => { panic!("Unreachable");