From 7b6b0dbb78e32dc490bb78e780c47a6d410bf801 Mon Sep 17 00:00:00 2001 From: Ahmed Ejaz Date: Thu, 29 Aug 2024 03:36:15 +0500 Subject: [PATCH 1/2] 12815: use en formatting for unit value conversion --- app/models/spree/product.rb | 3 ++- app/services/weights_and_measures.rb | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index d484b6d1236..f3e86e87d16 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -266,7 +266,8 @@ def variant_unit_with_scale scale_clean = ActiveSupport::NumberHelper.number_to_rounded(variant_unit_scale, precision: nil, significant: false, - strip_insignificant_zeros: true) + strip_insignificant_zeros: true, + locale: :en) [variant_unit, scale_clean].compact_blank.join("_") end diff --git a/app/services/weights_and_measures.rb b/app/services/weights_and_measures.rb index 170dacb2088..e285a0baaca 100644 --- a/app/services/weights_and_measures.rb +++ b/app/services/weights_and_measures.rb @@ -26,9 +26,15 @@ def system def self.variant_unit_options available_units_sorted.flat_map do |measurement, measurement_info| measurement_info.filter_map do |scale, unit_info| + # Our code is based upon English based number formatting + # Some language locales like +hu+ uses a comma(,) for decimal separator + # While in English, decimal separator is represented by a period. + # e.g. en: 0.001, hu: 0,001 + # Hence the results become "weight_0,001" for hu while or code recognizes "weight_0.001" scale_clean = ActiveSupport::NumberHelper.number_to_rounded(scale, precision: nil, significant: false, - strip_insignificant_zeros: true) + strip_insignificant_zeros: true, + locale: :en) [ "#{I18n.t(measurement)} (#{unit_info['name']})", # Label (eg "Weight (g)") "#{measurement}_#{scale_clean}", # Scale ID (eg "weight_1") From 54252f5444b0706344a70e60af71662a5ce34ccc Mon Sep 17 00:00:00 2001 From: David Cook Date: Thu, 29 Aug 2024 09:42:59 +1000 Subject: [PATCH 2/2] Add comment --- app/models/spree/product.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index f3e86e87d16..088dd48f62b 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -263,6 +263,7 @@ def ensure_standard_variant # Format as per WeightsAndMeasures (todo: re-orgnaise maybe after product/variant refactor) def variant_unit_with_scale + # Our code is based upon English based number formatting with a period `.` scale_clean = ActiveSupport::NumberHelper.number_to_rounded(variant_unit_scale, precision: nil, significant: false,