public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface
@ 2023-04-06 11:38 Noel Ullreich
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units Noel Ullreich
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Noel Ullreich @ 2023-04-06 11:38 UTC (permalink / raw)
  To: pve-devel

Since other languages translate byte units (such as 'GiB') or write them
in their own script, this patch series wraps byte units in the `gettext`
function, allowing them to be translated.

---
changes from v1:
* improved commit messages
* put hardcoded byte unit strings in a template string

Noel Ullreich (1):
  fix #4551: ui: use gettext on hardcoded byte units
  fix #4551: ui: translate byte unit in `format_size`

 www/manager6/ceph/OSD.js                 | 4 ++--
 www/manager6/form/DiskStorageSelector.js | 2 +-
 www/manager6/lxc/MPResize.js             | 2 +-
 www/manager6/qemu/HDResize.js            | 2 +-
 src/Utils.js                             | 14 ++++++++------
 5 files changed, 13 insertions(+), 11 deletions(-)

-- 
2.30.2





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

* [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units
  2023-04-06 11:38 [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich
@ 2023-04-06 11:38 ` Noel Ullreich
  2023-06-01 14:14   ` Thomas Lamprecht
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix 4551: ui: translate byte unit in `format_size` Noel Ullreich
  2023-05-22  9:08 ` [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich
  2 siblings, 1 reply; 6+ messages in thread
From: Noel Ullreich @ 2023-04-06 11:38 UTC (permalink / raw)
  To: pve-devel

Since some languages translate byte units like 'GiB' or write them in their
own script, this patch wraps units in the `gettext` function.

While most occurrences of byte strings can be translated within the
`format_size` function in `proxmox-widget-toolkit/src/Utils.js`, this patch
catches those instances that are not translated.

Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
---
 www/manager6/ceph/OSD.js                 | 4 ++--
 www/manager6/form/DiskStorageSelector.js | 2 +-
 www/manager6/lxc/MPResize.js             | 2 +-
 www/manager6/qemu/HDResize.js            | 2 +-
 www/manager6/qemu/HardwareView.js        | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js
index 2f12f94d..61fe5b06 100644
--- a/www/manager6/ceph/OSD.js
+++ b/www/manager6/ceph/OSD.js
@@ -83,7 +83,7 @@ Ext.define('PVE.CephCreateOsd', {
 			{
 			    xtype: 'numberfield',
 			    name: 'db_dev_size',
-			    fieldLabel: gettext('DB size') + ' (GiB)',
+			    fieldLabel: `${gettext('DB size')} (${gettext('GiB')})`,
 			    minValue: 1,
 			    maxValue: 128*1024,
 			    decimalPrecision: 2,
@@ -137,7 +137,7 @@ Ext.define('PVE.CephCreateOsd', {
 			{
 			    xtype: 'numberfield',
 			    name: 'wal_dev_size',
-			    fieldLabel: gettext('WAL size') + ' (GiB)',
+			    fieldLabel: `${gettext('WAL size')} (${gettext('GiB')})`,
 			    minValue: 0.5,
 			    maxValue: 128*1024,
 			    decimalPrecision: 2,
diff --git a/www/manager6/form/DiskStorageSelector.js b/www/manager6/form/DiskStorageSelector.js
index abd46deb..d408b815 100644
--- a/www/manager6/form/DiskStorageSelector.js
+++ b/www/manager6/form/DiskStorageSelector.js
@@ -148,7 +148,7 @@ Ext.define('PVE.form.DiskStorageSelector', {
 		itemId: 'disksize',
 		reference: 'disksize',
 		name: 'disksize',
-		fieldLabel: gettext('Disk size') + ' (GiB)',
+		fieldLabel: `${gettext('Disk size')} (${gettext('GiB')})`,
 		hidden: me.hideSize,
 		disabled: me.hideSize,
 		minValue: 0.001,
diff --git a/www/manager6/lxc/MPResize.js b/www/manager6/lxc/MPResize.js
index 881c037b..d560b788 100644
--- a/www/manager6/lxc/MPResize.js
+++ b/www/manager6/lxc/MPResize.js
@@ -52,7 +52,7 @@ Ext.define('PVE.window.MPResize', {
 	    maxValue: 128*1024,
 	    decimalPrecision: 3,
 	    value: '0',
-	    fieldLabel: gettext('Size Increment') + ' (GiB)',
+	    fieldLabel: `${gettext('Size Increment')} (${gettext('GiB')})`,
 	    allowBlank: false,
 	});
 
diff --git a/www/manager6/qemu/HDResize.js b/www/manager6/qemu/HDResize.js
index f9c7290d..29ff253b 100644
--- a/www/manager6/qemu/HDResize.js
+++ b/www/manager6/qemu/HDResize.js
@@ -49,7 +49,7 @@ Ext.define('PVE.window.HDResize', {
 	    maxValue: 128*1024,
 	    decimalPrecision: 3,
 	    value: '0',
-	    fieldLabel: gettext('Size Increment') + ' (GiB)',
+	    fieldLabel: `${gettext('Size Increment')} (${gettext('GiB')})`,
 	    allowBlank: false,
 	});
-- 
2.30.2





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

* [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix 4551: ui: translate byte unit in `format_size`
  2023-04-06 11:38 [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units Noel Ullreich
@ 2023-04-06 11:38 ` Noel Ullreich
  2023-06-01 14:16   ` [pve-devel] applied: " Thomas Lamprecht
  2023-05-22  9:08 ` [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich
  2 siblings, 1 reply; 6+ messages in thread
From: Noel Ullreich @ 2023-04-06 11:38 UTC (permalink / raw)
  To: pve-devel

Some languages translate byte units like 'GiB' or write them in their
own script.

By `gettext`ing the units in the `format_size` function, we can
translate the units for (almost) all of the web interface.

Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
---
 src/Utils.js | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/Utils.js b/src/Utils.js
index 5e1a6f3..529e552 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -688,21 +688,23 @@ utilities: {
     },
 
     format_size: function(size, useSI) {
-	let units = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
+	let unitsSI = [gettext('B'), gettext('KB'), gettext('MB'), gettext('GB'),
+	    gettext('TB'), gettext('PB'), gettext('EB'), gettext('ZB'), gettext('YB')];
+	let unitsIEC = [gettext('B'), gettext('KiB'), gettext('MiB'), gettext('GiB'),
+	    gettext('TiB'), gettext('PiB'), gettext('EiB'), gettext('ZiB'), gettext('YiB')];
 	let order = 0;
+	let commaDigits = 2;
 	const baseValue = useSI ? 1000 : 1024;
-	while (size >= baseValue && order < units.length) {
+	while (size >= baseValue && order < unitsSI.length) {
 	    size = size / baseValue;
 	    order++;
 	}
 
-	let unit = units[order], commaDigits = 2;
+	let unit = useSI ? unitsSI[order] : unitsIEC[order];
 	if (order === 0) {
 	    commaDigits = 0;
-	} else if (!useSI) {
-	    unit += 'i';
 	}
-	return `${size.toFixed(commaDigits)} ${unit}B`;
+	return `${size.toFixed(commaDigits)} ${unit}`;
     },
 
     SizeUnits: {
-- 
2.30.2





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

* Re: [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface
  2023-04-06 11:38 [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units Noel Ullreich
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix 4551: ui: translate byte unit in `format_size` Noel Ullreich
@ 2023-05-22  9:08 ` Noel Ullreich
  2 siblings, 0 replies; 6+ messages in thread
From: Noel Ullreich @ 2023-05-22  9:08 UTC (permalink / raw)
  To: pve-devel

Ping. Still applies

On 06-04-2023 13:38, Noel Ullreich wrote:
> Since other languages translate byte units (such as 'GiB') or write them
> in their own script, this patch series wraps byte units in the `gettext`
> function, allowing them to be translated.
>
> ---
> changes from v1:
> * improved commit messages
> * put hardcoded byte unit strings in a template string
>
> Noel Ullreich (1):
>    fix #4551: ui: use gettext on hardcoded byte units
>    fix #4551: ui: translate byte unit in `format_size`
>
>   www/manager6/ceph/OSD.js                 | 4 ++--
>   www/manager6/form/DiskStorageSelector.js | 2 +-
>   www/manager6/lxc/MPResize.js             | 2 +-
>   www/manager6/qemu/HDResize.js            | 2 +-
>   src/Utils.js                             | 14 ++++++++------
>   5 files changed, 13 insertions(+), 11 deletions(-)
>




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

* Re: [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units Noel Ullreich
@ 2023-06-01 14:14   ` Thomas Lamprecht
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Lamprecht @ 2023-06-01 14:14 UTC (permalink / raw)
  To: Proxmox VE development discussion, Noel Ullreich

Used wrong tag, this is for manager, not widget-toolkit...


Am 06/04/2023 um 13:38 schrieb Noel Ullreich:
> Since some languages translate byte units like 'GiB' or write them in their
> own script, this patch wraps units in the `gettext` function.
> 
> While most occurrences of byte strings can be translated within the
> `format_size` function in `proxmox-widget-toolkit/src/Utils.js`, this patch
> catches those instances that are not translated.
> 
> Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
> ---
>  www/manager6/ceph/OSD.js                 | 4 ++--
>  www/manager6/form/DiskStorageSelector.js | 2 +-
>  www/manager6/lxc/MPResize.js             | 2 +-
>  www/manager6/qemu/HDResize.js            | 2 +-
>  www/manager6/qemu/HardwareView.js        | 2 +-
>  5 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js
> index 2f12f94d..61fe5b06 100644
> --- a/www/manager6/ceph/OSD.js
> +++ b/www/manager6/ceph/OSD.js
> @@ -83,7 +83,7 @@ Ext.define('PVE.CephCreateOsd', {
>  			{
>  			    xtype: 'numberfield',
>  			    name: 'db_dev_size',
> -			    fieldLabel: gettext('DB size') + ' (GiB)',
> +			    fieldLabel: `${gettext('DB size')} (${gettext('GiB')})`,
>  			    minValue: 1,
>  			    maxValue: 128*1024,
>  			    decimalPrecision: 2,
> @@ -137,7 +137,7 @@ Ext.define('PVE.CephCreateOsd', {
>  			{
>  			    xtype: 'numberfield',
>  			    name: 'wal_dev_size',
> -			    fieldLabel: gettext('WAL size') + ' (GiB)',
> +			    fieldLabel: `${gettext('WAL size')} (${gettext('GiB')})`,
>  			    minValue: 0.5,
>  			    maxValue: 128*1024,
>  			    decimalPrecision: 2,
> diff --git a/www/manager6/form/DiskStorageSelector.js b/www/manager6/form/DiskStorageSelector.js
> index abd46deb..d408b815 100644
> --- a/www/manager6/form/DiskStorageSelector.js
> +++ b/www/manager6/form/DiskStorageSelector.js
> @@ -148,7 +148,7 @@ Ext.define('PVE.form.DiskStorageSelector', {
>  		itemId: 'disksize',
>  		reference: 'disksize',
>  		name: 'disksize',
> -		fieldLabel: gettext('Disk size') + ' (GiB)',
> +		fieldLabel: `${gettext('Disk size')} (${gettext('GiB')})`,
>  		hidden: me.hideSize,
>  		disabled: me.hideSize,
>  		minValue: 0.001,
> diff --git a/www/manager6/lxc/MPResize.js b/www/manager6/lxc/MPResize.js
> index 881c037b..d560b788 100644
> --- a/www/manager6/lxc/MPResize.js
> +++ b/www/manager6/lxc/MPResize.js
> @@ -52,7 +52,7 @@ Ext.define('PVE.window.MPResize', {
>  	    maxValue: 128*1024,
>  	    decimalPrecision: 3,
>  	    value: '0',
> -	    fieldLabel: gettext('Size Increment') + ' (GiB)',
> +	    fieldLabel: `${gettext('Size Increment')} (${gettext('GiB')})`,
>  	    allowBlank: false,
>  	});
>  
> diff --git a/www/manager6/qemu/HDResize.js b/www/manager6/qemu/HDResize.js
> index f9c7290d..29ff253b 100644
> --- a/www/manager6/qemu/HDResize.js
> +++ b/www/manager6/qemu/HDResize.js
> @@ -49,7 +49,7 @@ Ext.define('PVE.window.HDResize', {
>  	    maxValue: 128*1024,
>  	    decimalPrecision: 3,
>  	    value: '0',
> -	    fieldLabel: gettext('Size Increment') + ' (GiB)',
> +	    fieldLabel: `${gettext('Size Increment')} (${gettext('GiB')})`,
>  	    allowBlank: false,
>  	});

this seems to be cut-off here, missign the full context, thus I get:


Applying: fix #4551: ui: use gettext on hardcoded byte units
error: corrupt patch at line 70





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

* [pve-devel] applied: [PATCH proxmox-widget-toolkit v2 1/1] fix 4551: ui: translate byte unit in `format_size`
  2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix 4551: ui: translate byte unit in `format_size` Noel Ullreich
@ 2023-06-01 14:16   ` Thomas Lamprecht
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Lamprecht @ 2023-06-01 14:16 UTC (permalink / raw)
  To: Proxmox VE development discussion, Noel Ullreich

Am 06/04/2023 um 13:38 schrieb Noel Ullreich:
> Some languages translate byte units like 'GiB' or write them in their
> own script.
> 
> By `gettext`ing the units in the `format_size` function, we can
> translate the units for (almost) all of the web interface.
> 
> Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
> ---

-> add the v1 -> v2 changelog (filtered for the current patch) here too please

>  src/Utils.js | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
>

applied, thanks!




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

end of thread, other threads:[~2023-06-01 14:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-06 11:38 [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich
2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix #4551: ui: use gettext on hardcoded byte units Noel Ullreich
2023-06-01 14:14   ` Thomas Lamprecht
2023-04-06 11:38 ` [pve-devel] [PATCH proxmox-widget-toolkit v2 1/1] fix 4551: ui: translate byte unit in `format_size` Noel Ullreich
2023-06-01 14:16   ` [pve-devel] applied: " Thomas Lamprecht
2023-05-22  9:08 ` [pve-devel] [PATCH pve-manager, proxmox-widget-toolkit v2 0/2] fix 4551: ui: translate byte units in web interface Noel Ullreich

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