From 410dbbc8b1962dd5625a59070e7ca4ee1f5def04 Mon Sep 17 00:00:00 2001 From: Sid Vishnoi <8426945+sidvishnoi@users.noreply.github.com> Date: Sat, 29 Jul 2023 17:24:58 +0530 Subject: [PATCH] Add Indian numbering format (#1412) --- packages/loot-core/src/shared/util.test.ts | 10 ++++++++++ packages/loot-core/src/shared/util.ts | 6 ++++++ upcoming-release-notes/1412.md | 6 ++++++ 3 files changed, 22 insertions(+) create mode 100644 upcoming-release-notes/1412.md diff --git a/packages/loot-core/src/shared/util.test.ts b/packages/loot-core/src/shared/util.test.ts index 019b51c34..ea42f2532 100644 --- a/packages/loot-core/src/shared/util.test.ts +++ b/packages/loot-core/src/shared/util.test.ts @@ -44,6 +44,16 @@ describe('utility functions', () => { expect(formatter.format(Number('1234.56'))).toBe('1,235'); }); + test('number formatting works with comma-dot-in format', () => { + setNumberFormat({ format: 'comma-dot-in', hideFraction: false }); + let formatter = getNumberFormat().formatter; + expect(formatter.format(Number('1234567.89'))).toBe('12,34,567.89'); + + setNumberFormat({ format: 'comma-dot-in', hideFraction: true }); + formatter = getNumberFormat().formatter; + expect(formatter.format(Number('1234567.89'))).toBe('12,34,568'); + }); + test('number formatting works with dot-comma format', () => { setNumberFormat({ format: 'dot-comma', hideFraction: false }); let formatter = getNumberFormat().formatter; diff --git a/packages/loot-core/src/shared/util.ts b/packages/loot-core/src/shared/util.ts index e28d1d4c8..eedbceb87 100644 --- a/packages/loot-core/src/shared/util.ts +++ b/packages/loot-core/src/shared/util.ts @@ -188,6 +188,7 @@ export let numberFormats = [ { value: 'dot-comma', label: '1.000,33', labelNoFraction: '1.000' }, { value: 'space-comma', label: '1 000,33', labelNoFraction: '1 000' }, { value: 'space-dot', label: '1 000.33', labelNoFraction: '1 000' }, + { value: 'comma-dot-in', label: '1,00,000.33', labelNoFraction: '1,00,000' }, ] as const; let numberFormat: { @@ -220,6 +221,11 @@ export function setNumberFormat({ format, hideFraction }) { regex = /[^-0-9.]/g; separator = '.'; break; + case 'comma-dot-in': + locale = 'en-IN'; + regex = /[^-0-9.]/g; + separator = '.'; + break; case 'comma-dot': default: locale = 'en-US'; diff --git a/upcoming-release-notes/1412.md b/upcoming-release-notes/1412.md new file mode 100644 index 000000000..a194298bc --- /dev/null +++ b/upcoming-release-notes/1412.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [sidvishnoi] +--- + +Add Indian numbering format (lakh, crore) -- GitLab