# vue-i18n

> Internationalization plugin for Vue.js

Latest version **11.4.10** (published 2026-08-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install vue-i18n
pnpm add vue-i18n
yarn add vue-i18n
bun add vue-i18n
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 11.4.10 |
| Published | 2026-08-25 |
| First published | 2014-05-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >= 22 |
| Dependencies | 4 |
| Unpacked size | 1.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 2712 |
| Author | kazuya kawaguchi |
| Maintainers | kazupon |
| Keywords | i18n, internationalization, intlify, plugin, vue, vue.js |

## Links

- npm: https://www.npmjs.com/package/vue-i18n
- Repository: https://github.com/intlify/vue-i18n
- Homepage: https://github.com/intlify/vue-i18n/tree/master/packages/vue-i18n#readme
- Issues: https://github.com/intlify/vue-i18n/issues
- Funding: https://github.com/sponsors/kazupon
- npm.io page: https://npm.io/package/vue-i18n

## Dependencies (4)

- [@intlify/shared](https://npm.io/package/@intlify/shared.md) 11.4.10
- [@vue/devtools-api](https://npm.io/package/@vue/devtools-api.md) ^6.5.0
- [@intlify/core-base](https://npm.io/package/@intlify/core-base.md) 11.4.10
- [@intlify/devtools-types](https://npm.io/package/@intlify/devtools-types.md) 11.4.10

## Alternatives

- [messageformat](https://npm.io/package/messageformat.md) — 329.7K weekly downloads
- [@mintlify/scraping](https://npm.io/package/@mintlify/scraping.md) — 294.8K weekly downloads
- [@mintlify/previewing](https://npm.io/package/@mintlify/previewing.md) — 209.5K weekly downloads
- [@mintlify/prebuild](https://npm.io/package/@mintlify/prebuild.md) — 209.5K weekly downloads
- [@mintlify/link-rot](https://npm.io/package/@mintlify/link-rot.md) — 206.3K weekly downloads

## Recent versions

- 11.4.10 (latest) — 2026-08-25
- 12.0.0-alpha.4 (next) — 2026-05-17
- 9.14.5 (stable9) — 2025-07-16
- 10.0.8 (legacy10) — 2025-07-16
- 11.1.10 (stable) — 2025-07-16
- 9.3.0-beta.27 (beta) — 2023-08-30
- 9.3.0-beta.14-77e850b (edge) — 2023-01-10
- 8.28.2 (legacy) — 2022-10-31
- 9.2.0-alpha.9 (alpha) — 2021-07-24
- 9.0.0-rc.9 (rc) — 2021-02-26
- 11.4.9 — 2026-08-23
- 11.4.8 — 2026-07-26
- 11.4.7 — 2026-07-20
- 11.4.6 — 2026-06-18
- 11.4.5 — 2026-06-05
- … 391 more at https://npm.io/package/vue-i18n/versions

## README

# vue-i18n

Internationalization plugin for Vue.js

## Which dist file to use?

### From CDN or without a Bundler

- **`vue-i18n(.runtime).global(.prod).js`**:

  - For direct use via `<script src="...">` in the browser. Exposes the `VueI18n` global
  - Note that global builds are not [UMD](https://github.com/umdjs/umd) builds. They are built as [IIFEs](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) and is only meant for direct use via `<script src="...">`
  - In-browser locale messages compilation:
    - **`vue-i18n.global.js`** is the "full" build that includes both the compiler and the runtime so it supports compiling locale messages on the fly
    - **`vue-i18n.runtime.global.js`** contains only the runtime and requires locale messages to be pre-compiled during a build step
  - Inlines internal the bellow packages - i.e. it’s a single file with no dependencies on other files. This means you **must** import everything from this file and this file only to ensure you are getting the same instance of code
    - `@intlify/shared`
    - `@intlify/message-compiler`
    - `@intlify/core`
  - Contains hard-coded prod/dev branches, and the prod build is pre-minified. Use the `*.prod.js` files for production

- **`vue-i18n(.runtime).esm-browser(.prod).js`**:
  - For usage via native ES modules imports (in browser via `<script type="module">`)
  - Shares the same runtime compilation, dependency inlining and hard-coded prod/dev behavior with the global build

### With a Bundler

- **`vue-i18n(.runtime).esm-bundler.js`**:
  - For use with bundlers like `webpack`, `rollup` and `parcel`
  - Leaves prod/dev branches with `process.env.NODE_ENV` guards (must be replaced by bundler)
  - Does not ship minified builds (to be done together with the rest of the code after bundling)
  - Imports dependencies (e.g. `@intlify/core-base`, `@intlify/message-compiler`)
    - Imported dependencies are also `esm-bundler` builds and will in turn import their dependencies (e.g. `@intlify/message-compiler` imports `@intlify/shared`)
    - This means you **can** install/import these deps individually without ending up with different instances of these dependencies, but you must make sure they all resolve to the same version
  - In-browser locale messages compilation:
    - **`vue-i18n.runtime.esm-bundler.js` (default)** is runtime only, and requires all locale messages to be pre-compiled. This is the default entry for bundlers (via `module` field in `package.json`) because when using a bundler templates are typically pre-compiled (e.g. in `*.json` files)
    - **`vue-i18n.esm-bundler.js`**: includes the runtime compiler. Use this if you are using a bundler but still want locale messages compilation (e.g. templates via inline JavaScript strings)

### For Node.js (Server-Side)

- **`vue-i18n.cjs(.prod).js`**:
  - For CommonJS usage in Node.js
  - For use in Node.js via `require()`
  - If you bundle your app with webpack with `target: 'node'` and properly externalize `vue-i18n`, this is the build that will be loaded
  - The dev/prod files are pre-built, but the appropriate file is automatically required based on `process.env.NODE_ENV`

- **`vue-i18n(.runtime).node.mjs`**:
  - For ES Moudles usage in Node.js
  - For use in Node.js via `import`
  - The dev/prod files are pre-built, but the appropriate file is automatically required based on `process.env.NODE_ENV`
  - This module is proxy module of `vue-i18n(.runtime).mjs`
    - **`vue-i18n.runtime.node.mjs`**: is runtime only
    - **`vue-i18n.node.mjs`**: includes the runtime compiler

> NOTE: ES Modules will be the future of the Node.js module system. The `vue-i18n.cjs(.prod).js` will be deprecated in the future. We recommend you would use `vue-i18n(.runtime).node.mjs`. 9.3+


## For Bundler feature flags

### Build Feature Flags

The `esm-bundler` builds now exposes global feature flags that can be overwritten at compile time:

- `__VUE_I18N_FULL_INSTALL__` (enable/disable, in addition to vue-i18n APIs, components and directives all fully support installation: `true`)
- `__VUE_I18N_LEGACY_API__` (enable/disable vue-i18n legacy style APIs support, default: `true`)
- `__INTLIFY_DROP_MESSAGE_COMPILER__`  (enable/disable whether to tree-shake message compiler when we will be bundling)

The build will work without configuring these flags, however it is **strongly recommended** to properly configure them in order to get proper tree shaking in the final bundle. To configure these flags:

- webpack: use [DefinePlugin](https://webpack.js.org/plugins/define-plugin/)
- Rollup: use [@rollup/plugin-replace](https://github.com/rollup/plugins/tree/master/packages/replace)
- Vite: configured by default, but can be overwritten using the [`define` option](https://github.com/vitejs/vite/blob/a4133c073e640b17276b2de6e91a6857bdf382e1/src/node/config.ts#L72-L76)

Note: the replacement value **must be boolean literals** and cannot be strings, otherwise the bundler/minifier will not be able to properly evaluate the conditions.

## ©️ License

[MIT](http://opensource.org/licenses/MIT)

---
_Source: https://npm.io/package/vue-i18n · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
