From: Maximiliano Sandoval <m.sandoval@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH proxmox-i18n v2 2/5] fix strings with wrong format
Date: Wed, 4 Feb 2026 14:48:30 +0100 [thread overview]
Message-ID: <20260204134835.422155-3-m.sandoval@proxmox.com> (raw)
In-Reply-To: <20260204134835.422155-1-m.sandoval@proxmox.com>
Strings where tr! (or gettext() in js) cannot make the substitution at
runtime due to broken formatting (e.g. if msgid contains {0} but msgstr
does not) will remain untranslated.
Where it was not clear how to fix the issue the string is rather marked
as fuzzy so it is re-translated.
After this commit the remaining errors are only in ukr.po, ru.po which
require more consideration.
These were detected with a python script doing basically:
```python
import pathlib
import polib
def is_formatted(entry):
return (
"{}" in entry.msgid
or "{0}" in entry.msgid
or "{n}" in entry.msgid
or "{}" in entry.msgid_plural
or "{0}" in entry.msgid_plural
or "{n}" in entry.msgid_plural
)
for path in pathlib.Path().iterdir():
po = polib.pofile(path)
for entry in po:
if (
entry.occurrences
and is_formatted(entry)
):
entry.flags.append("rust-format")
po.save(f"{file.stem}.with-formats.po")
```
which attaches the `rust-format` flag to a string. Then later the new po
files are checked with
```
msgfmt --check $PO_FILE
```
with gettext 0.26. This can be done, for example, with
```sh
for f in *.with-formats.po; do flatpak run --command=msgfmt --filesystem=home org.freedesktop.Platform//25.08 --check $f; done
```
for example.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
ar.po | 4 ++--
cs.po | 6 +++---
de.po | 4 +---
hr.po | 1 +
hu.po | 1 +
ja.po | 3 ++-
ko.po | 3 ++-
pl.po | 1 +
pt_BR.po | 2 +-
tr.po | 1 +
ukr.po | 3 ++-
11 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/ar.po b/ar.po
index 66a34efa..4f51419f 100644
--- a/ar.po
+++ b/ar.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: pve-manager 31813246103b2582162f422dc34d8077eaee1e01\n"
"Report-Msgid-Bugs-To: <support@proxmox.com>\n"
"POT-Creation-Date: 2025-12-10 15:47+0100\n"
-"PO-Revision-Date: 2025-07-18 10:53+0200\n"
+"PO-Revision-Date: 2026-02-04 10:38+0100\n"
"Last-Translator: \n"
"Language-Team: Arabic <support@proxmox.com>\n"
"Language: ar\n"
@@ -19107,7 +19107,7 @@ msgid "{0}% ({1} of {2})"
msgstr "{0} إلى {1} ({2})"
#: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
+#, javascript-format, fuzzy
msgid "{0}% of {1}"
msgstr "{0}٪ من {1}"
diff --git a/cs.po b/cs.po
index 728f23aa..2d779ead 100644
--- a/cs.po
+++ b/cs.po
@@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: proxmox-backup 254169f622d891d67de38e8c8c6b9fa8f4af5dc9\n"
"Report-Msgid-Bugs-To: <support@proxmox.com>\n"
"POT-Creation-Date: 2025-12-10 15:47+0100\n"
-"PO-Revision-Date: 2025-12-03 08:55+0100\n"
+"PO-Revision-Date: 2026-02-04 10:49+0100\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"Language-Team: Czech <support@proxmox.com>\n"
"Language: cs\n"
@@ -18875,14 +18875,14 @@ msgstr "{0} let"
#: pve-manager/www/manager6/sdn/NetworkBrowser.js:157
msgid "{0} {1} on node {2}"
-msgstr "{0} {{1} na uzlu {2})"
+msgstr "{0} ({1} na uzlu {2})"
#: proxmox-datacenter-manager/ui/src/pve/remote_overview.rs:220
#: proxmox-datacenter-manager/ui/src/pve/remote_overview.rs:236
#: proxmox-datacenter-manager/ui/src/pve/storage.rs:288
#: proxmox-datacenter-manager/ui/src/renderer.rs:76
msgid "{0}% ({1} of {2})"
-msgstr "{0}% {{1} z {2})"
+msgstr "{0}% ({1} z {2})"
#: proxmox-widget-toolkit/src/Utils.js:1121
#, javascript-format
diff --git a/de.po b/de.po
index 255d712d..3292214a 100644
--- a/de.po
+++ b/de.po
@@ -15716,9 +15716,7 @@ msgstr ""
#: proxmox-yew-comp/src/apt_repositories.rs:279
msgid ""
"The {0}no-subscription{1} repository is not recommended for production use!"
-msgstr ""
-"Das {0}no-subscription Repository ist nicht für die Verwendung in "
-"Produktivsystemen empfohlen!"
+msgstr "Das {0}no-subscription{1} Repository ist nicht für die Verwendung in Produktivsystemen empfohlen!"
#: proxmox-widget-toolkit/src/node/APTRepositories.js:528
#: proxmox-yew-comp/src/apt_repositories.rs:264
diff --git a/hr.po b/hr.po
index c20c687f..d1f82dda 100644
--- a/hr.po
+++ b/hr.po
@@ -16029,6 +16029,7 @@ msgstr "Enterprise {0}spremište je omogućeno, ali nema aktivne pretplate!"
#: proxmox-widget-toolkit/src/node/APTRepositories.js:516
#: proxmox-yew-comp/src/apt_repositories.rs:256
#: proxmox-yew-comp/src/apt_repositories.rs:279
+#, fuzzy
msgid ""
"The {0}no-subscription{1} repository is not recommended for production use!"
msgstr ""
diff --git a/hu.po b/hu.po
index 4098e8e4..34057044 100644
--- a/hu.po
+++ b/hu.po
@@ -19683,6 +19683,7 @@ msgid "{0} running / {1} physical ({2} total configured)"
msgstr ""
#: pmg-gui/js/GeneralMailStatistics.js:120
+#, fuzzy
msgid "{0} seconds"
msgstr "másodperc"
diff --git a/ja.po b/ja.po
index 485b98c8..0ec205a5 100644
--- a/ja.po
+++ b/ja.po
@@ -8542,6 +8542,7 @@ msgid "Match if"
msgstr "Match if"
#: proxmox-widget-toolkit/src/window/NotificationMatcherEdit.js:473
+#, fuzzy
msgid "Match severity: {0}"
msgstr "重要度に一致"
@@ -18710,7 +18711,7 @@ msgstr "{1}の {0}"
#: proxmox-datacenter-manager/ui/src/dashboard/node_status_panel.rs:125
msgid "{0} of {1} nodes are offline"
-msgstr "1}の {0} ノードがオフライン"
+msgstr "{1}の {0} ノードがオフライン"
#. TRANSLATORS: For example "resource on Remote 'HAL 9000'"
#: proxmox-datacenter-manager/ui/src/dashboard/top_entities.rs:249
diff --git a/ko.po b/ko.po
index e494cabb..ac605f2a 100644
--- a/ko.po
+++ b/ko.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: proxmox translations\n"
"Report-Msgid-Bugs-To: <support@proxmox.com>\n"
"POT-Creation-Date: 2025-12-19 10:53+0100\n"
-"PO-Revision-Date: 2025-12-16 23:20+0900\n"
+"PO-Revision-Date: 2026-02-04 10:52+0100\n"
"Last-Translator: angrystar170 <angrystar170@gmail.com>\n"
"Language-Team: Korean <support@proxmox.com>\n"
"Language: ko_KR\n"
@@ -12077,6 +12077,7 @@ msgid "Recovery Keys"
msgstr "복구 키"
#: proxmox-yew-comp/src/tfa/tfa_add_recovery.rs:119
+#, fuzzy
msgid "Recovery Keys for user '{}'"
msgstr "복구 키"
diff --git a/pl.po b/pl.po
index 3f195714..5fced118 100644
--- a/pl.po
+++ b/pl.po
@@ -10451,6 +10451,7 @@ msgid "On-site"
msgstr "na miejscu"
#: proxmox-yew-comp/src/apt_package_manager.rs:481
+#, fuzzy
msgid "One item"
msgid_plural "{} items"
msgstr[0] "Jeden element"
diff --git a/pt_BR.po b/pt_BR.po
index a61ad1cc..e9622c24 100644
--- a/pt_BR.po
+++ b/pt_BR.po
@@ -6700,7 +6700,7 @@ msgstr "Membro do grupo"
#: pmg-gui/js/LDAPConfig.js:449
msgid "Groups of '{0}'"
-msgstr "Grupos de '{0]'"
+msgstr "Grupos de '{0}'"
#: pve-manager/www/manager6/form/IPRefSelector.js:72
#: pve-manager/www/manager6/grid/Replication.js:298
diff --git a/tr.po b/tr.po
index 3a5dcef4..e33e717a 100644
--- a/tr.po
+++ b/tr.po
@@ -14446,6 +14446,7 @@ msgid "Shutdown timeout"
msgstr "Zaman aşımı"
#: pve-manager/www/manager6/qemu/Config.js:167
+#, fuzzy
msgid "Shutdown, apply pending changes and reboot {0}"
msgstr "Kapat, bekleyen değişiklikleri uygula ve yeniden başlat"
diff --git a/ukr.po b/ukr.po
index 0d26066d..ffbd7279 100644
--- a/ukr.po
+++ b/ukr.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: proxmox translations\n"
"Report-Msgid-Bugs-To: <support@proxmox.com>\n"
"POT-Creation-Date: 2025-12-10 15:47+0100\n"
-"PO-Revision-Date: 2025-09-19 09:44+0200\n"
+"PO-Revision-Date: 2026-02-04 11:09+0100\n"
"Last-Translator: Sviatoslav Brylenko <s.brylenko@proxmox.com>\n"
"Language-Team: Ukrainian <support@proxmox.com>\n"
"Language: uk\n"
@@ -4785,6 +4785,7 @@ msgstr "EVPN зона не має зконфігурованого VRF VNI!"
#: proxmox-datacenter-manager/ui/src/sdn/evpn/remote_tree.rs:280
#: proxmox-datacenter-manager/ui/src/sdn/evpn/vrf_tree.rs:160
#: proxmox-datacenter-manager/ui/src/sdn/evpn/vrf_tree.rs:219
+#, fuzzy
msgid "EVPN Zone {} has no VRF VNI"
msgstr "EVPN зона не має VRF VNI"
--
2.47.3
next prev parent reply other threads:[~2026-02-04 13:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-04 13:48 [PATCH proxmox-i18n v2 0/5] Fix formats of translated strings Maximiliano Sandoval
2026-02-04 13:48 ` [PATCH proxmox-i18n v2 1/5] ja: remove second plural form Maximiliano Sandoval
2026-02-04 13:48 ` Maximiliano Sandoval [this message]
2026-02-04 13:48 ` [PATCH proxmox-i18n v2 3/5] make: remove javascript-format flag from extracted strings Maximiliano Sandoval
2026-02-04 13:48 ` [PATCH proxmox-i18n v2 4/5] run make do_update Maximiliano Sandoval
2026-02-04 13:48 ` [PATCH proxmox-i18n v2 5/5] make: add check target Maximiliano Sandoval
2026-02-04 17:37 ` applied: [PATCH proxmox-i18n v2 0/5] Fix formats of translated strings Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260204134835.422155-3-m.sandoval@proxmox.com \
--to=m.sandoval@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.