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]