Get unlimited public & private packages + team-based management with npm Teams.Learn more »

@freddieridell/glot

0.0.8 • Public • Published

Glot

min badge minzipped badge

A tiny, simple, powerful, expressive, i18n library

Usage

import createGlot from "@freddieridell/glot";
import { format as formatDate } from "date-fns/fp";
 
//initalise with dictionary
const glot = createGlot({
    en: {
        greetings: "'ello, govna'",
        date: "yyyy-MM-dd",
        thing_1: "number one",
        thing_2: "number two",
    },
    fra: {
        greetings: "'sup, Monsieur",
    },
})({ lang: "en" });
 
//basic usage
console.log(glot`greetings`);
console.log(glot`INVALID_KEY`);
 
//switch language
console.log(glot({ lang: "fra" })`greetings`);
const foreverFrench = glot({ lang: "fra" });
console.log(foreverFrench`greetings`);
 
//create parameterized functions
const localisedDteFormatter = glot({ mkFn: formatDate })`date`;
console.log(localisedDteFormatter(new Date()));
 
// interpolate values
new Array(2).fill(null).map((_, i) => console.log(glot`thing_${+ 1}`));

Todo

  • create companion react component
  • think about pluralisation
  • types
    • reasonml
    • flow
    • typescript
  • tune babel config to reduce bundle size
  • write tests, full coverage
  • write better readme
  • write better readme

Install

npm i @freddieridell/glot

DownloadsWeekly Downloads

2

Version

0.0.8

License

ISC

Unpacked Size

6.45 kB

Total Files

5

Last publish

Collaborators

  • avatar