# What changed in pseudolocale

> 10 changes in pseudolocale 2 to 3 from its official release notes, upgrade guides and advisories: 4 breaking, 3 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/pseudolocale/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## pseudolocale 3

### Breaking changes

- Node.js ≥ 24 is now required; Node 16 and 20 are EOL. (3.0.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v3.0.0)
- The package is ESM-only; the CommonJS build is gone. On Node 24, native require(esm) exposes the function at .default. (3.0.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v3.0.0)

### New APIs and options

- Adds support for right-to-left pseudolocalization. (3.1.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v3.1.0)

### Fixes and other changes

- Declarations now check clean with skipLibCheck: false, fixing the invalid export = combination in the 2.x CJS types. (3.0.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v3.0.0)

## pseudolocale 2

### Breaking changes

- An exports field was added to explicitly state which package exports are allowed. (2.0.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v2.0.0)
- The required Node.js version was bumped to v16. (2.0.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v2.0.0)

### New APIs and options

- Adds a character option to pseudolocale. (2.3.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v2.3.0)
- A bin field was added to the package, making its CLI available through package configuration. (2.0.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v2.0.0)

### Behavior and default changes

- Adds character mappings for the letter M, changing how that letter is represented in pseudolocalized output. (2.2.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v2.2.0)

### Fixes and other changes

- Corrects generated typings for ESM so developers get accurate type declarations when using the ESM output. (2.2.0) — [release notes](https://github.com/MartinCerny-awin/pseudolocale/releases/tag/v2.2.0)
