Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/thirty-monkeys-marry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"lingo.dev": patch
---

Fix ICU input
16 changes: 4 additions & 12 deletions packages/cli/src/cli/cmd/i18n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ import createProcessor from "../processor";
import { withExponentialBackoff } from "../utils/exp-backoff";
import trackEvent from "../utils/observability";
import { createDeltaProcessor } from "../utils/delta";
import { isICUPluralObject } from "../loaders/xcode-xcstrings-icu";

export default new Command()
.command("i18n")
Expand Down Expand Up @@ -492,18 +491,11 @@ export default new Command()
.omitBy((value, key) => {
const targetValue = targetData[key];

// For ICU plural objects, use deep equality (excluding Symbol)
if (
isICUPluralObject(value) &&
isICUPluralObject(targetValue)
) {
return _.isEqual(
{ icu: value.icu, _meta: value._meta },
{ icu: targetValue.icu, _meta: targetValue._meta },
);
// For objects (like plural variations), use deep equality
// For primitives (strings, numbers), use strict equality
if (typeof value === "object" && value !== null) {
return _.isEqual(value, targetValue);
}

// Default strict equality for other values
return value === targetValue;
})
.size()
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cli/loaders/_types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ export interface ILoader<I, O, C = void> extends ILoaderDefinition<I, O, C> {
init(): Promise<C>;
pull(locale: string, input: I): Promise<O>;
push(locale: string, data: O): Promise<I>;
pullHints(originalInput: I): Promise<O | undefined>;
pullHints(originalInput?: I): Promise<O | undefined>;
}
6 changes: 3 additions & 3 deletions packages/cli/src/cli/loaders/_utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export function composeLoaders(
}
return result;
},
pullHints: async (originalInput) => {
pullHints: async (originalInput?) => {
let result: any = originalInput;
for (let i = 0; i < loaders.length; i++) {
const subResult = await loaders[i].pullHints?.(result);
Expand Down Expand Up @@ -67,8 +67,8 @@ export function createLoader<I, O, C>(
state.defaultLocale = locale;
return this;
},
async pullHints() {
return lDefinition.pullHints?.(state.originalInput!);
async pullHints(originalInput?: I) {
return lDefinition.pullHints?.(originalInput || state.originalInput!);
},
async pull(locale, input) {
if (!state.defaultLocale) {
Expand Down
227 changes: 0 additions & 227 deletions packages/cli/src/cli/loaders/icu-safety.spec.ts

This file was deleted.

Loading