weareinreach / i18next-keys-ondemand

i18next plugin to request the non-translated keys when used

Home Page:https://www.npmjs.com/package/@weareinreach/i18next-keys-ondemand

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

I18next with ability to download missing keys

Libraries.io dependency status for GitHub repo npm (scoped with tag)

Twitter Follow

Existing i18next backend plugins request keys by namespaces and not the granularity of an individual key. The goal of this module is to be able to fetch missing keys individually, taking in consideration performance by debouncing requests to an individual request.

Installation

# using pnpm
$ pnpm add @weareinreach/i18next-keys-ondemand

# using npm
$ npm install @weareinreach/i18next-keys-ondemand

# using yarn
$ yarn add @weareinreach/i18next-keys-ondemand

Usage

  • Use the module when initializing i18next:
import i18n from 'i18next'
import { I18nextKeysOnDemand, TranslationMap } from 'i18next-keys-ondemand'



const getterFunction = async (
        keys: string[], 
        language: string, 
        namespace: string, 
        defaultValues: Record<string,string>
    ) => {

    /** This function should ultimately return an object in the format of:
     *
     * {'key-name': 'Translated string value'}
     *
     */

    const result: Record<string,string> = await someFunctionThatHandlesThings(
        keys,
        language,
        namespace,
        defaultValues // pass defaultValues if you want to save new strings to your i18n store
        )

  return result
}

i18n
  .use(new I18nextKeysOnDemand({ translationGetter: getterFunction })) // init i18next here
  .init({
    fallbackLng: 'en',
    ns: ['yourNamespace'],
    defaultNS: 'yourNamespace',
    // saveMissing must be set to `true`!
    saveMissing: true,
  })
  • Options:
Field Mandatory? Default value Comment
translationGetter yes Translation service function to use
missingKeyValue no '' Value to return for missing keys
debounceDelay no 100 Delay in ms used to debounce the translation requests

About

i18next plugin to request the non-translated keys when used

https://www.npmjs.com/package/@weareinreach/i18next-keys-ondemand


Languages

Language:TypeScript 100.0%