public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH proxmox-i18n v2 0/5] Fix formats of translated strings
@ 2026-02-04 13:48 Maximiliano Sandoval
  2026-02-04 13:48 ` [PATCH proxmox-i18n v2 1/5] ja: remove second plural form Maximiliano Sandoval
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Maximiliano Sandoval @ 2026-02-04 13:48 UTC (permalink / raw)
  To: pve-devel

Fix translation which would produce errors at runtime when substituting
variables when formatting the string. Also adds a msgfmt --check make target.

See commit messages.

Differences from v1:
 - Adds a check target to make
 - Fix more strings
 - Mark as fuzzy instead of marking as untranslated
 - Reword commit messages
 - Remove javascript-format flag from that one message

Maximiliano Sandoval (5):
  ja: remove second plural form
  fix strings with wrong format
  make: remove javascript-format flag from extracted strings
  run make do_update
  make: add check target

 Makefile                          |  8 +++++++
 ar.po                             |  6 +++---
 bg.po                             |  4 ++--
 ca.po                             |  3 +--
 cs.po                             |  9 ++++----
 da.po                             |  3 +--
 de.po                             |  7 ++----
 es.po                             |  3 +--
 eu.po                             |  4 ++--
 fa.po                             |  3 +--
 fr.po                             |  3 +--
 gl.po                             |  3 +--
 he.po                             |  4 ++--
 hr.po                             |  4 ++--
 hu.po                             |  5 +++--
 it.po                             |  3 +--
 ja.po                             | 36 ++++++++++++-------------------
 ka.po                             |  3 +--
 ko.po                             |  6 +++---
 nb.po                             |  3 +--
 nl.po                             |  4 ++--
 nn.po                             |  3 +--
 pl.po                             |  4 ++--
 pmg-yew-quarantine-gui.pot        |  4 ++--
 proxmox-backup.pot                |  2 +-
 proxmox-datacenter-manager-ui.pot |  4 ++--
 proxmox-mailgateway.pot           |  2 +-
 proxmox-widget-toolkit.pot        |  2 +-
 proxmox-yew-comp.pot              |  4 ++--
 proxmox-yew-widget-toolkit.pot    |  4 ++--
 pt_BR.po                          |  5 ++---
 pve-manager.pot                   |  2 +-
 pve-yew-mobile-gui.pot            |  4 ++--
 ru.po                             |  3 +--
 sl.po                             |  3 +--
 sv.po                             |  3 +--
 tr.po                             |  5 +++--
 ukr.po                            |  6 +++---
 zh_CN.po                          |  4 ++--
 zh_TW.po                          |  3 +--
 40 files changed, 87 insertions(+), 104 deletions(-)

-- 
2.47.3





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH proxmox-i18n v2 1/5] ja: remove second plural form
  2026-02-04 13:48 [PATCH proxmox-i18n v2 0/5] Fix formats of translated strings Maximiliano Sandoval
@ 2026-02-04 13:48 ` Maximiliano Sandoval
  2026-02-04 13:48 ` [PATCH proxmox-i18n v2 2/5] fix strings with wrong format Maximiliano Sandoval
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Maximiliano Sandoval @ 2026-02-04 13:48 UTC (permalink / raw)
  To: pve-devel

As per gettext docs [1] there is a single plural form for Japaneses.
Here we simply leave the plural form and remove what used to be
`msgid[1]`. Note that this used to throw a fatal warning with msgfmt
--check.

[1] https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html#index-dcngettext

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
 ja.po | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/ja.po b/ja.po
index 8e89c1cf..485b98c8 100644
--- a/ja.po
+++ b/ja.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-12-14 17:00+0900\n"
+"PO-Revision-Date: 2026-02-04 11:21+0100\n"
 "Last-Translator: ribbon <ribbon@users.osdn.me>\n"
 "Language-Team: Japanese <kde-i18n-doc@kde.org>\n"
 "Language: ja\n"
@@ -46,8 +46,7 @@ msgstr "# のワーカスレッド"
 #: pve-yew-mobile-gui/src/pages/page_node_status/dashboard_panel.rs:87
 msgid "% of one threads"
 msgid_plural "% of {n} threads"
-msgstr[0] "% 中の1つのスレッド"
-msgstr[1] "% 中の{n}個のスレッド"
+msgstr[0] "% 中の{n}個のスレッド"
 
 #: pmg-gui/js/SystemOptions.js:88
 msgid "'From:' for Admin Mail"
@@ -87,16 +86,14 @@ msgstr "/some/path"
 #: proxmox-yew-comp/src/form/pve/qemu_property/qemu_processor_property.rs:29
 msgid "1 Core"
 msgid_plural "{n} Cores"
-msgstr[0] "1コア"
-msgstr[1] "{n}コア"
+msgstr[0] "{n}コア"
 
 #: pve-yew-mobile-gui/src/pages/page_node_status/dashboard_panel.rs:80
 #: proxmox-yew-comp/src/form/pve/qemu_property/qemu_processor_property.rs:30
 #: proxmox-yew-comp/src/node_info.rs:238
 msgid "1 Socket"
 msgid_plural "{n} Sockets"
-msgstr[0] "ソケット"
-msgstr[1] "{n}ソケット"
+msgstr[0] "{n}ソケット"
 
 #: proxmox-backup/www/datastore/OptionView.js:307
 msgid "1048576 (0 disables cache)"
@@ -5660,8 +5657,7 @@ msgstr "全 remote に接続失敗。"
 #: proxmox-datacenter-manager/ui/src/dashboard/remote_panel.rs:102
 msgid "Failed to reach one of {0} remotes."
 msgid_plural "Failed to reach {n} of {0} remotes."
-msgstr[0] "{0}台中の1つのリモートに接続失敗。"
-msgstr[1] "{0}台中の{n}台のリモートに接続失敗。"
+msgstr[0] "{0}台中の{n}台のリモートに接続失敗。"
 
 #: proxmox-datacenter-manager/ui/src/dashboard/remote_panel.rs:93
 msgid "Failed to reach {0} out of {1} remotes"
@@ -10446,14 +10442,12 @@ msgstr "オンサイト"
 #: proxmox-yew-comp/src/apt_package_manager.rs:481
 msgid "One item"
 msgid_plural "{} items"
-msgstr[0] "1つのアイテム"
-msgstr[1] "{}個のアイテム"
+msgstr[0] "{}個のアイテム"
 
 #: proxmox-datacenter-manager/ui/src/dashboard/node_status_panel.rs:146
 msgid "One of {0} nodes online"
 msgid_plural "{n} of {0} nodes online"
-msgstr[0] "{0} ノードがオンライン"
-msgstr[1] "{n} 中の {0} ノードがオンライン"
+msgstr[0] "{n} 中の {0} ノードがオンライン"
 
 #: pve-yew-mobile-gui/src/pages/page_node_status/services_panel.rs:78
 msgid "One or more required services is not running"
@@ -10462,14 +10456,12 @@ msgstr "1つ以上の要求されたサービスが稼働していません"
 #: proxmox-yew-comp/src/apt_repositories.rs:867
 msgid "One repository"
 msgid_plural "{n} repositories"
-msgstr[0] "1つのリポジトリ"
-msgstr[1] "{n} 個のリポジトリ"
+msgstr[0] "{n} 個のリポジトリ"
 
 #: proxmox-datacenter-manager/ui/src/remotes/updates.rs:676
 msgid "One update pending"
 msgid_plural "{n} updates pending"
-msgstr[0] "1つのアップデートが待機中"
-msgstr[1] "{n} つのアップデートが待機中"
+msgstr[0] "{n} つのアップデートが待機中"
 
 #: pve-manager/www/manager6/data/ResourceStore.js:105
 #: pve-manager/www/manager6/dc/Health.js:108
@@ -17497,7 +17489,6 @@ msgstr "Wake-on-LAN"
 msgid "Warning"
 msgid_plural "Warnings"
 msgstr[0] "警告"
-msgstr[1] "警告"
 
 #: pve-manager/www/manager6/window/FirewallEnableEdit.js:28
 msgid "Warning: Firewall still disabled at datacenter level!"
-- 
2.47.3





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH proxmox-i18n v2 2/5] fix strings with wrong format
  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
  2026-02-04 13:48 ` [PATCH proxmox-i18n v2 3/5] make: remove javascript-format flag from extracted strings Maximiliano Sandoval
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Maximiliano Sandoval @ 2026-02-04 13:48 UTC (permalink / raw)
  To: pve-devel

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





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH proxmox-i18n v2 3/5] make: remove javascript-format flag from extracted strings
  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 ` [PATCH proxmox-i18n v2 2/5] fix strings with wrong format Maximiliano Sandoval
@ 2026-02-04 13:48 ` 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
  4 siblings, 0 replies; 6+ messages in thread
