reword
v0.2.0
Published
A simple translator.
Downloads
8
Readme
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'