i18n-ai-translate
Version:
AI-powered localization CLI, Node library, and GitHub Action. Translate i18next JSON, Gettext PO, Java .properties, and iOS .strings with ChatGPT, Claude, Gemini, or local Ollama models.
26 lines • 930 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../constants");
const flat_1 = require("flat");
const JSONAdapter = {
extensions: [".json"],
name: "json",
read(raw) {
const parsed = JSON.parse(raw);
const flat = (0, flat_1.flatten)(parsed, {
delimiter: constants_1.FLATTEN_DELIMITER,
});
return { flat, sidecar: { kind: "json" } };
},
write(translated) {
const unflattened = (0, flat_1.unflatten)(translated, {
delimiter: constants_1.FLATTEN_DELIMITER,
});
// Matches the historical `JSON.stringify(..., null, 4) + "\n"`
// shape from translate_file.ts — any change here becomes a
// diff in every user's output.
return `${JSON.stringify(unflattened, null, 4)}\n`;
},
};
exports.default = JSONAdapter;
//# sourceMappingURL=json_adapter.js.map