i18next-utilities-unplugin
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

MIT Version CI

i18next-utilities-unplugin

This plugin will generate a virtual module that exports the compiled resources for i18next and will also generate a type definition file for the resources.

Majority of the code for this plugin is from alienfast/vite-plugin-i18next-loader.

Supported Bundlers

  • Vite
  • Rollup
  • Webpack
  • esbuild
  • Farm

Install

npm install --save-dev i18next-utilities-unplugin

# or
pnpm add -D i18next-utilities-unplugin

# or

yarn add -D i18next-utilities-unplugin

Options

Name Type Default Description
defaultLocale string 'en' The default locale the plugin will generate the type from.
defaultNamespace string 'translation' The default i18next namespace the plugin will use.
include ('**/*.json' | '**/*.yml' | '**/*.yaml')[] ['**/*.json', '**/*.yml', '**/*.yaml'] Glob patterns of files to include for bundling.
namespaceResolution basename, relativePath none Namespace resolution strategy.
dtsOutputFile string './src/types/i18next.d.ts' Output file destination for the generated types.
virtualModuleDtsOutputFile string './src/types/i18next-virtual.d.ts' Output file destination for the generated virtual module types.
paths string[] [] Locale top-level directory paths.
dts { expand: boolean } { expand: true } DTS generation options.

Usage with Vite

import i18nextPlugin from 'i18next-utilities-unplugin/vite';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    i18nextPlugin({
      defaultLocale: 'en-GB',
      defaultNamespace: 'translation',
      paths: ['./src/locales/'],
      namespaceResolution: 'basename',
      dtsOutputFile: './src/types/i18next.d.ts',
      virtualModuleDtsOutputFile: './src/types/i18next-virtual.d.ts',
    }),
  ],
});

Usage with Rollup

import i18nextPlugin from 'i18next-utilities-unplugin/rollup';

export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'es',
  },
  plugins: [
    i18nextPlugin({
      defaultLocale: 'en-GB',
      defaultNamespace: 'translation',
      paths: ['./src/locales/'],
      namespaceResolution: 'basename',
      dtsOutputFile: './src/types/i18next.d.ts',
      virtualModuleDtsOutputFile: './src/types/i18next-virtual.d.ts',
    }),
  ],
};

Usage with Webpack

const I18NextTypedPlugin = require('i18next-utilities-unplugin/webpack');

module.exports = {
  plugins: [
    new I18NextTypedPlugin({
      defaultLocale: 'en-GB',
      defaultNamespace: 'translation',
      paths: ['./src/locales/'],
      namespaceResolution: 'basename',
      dtsOutputFile: './src/types/i18next.d.ts',
      virtualModuleDtsOutputFile: './src/types/i18next-virtual.d.ts',
    }),
  ],
};

Usage with i18next

import resources from 'virtual:i18next-typed-loader';
import i18n from 'i18next';

i18n.init({
  defaultNS: 'translation',
  resources: resources,
  ns: ['translation'],
});

Package Sidebar

Install

npm i i18next-utilities-unplugin

Weekly Downloads

6

Version

0.1.1

License

MIT

Unpacked Size

13.8 kB

Total Files

14

Last publish

Collaborators

  • rowellx68