reword

0.2.0 • Public • Published

Reword


A tiny translator. The use case is simple: you have known and finite list of abbreviated/encoded strings and you need to map them to other (perhaps human-readable) strings.

Supports nested translations and a few different syntax variations for retrieving entries.

The signatures are as follows:

t(String, ..)

If exactly one string argument is provided, Reword will look in the translations for a property with that name and return it's value.

If more than one string argument is provided, Reword will look up each independently and return an array of the results.

t(Array)

If an array of strings is provided, Reword will treat this as a nested lookup.

t(String special)

If a string is provided and it has . (periods) anywhere inside that string, Reword will treat this as a nested lookup, splitting the string on the . character.

A tiny example:

Import reword, give it a map of translations, and an optional notFoundHandler which will be called with the input string.

import reword from 'reword'

const translations = {
  smt : 'something',
  nm  : 'not much',
  hru : 'how are you',

  colors: {
    blue  : '#00f',
    red   : '#f00',
    green : '#0f0'
  }
}

const notFoundHandler = (string) => {
  if (process.env.NODE_ENV !== 'production') {
    console.warn(`No translation found for ${string}.`)
  }
  
  return string
}

const t = reword(translations, notFoundHandler)

t('smt')    // => 'something'
t('nm')     // => 'not much'
t('hru')    // => 'how are you'
t('uhhhh')  // => 'uhhhh' (notFoundHandler invoked with 'uhhh')

t(['colors', 'blue']) // => '#00f'
t('colors.red')       // => '#f00'

Readme

Keywords

none

Package Sidebar

Install

npm i reword

Weekly Downloads

6

Version

0.2.0

License

MIT

Last publish

Collaborators

  • dyrenh