Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rowellx68/esbuild-plugin-i18next-loader

An esbuild plugin to client bundle i18next locales
https://github.com/rowellx68/esbuild-plugin-i18next-loader

Last synced: 2 days ago
JSON representation

An esbuild plugin to client bundle i18next locales

Awesome Lists containing this project

README

        

![MIT](https://img.shields.io/badge/License-MIT-green?style=flat-square)
![Version](https://img.shields.io/github/package-json/v/rowellx68/esbuild-plugin-i18next-loader?style=flat-square)
![CI](https://img.shields.io/github/actions/workflow/status/rowellx68/esbuild-plugin-i18next-loader/publish.yml?style=flat-square)

# `esbuild-plugin-i18next-loader`

esbuild plugin to client bundle i18next locales.

This plugin generates a virtual module that contains all the locales that are available in the project.

It is a rewrite of [alienfast/vite-plugin-i18next-loader](https://github.com/alienfast/vite-plugin-i18next-loader) to work with esbuild.

## Install

```bash
npm install --save-dev esbuild-plugin-i18next-loader

# or
pnpm add -D esbuild-plugin-i18next-loader

# or
yarn add -D esbuild-plugin-i18next-loader
```

## Options

| Name | Type | Default | Description |
| --------------------- | ---------------------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| `include` | `('**/*.json' \| '**/*.yml' \| '**/*.yaml')[]` | `['**/*.json', '**/*.yml', '**/*.yaml']` | Glob patterns of files to include for bundling. |
| `namespaceResolution` | `basename`, `relativePath` | none | Namespace resolution strategy. |
| `paths` | `string[]` | `[]` | Locale top-level directory paths. |

## Usage with esbuild

```js
import { i18nextPlugin } from "esbuild-plugin-i18next-loader";

await esbuild.build({
entryPoints: ["./src/index.ts"],
write: true,
bundle: true,
plugins: [
i18nextPlugin({
namespaceResolution: "basename",
paths: ["./src/**/locales"],
}),
],
});
```

## LICENSE

MIT