Giter VIP home page Giter VIP logo

damals's Introduction

damals

Damals (German for back then, at that time) reports the approximate time ago in words from a specific past date. The project is inspired by Rails' time_ago_in_words helper.

Installation

Install via npm:

% npm install damals

Usage

The module exports a function which when called expects as sole argument a past date either in form of a JavaSript Date object or in form of an integer value holding the number of milliseconds since the Unix epoch. The function returns the approximate time ago in words.

var timeAgo = require('damals');

timeAgo(Date.now())             // => 'just now'
timeAgo(Date.now() - 30000)     // => 'half a minute ago'
timeAgo(new Date('1976-12-10')) // => 'about 37 years ago'

Side note: The future is now.

Localization

By default, all output is in English, but you can easily change this. Damals uses the counterpart package for its translations. You can register new translations for your locale with the registerTranslations function:

var translator = require('counterpart');
var timeAgo    = require('damals');

translator.registerTranslations('de', require('counterpart/locales/de'));
translator.registerTranslations('de', require('./locales/de'));

timeAgo(Date.now())   // => 'just now'

// invoke this on app initialization or when the user changes her language preference
translator.setLocale('de');

timeAgo(Date.now())   // => 'gerade eben'

The translation data you provide as last argument to registerTranslations must have the same keys as specified in the English locale file.

Built-in Translations

Besides English, damals comes with built-in support for German (see file), Dutch (see file) and Brazilian Portuguese (see file). This is opt-in, meaning you have to manually register the translation data when needed:

translator.registerTranslations('de', require('counterpart/locales/de'));
translator.registerTranslations('de', require('damals/locales/de'));

Pull requests which add other locales are welcome.

Contributing

Here's a quick guide:

  1. Fork the repo and make install.

  2. Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate: make test

  3. Add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or are fixing a bug, we need a test!

  4. Make the test pass.

  5. Push to your fork and submit a pull request.

Licence

Released under The MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.