1.0.0-z.4 • Published 1 year ago

@arugaz/translator v1.0.0-z.4

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
1 year ago

npm version install size npm downloads

Table of Contents

Features

  • Simple and Familiar API
  • Unobstrusive and Unopinionated

Install

$ npm install --save @arugaz/translator
$ yarn add @arugaz/translator

Usage

import Translate from "@arugaz/translator";

const i18n = Translate({
  en: {
    intro: {
      welcome: "Welcome, {{username}}!",
      text: "I hope it will be useful for you.",
    },
    support(obj) {
      let hour = Math.floor(Math.random() * 3) + 9;
      let str = `For questions, I'm available on ${obj.date.toLocaleDateString()}`;
      str += `, any time after ${hour}:00.`;
      return str;
    },
  },
});

// set default language
i18n.locale("en");

// add new language
i18n.set("id", {
  intro: {
    welcome: (obj) =>
      `Selamat Datang, ${obj.feminine ? "mba" : "mas"} ${obj.username}!`,
    text: "Saya harap ini akan berguna untuk Anda.",
  },
});

// append extra key(s) to existing language
i18n.set("id", {
  support(obj) {
    let hour = Math.floor(Math.random() * 3) + 9;
    let str = `Untuk pertanyaan, saya tersedia saat ${obj.date.toLocaleDateString()}`;
    str += `, kapan saja setelahnya ${hour}:00.`;
    return str;
  },
});

const data = {
  feminine: false,
  username: "tobz",
  date: new Date(),
};

// Retrieve translations
// NOTE: Relies on "en" default
i18n.translate("intro.welcome", data); //=> 'Welcome, tobz!'
i18n.translate("intro.text", data); //=> 'I hope it will be useful for you.'
i18n.translate("support", data); //=> 'For questions, I'm available on 10/4/2022, any time after 11:00.'

// Retrieve translations w/ lang override
i18n.translate("intro.welcome", data, "id"); //=> 'Selamat datang, mas tobz!'

// Change default language key
i18n.locale("id");

// Get language table based on key
i18n.get("en"); //=> { intro: { welcome: "...", text: "..." }, support: (obj) => "..." }

// Get a list of languages that have been added
i18n.listLanguage(); //=> ["en", "id"]

// Retrieve translations w/ new defaults
i18n.translate("intro.text", data); //=> 'Saya harap ini akan berguna untuk Anda.'
i18n.translate("intro.text", data, "en"); //=> 'I hope it will be useful for you.'

License

MIT

1.0.0-z.4

1 year ago

1.0.0-z.3

1 year ago

1.0.0-z.2

1 year ago

1.0.0-z.1

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago