From 4b8b2a79e667a2959fea230b4bb897d2ed13bd08 Mon Sep 17 00:00:00 2001 From: Kepro Date: Wed, 29 Nov 2023 13:56:47 +0100 Subject: [PATCH] fix(cli): sorting issue when different locales are used on host machines (#1808) --- packages/cli/src/api/catalog.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/api/catalog.ts b/packages/cli/src/api/catalog.ts index bf290786b..25afaf0de 100644 --- a/packages/cli/src/api/catalog.ts +++ b/packages/cli/src/api/catalog.ts @@ -338,11 +338,15 @@ function orderByOrigin(messages: T): T { } export function orderByMessage(messages: T): T { + // hardcoded en-US locale to have consistent sorting + // @see https://github.com/lingui/js-lingui/pull/1808 + const collator = new Intl.Collator("en-US") + return Object.keys(messages) .sort((a, b) => { const aMsg = messages[a].message || "" const bMsg = messages[b].message || "" - return aMsg.localeCompare(bMsg) + return collator.compare(aMsg, bMsg) }) .reduce((acc, key) => { ;(acc as any)[key] = messages[key]