From: Maximiliano Sandoval @ 2026-02-04 13:48 UTC (permalink / raw)
  To: pve-devel

This provides a hint to gettext that the string uses javascript format
[1], however the format described here does not match how
Ext.String.format operates.

Certain editors, e.g. GTranslator, might refuse to translate a string if
the format on msgstr is broken, hence it is preferable to not have this
flag.

[1] https://www.gnu.org/software/gettext/manual/html_node/javascript_002dformat.html

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
 Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Makefile b/Makefile
index 2e1312ea..31c49432 100644
--- a/Makefile
+++ b/Makefile
@@ -210,6 +210,7 @@ messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot
 	  --msgid-bugs-address="<support@proxmox.com>" \
 	  --copyright-holder="Copyright (C) Proxmox Server Solutions GmbH <support@proxmox.com> & the translation contributors." \
 	  --output $@
+	awk '!/#, javascript-format/' messages.pot > tmpfile && mv tmpfile messages.pot
 
 .PHONY: distclean
 distclean: clean
-- 
2.47.3





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH proxmox-i18n v2 4/5] run make do_update
  2026-02-04 13:48 [PATCH proxmox-i18n v2 0/5] Fix formats of translated strings Maximiliano Sandoval
                   ` (2 preceding siblings ...)
  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 ` Maximiliano Sandoval
  2026-02-04 13:48 ` [PATCH proxmox-i18n v2 5/5] make: add check target Maximiliano Sandoval
  4 siblings, 0 replies; 6+ messages in thread
From: Maximiliano Sandoval @ 2026-02-04 13:48 UTC (permalink / raw)
  To: pve-devel

To remove the javascript-format flags.

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
 ar.po                             | 4 ++--
 bg.po                             | 4 ++--
 ca.po                             | 3 +--
 cs.po                             | 3 +--
 da.po                             | 3 +--
 de.po                             | 3 +--
 es.po                             | 3 +--
 eu.po                             | 4 ++--
 fa.po                             | 3 +--
 fr.po                             | 3 +--
 gl.po                             | 3 +--
 he.po                             | 4 ++--
 hr.po                             | 3 +--
 hu.po                             | 4 ++--
 it.po                             | 3 +--
 ja.po                             | 6 +++---
 ka.po                             | 3 +--
 ko.po                             | 3 +--
 nb.po                             | 3 +--
 nl.po                             | 4 ++--
 nn.po                             | 3 +--
 pl.po                             | 3 +--
 pmg-yew-quarantine-gui.pot        | 4 ++--
 proxmox-backup.pot                | 2 +-
 proxmox-datacenter-manager-ui.pot | 4 ++--
 proxmox-mailgateway.pot           | 2 +-
 proxmox-widget-toolkit.pot        | 2 +-
 proxmox-yew-comp.pot              | 4 ++--
 proxmox-yew-widget-toolkit.pot    | 4 ++--
 pt_BR.po                          | 3 +--
 pve-manager.pot                   | 2 +-
 pve-yew-mobile-gui.pot            | 4 ++--
 ru.po                             | 3 +--
 sl.po                             | 3 +--
 sv.po                             | 3 +--
 tr.po                             | 4 ++--
 ukr.po                            | 3 +--
 zh_CN.po                          | 4 ++--
 zh_TW.po                          | 3 +--
 39 files changed, 54 insertions(+), 75 deletions(-)

diff --git a/ar.po b/ar.po
index 4f51419f..d4cd44f3 100644
--- a/ar.po
+++ b/ar.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2026-02-04 10:38+0100\n"
 "Last-Translator: \n"
 "Language-Team: Arabic <support@proxmox.com>\n"
@@ -19107,7 +19107,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0} إلى {1} ({2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format, fuzzy
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{0}٪ من {1}"
 
diff --git a/bg.po b/bg.po
index 20ac9ea8..13679a6e 100644
--- a/bg.po
+++ b/bg.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: proxmox-backup e97132bb64a203535c28214c1cec4c1e49cf9009\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-05-05 14:24+0300\n"
 "Last-Translator: Kalin Sabevski <kalin_sabevski@yahoo.com>\n"
 "Language-Team: Bulgarian <support@proxmox.com>\n"
@@ -19232,7 +19232,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% от {1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{0}% от {1}"
 
diff --git a/ca.po b/ca.po
index 5fe508a3..6d82aa85 100644
--- a/ca.po
+++ b/ca.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2023-08-23 19:28+0200\n"
 "Last-Translator: Laura Mora i Aubert <blackhold@lamardebits.org>\n"
 "Language-Team: Catalan <support@proxmox.com>\n"
@@ -19184,7 +19184,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0} de {1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% de {1}"
 
diff --git a/cs.po b/cs.po
index 2d779ead..433f9f4e 100644
--- a/cs.po
+++ b/cs.po
@@ -11,7 +11,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+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"
@@ -18885,7 +18885,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} z {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% z {1}"
 
diff --git a/da.po b/da.po
index 474d9e75..cadc3c8a 100644
--- a/da.po
+++ b/da.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2012-05-29 07:28+0200\n"
 "Last-Translator: Michael Svendsen <michael.svendsen@nordicmind.com>\n"
 "Language-Team: Danish <support@proxmox.com>\n"
@@ -19942,7 +19942,6 @@ msgid "{0}% ({1} of {2})"
 msgstr ""
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr ""
 
diff --git a/de.po b/de.po
index 3292214a..0e03e800 100644
--- a/de.po
+++ b/de.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-11-25 11:07+0100\n"
 "Last-Translator: Proxmox Support Team <support@proxmox.com>\n"
 "Language-Team: German <support@proxmox.com>\n"
@@ -18953,7 +18953,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} von {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% der {1}"
 
diff --git a/es.po b/es.po
index 65697d18..16ccdca3 100644
--- a/es.po
+++ b/es.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-12-15 11:03+0100\n"
 "Last-Translator: Maximiliano Sandoval <m.sandoval@proxmox.com>\n"
 "Language-Team: Spanish <support@proxmox.com>\n"
@@ -18859,7 +18859,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} de {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% de {1}"
 
diff --git a/eu.po b/eu.po
index 887fe113..0447eb3f 100644
--- a/eu.po
+++ b/eu.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2022-01-22 00:11+0100\n"
 "Last-Translator: Eneko Lacunza <elacunza@binovo.es>\n"
 "Language-Team: Euskera <support@proxmox.com>\n"
@@ -19449,7 +19449,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "%{0} {1}-(e)tik"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "%{0} {1}-(e)tik"
 
diff --git a/fa.po b/fa.po
index b9f0d37a..09c45ebe 100644
--- a/fa.po
+++ b/fa.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2014-06-23 06:07+0200\n"
 "Last-Translator: Jerry Afr <hamedwise@gmail.com>\n"
 "Language-Team: Persian <support@proxmox.com>\n"
@@ -19979,7 +19979,6 @@ msgid "{0}% ({1} of {2})"
 msgstr ""
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr ""
 
diff --git a/fr.po b/fr.po
index bb1b4f54..120295eb 100644
--- a/fr.po
+++ b/fr.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2026-01-06 13:18+0100\n"
 "Last-Translator: Davy Defaud <davy.defaud@free.fr>\n"
 "Language-Team: French <support@proxmox.com>\n"
@@ -18979,7 +18979,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0} % ({1} sur {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0} % de {1}"
 
diff --git a/gl.po b/gl.po
index 519f5a4c..083c4696 100644
--- a/gl.po
+++ b/gl.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2015-10-22 16:28+0200\n"
 "Last-Translator: Diego Blanco Girón <diego.blanco@treitos.com>\n"
 "Language-Team: Galego <diego.blanco@treitos.com>\n"
@@ -20008,7 +20008,6 @@ msgid "{0}% ({1} of {2})"
 msgstr ""
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr ""
 
diff --git a/he.po b/he.po
index d3e15645..b8b395da 100644
--- a/he.po
+++ b/he.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2019-06-13 11:09+0200\n"
 "Last-Translator: Condless <info@condless.com>\n"
 "Language-Team: Hebrew <support@proxmox.com>\n"
@@ -19901,7 +19901,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0} עד {1} ({2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{0}% מ {1}"
 
diff --git a/hr.po b/hr.po
index d1f82dda..b52ae4dc 100644
--- a/hr.po
+++ b/hr.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: Tue Jun 27 17:20:49 2023\n"
 "Last-Translator: STIPE TABAK <EMAIL@ADDRESS>\n"
 "Language-Team: Croatian <support@proxmox.com>\n"
@@ -19339,7 +19339,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% od {1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% od {1}"
 
diff --git a/hu.po b/hu.po
index 34057044..cf061a11 100644
--- a/hu.po
+++ b/hu.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2020-02-27 21:00+0100\n"
 "Last-Translator: Csanádi Norbert <csana@csana.hu>\n"
 "Language-Team: Hungarian <support@proxmox.com>\n"
@@ -19730,7 +19730,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% az {1} -ből"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{0}% az {1} -ből"
 
diff --git a/it.po b/it.po
index c18ac072..0d799730 100644
--- a/it.po
+++ b/it.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-12-04 11:21+0100\n"
 "Last-Translator: Proxmox Support Team <support@proxmox.com>\n"
 "Language-Team: Italian <support@proxmox.com>\n"
@@ -18666,7 +18666,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} di {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% di {1}"
 
diff --git a/ja.po b/ja.po
index 0ec205a5..09b06171 100644
--- a/ja.po
+++ b/ja.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2026-02-04 11:21+0100\n"
 "Last-Translator: ribbon <ribbon@users.osdn.me>\n"
 "Language-Team: Japanese <kde-i18n-doc@kde.org>\n"
@@ -1040,7 +1040,8 @@ msgstr "アプリケーション"
 
 #: pve-manager/www/manager6/VNCConsole.js:42
 msgid "Application container detected - console might not be fully functional."
-msgstr "アプリケーションコンテナを検出 - コンソールは完全に機能しないかもしれない。"
+msgstr ""
+"アプリケーションコンテナを検出 - コンソールは完全に機能しないかもしれない。"
 
 #: proxmox-backup/www/window/TrafficControlEdit.js:290
 msgid "Applies to all users"
@@ -18767,7 +18768,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} of {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{1} の {0}%"
 
diff --git a/ka.po b/ka.po
index bf1566ce..ca892a88 100644
--- a/ka.po
+++ b/ka.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: proxmox-backup f3c47efb3976ab928e575961f7a8b0f7ca6027d6\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-10-27 13:28+0100\n"
 "Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n"
 "Language-Team: Georgian <support@proxmox.com>\n"
@@ -18882,7 +18882,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} {2}-დან)"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% of {1}"
 
diff --git a/ko.po b/ko.po
index ac605f2a..c87e2bc5 100644
--- a/ko.po
+++ b/ko.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\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"
@@ -18727,7 +18727,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({2} 중 {1})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% / {1}"
 
diff --git a/nb.po b/nb.po
index 432bc2a1..df700d55 100644
--- a/nb.po
+++ b/nb.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2016-02-25 21:51+0100\n"
 "Last-Translator: Jostein Hove-Henriksen <jostein@hove-henriksen.no>\n"
 "Language-Team: Norwegian Bokmål <support@proxmox.com>\n"
@@ -19999,7 +19999,6 @@ msgid "{0}% ({1} of {2})"
 msgstr ""
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr ""
 
diff --git a/nl.po b/nl.po
index c4da67cd..29322b2f 100644
--- a/nl.po
+++ b/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pve-manager e7dc4402223cffef6b5ae34e7fc00401198b98e1\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2022-08-19 14:00+0200\n"
 "Last-Translator: \n"
 "Language-Team: Dutch <support@proxmox.com>\n"
@@ -19450,7 +19450,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% van {1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{0}% van {1}"
 
diff --git a/nn.po b/nn.po
index 1c58a3ce..27cb20f2 100644
--- a/nn.po
+++ b/nn.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2016-02-25 21:51+0100\n"
 "Last-Translator: Jostein Hove-Henriksen <jostein@hove-henriksen.no>\n"
 "Language-Team: Norwegian Nynorsk <support@proxmox.com>\n"
@@ -19999,7 +19999,6 @@ msgid "{0}% ({1} of {2})"
 msgstr ""
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr ""
 
diff --git a/pl.po b/pl.po
index 5fced118..402d408c 100644
--- a/pl.po
+++ b/pl.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-12-11 05:38+0100\n"
 "Last-Translator: Daniel Koć <daniel@xn--ko-wla.pl>\n"
 "Language-Team: Polish <support@proxmox.com>\n"
@@ -18792,7 +18792,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} z {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% z {1}"
 
diff --git a/pmg-yew-quarantine-gui.pot b/pmg-yew-quarantine-gui.pot
index 8e98b1c2..f5fda722 100644
--- a/pmg-yew-quarantine-gui.pot
+++ b/pmg-yew-quarantine-gui.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: pmg-yew-quarantine-gui b86b5b63ed94b01e0378a42f11467fd1e5851997\n"
+"Project-Id-Version: pmg-yew-quarantine-gui 676af6674640bee594ce5d630952e0fb44035146\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 14:47+0000\n"
+"POT-Creation-Date: 2026-02-04 13:36+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/proxmox-backup.pot b/proxmox-backup.pot
index ea902270..d82337f1 100644
--- a/proxmox-backup.pot
+++ b/proxmox-backup.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: proxmox-backup 5e3f7e26a70d13f801d50cd968bff9da2d2ef54f\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/proxmox-datacenter-manager-ui.pot b/proxmox-datacenter-manager-ui.pot
index 7de016e1..58bac8f5 100644
--- a/proxmox-datacenter-manager-ui.pot
+++ b/proxmox-datacenter-manager-ui.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: proxmox-datacenter-manager-ui b86b5b63ed94b01e0378a42f11467fd1e5851997\n"
+"Project-Id-Version: proxmox-datacenter-manager-ui 676af6674640bee594ce5d630952e0fb44035146\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 14:47+0000\n"
+"POT-Creation-Date: 2026-02-04 13:36+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/proxmox-mailgateway.pot b/proxmox-mailgateway.pot
index b65f2111..aa45e340 100644
--- a/proxmox-mailgateway.pot
+++ b/proxmox-mailgateway.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: proxmox-mailgateway "
 "10c00f8a5a27a86693ccfeab8c6ca5e610640b38\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/proxmox-widget-toolkit.pot b/proxmox-widget-toolkit.pot
index e5c1d7a7..0f1516cc 100644
--- a/proxmox-widget-toolkit.pot
+++ b/proxmox-widget-toolkit.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: proxmox-widget-toolkit "
 "e0798f947fb727ce57f3423e782465a3c9115cfe\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/proxmox-yew-comp.pot b/proxmox-yew-comp.pot
index 07a0c110..ad2deaf3 100644
--- a/proxmox-yew-comp.pot
+++ b/proxmox-yew-comp.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: proxmox-yew-comp b86b5b63ed94b01e0378a42f11467fd1e5851997\n"
+"Project-Id-Version: proxmox-yew-comp 676af6674640bee594ce5d630952e0fb44035146\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 14:47+0000\n"
+"POT-Creation-Date: 2026-02-04 13:36+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/proxmox-yew-widget-toolkit.pot b/proxmox-yew-widget-toolkit.pot
index 1174b9e5..1a40672f 100644
--- a/proxmox-yew-widget-toolkit.pot
+++ b/proxmox-yew-widget-toolkit.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: proxmox-yew-widget-toolkit b86b5b63ed94b01e0378a42f11467fd1e5851997\n"
+"Project-Id-Version: proxmox-yew-widget-toolkit 676af6674640bee594ce5d630952e0fb44035146\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 14:47+0000\n"
+"POT-Creation-Date: 2026-02-04 13:36+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/pt_BR.po b/pt_BR.po
index e9622c24..d37af9aa 100644
--- a/pt_BR.po
+++ b/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2021-08-25 12:21+0000\n"
 "Last-Translator: Claudio Filho F Filho <filhocf@gmail.com>\n"
 "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
@@ -19600,7 +19600,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% de {1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% de {1}"
 
diff --git a/pve-manager.pot b/pve-manager.pot
index 95cb8958..bb8905b1 100644
--- a/pve-manager.pot
+++ b/pve-manager.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pve-manager bcb017aa514164b0c2e4312b089e885c90a72543\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/pve-yew-mobile-gui.pot b/pve-yew-mobile-gui.pot
index e88281da..a45795b2 100644
--- a/pve-yew-mobile-gui.pot
+++ b/pve-yew-mobile-gui.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: pve-yew-mobile-gui b86b5b63ed94b01e0378a42f11467fd1e5851997\n"
+"Project-Id-Version: pve-yew-mobile-gui 676af6674640bee594ce5d630952e0fb44035146\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 14:47+0000\n"
+"POT-Creation-Date: 2026-02-04 13:36+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/ru.po b/ru.po
index 42238b2f..4943588a 100644
--- a/ru.po
+++ b/ru.po
@@ -6,7 +6,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2026-01-26 19:10+0300\n"
 "Last-Translator: Sergey Kazorin <translation-team@basealt.ru>\n"
 "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@@ -18921,7 +18921,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} из {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% of {1}"
 
diff --git a/sl.po b/sl.po
index e0b6c436..ac550469 100644
--- a/sl.po
+++ b/sl.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2023-01-21 17:57+0100\n"
 "Last-Translator: PERFTECH d.o.o. <sio-podpora@perftech.si>\n"
 "Language-Team: Slovenia <support@proxmox.com>\n"
@@ -19411,7 +19411,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% od {1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% od {1}"
 
diff --git a/sv.po b/sv.po
index 79e0e591..db52bba9 100644
--- a/sv.po
+++ b/sv.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-12-01 10:53+0100\n"
 "Last-Translator: Daniel Nylander <github@danielnylander.se>\n"
 "Language-Team: Swedish <support@proxmox.com>\n"
@@ -18830,7 +18830,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} av {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% av {1}"
 
diff --git a/tr.po b/tr.po
index e33e717a..fce35572 100644
--- a/tr.po
+++ b/tr.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2022-05-17 11:42+0200\n"
 "Last-Translator: Oguz Bektas <o.bektas@proxmox.com>\n"
 "Language-Team: Turkish <support@proxmox.com>\n"
@@ -19423,7 +19423,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{1}'in %{0}'ı"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{1}'in %{0}'ı"
 
diff --git a/ukr.po b/ukr.po
index ffbd7279..c79ed2e7 100644
--- a/ukr.po
+++ b/ukr.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\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"
@@ -19022,7 +19022,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}% ({1} з {2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% of {1}"
 
diff --git a/zh_CN.po b/zh_CN.po
index 70ae51ce..59d81b82 100644
--- a/zh_CN.po
+++ b/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 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"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-07-19 10:22+0800\n"
 "Last-Translator: Try. <rov7@qq.com>\n"
 "Language-Team: Chinese (simplified) <tianmotrue@163.com>\n"
@@ -18969,7 +18969,7 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}%的{1}"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, fuzzy, javascript-format
+#, fuzzy
 msgid "{0}% of {1}"
 msgstr "{0}%的{1}"
 
diff --git a/zh_TW.po b/zh_TW.po
index 1207b189..219809d9 100644
--- a/zh_TW.po
+++ b/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pve-manager 3.0\n"
 "Report-Msgid-Bugs-To: <support@proxmox.com>\n"
-"POT-Creation-Date: 2025-12-10 15:47+0100\n"
+"POT-Creation-Date: 2026-02-04 14:36+0100\n"
 "PO-Revision-Date: 2025-12-08 20:47+0800\n"
 "Last-Translator: Jason Cheng <jason@jason.tools>\n"
 "Language-Team: Traditional Chinese (Taiwan) <support@proxmox.com>\n"
@@ -18604,7 +18604,6 @@ msgid "{0}% ({1} of {2})"
 msgstr "{0}%({1}/{2})"
 
 #: proxmox-widget-toolkit/src/Utils.js:1121
-#, javascript-format
 msgid "{0}% of {1}"
 msgstr "{0}% of {1}"
 
-- 
2.47.3





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH proxmox-i18n v2 5/5] make: add check target
  2026-02-04 13:48 [PATCH proxmox-i18n v2 0/5] Fix formats of translated strings Maximiliano Sandoval
                   ` (3 preceding siblings ...)
  2026-02-04 13:48 ` [PATCH proxmox-i18n v2 4/5] run make do_update Maximiliano Sandoval
@ 2026-02-04 13:48 ` Maximiliano Sandoval
  4 siblings, 0 replies; 6+ messages in thread
From: Maximiliano Sandoval @ 2026-02-04 13:48 UTC (permalink / raw)
  To: pve-devel

This could eventually be baked as part of other targets in the future.
At the moment there are no warnings, but if one uses a newer version of
gettext there will be errors on ru.po and ukr.po.

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
 Makefile | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Makefile b/Makefile
index 31c49432..86bd7235 100644
--- a/Makefile
+++ b/Makefile
@@ -231,3 +231,10 @@ upload-pdm: $(PDM_I18N_DEB)
 	tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pdm --dist $(UPLOAD_DIST)
 
 upload: upload-pve upload-pmg upload-pbs upload-pdm
+
+.PHONY: check-%
+check-%:
+	msgfmt --check $*.po
+
+.PHONY: check
+check: $(addprefix check-, $(LINGUAS))
-- 
2.47.3





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-02-04 13:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [PATCH proxmox-i18n v2 2/5] fix strings with wrong format Maximiliano Sandoval
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal