You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

jed

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jed

Gettext Style i18n for Modern JavaScript Apps


Version published
Maintainers
1
Created

Package description

What is jed?

Jed is a JavaScript library for handling internationalization (i18n) and localization (l10n) in web applications. It provides tools for translating strings, handling plural forms, and formatting messages according to different locales.

What are jed's main functionalities?

Translation

Jed allows you to translate strings based on the provided locale data. In this example, 'Hello, world!' is translated to 'Hola, mundo!' using the locale data.

const Jed = require('jed');
const i18n = new Jed({
  locale_data: {
    messages: {
      '': {
        'domain': 'messages',
        'lang': 'en'
      },
      'Hello, world!': ['Hola, mundo!']
    }
  }
});
console.log(i18n.gettext('Hello, world!')); // Output: Hola, mundo!

Plural Forms

Jed supports plural forms, allowing you to provide different translations based on the number of items. In this example, the translation changes based on whether the count is 1 or more.

const Jed = require('jed');
const i18n = new Jed({
  locale_data: {
    messages: {
      '': {
        'domain': 'messages',
        'lang': 'en'
      },
      'One apple': ['Una manzana', 'Unas manzanas']
    }
  }
});
console.log(i18n.ngettext('One apple', '%d apples', 1)); // Output: Una manzana
console.log(i18n.ngettext('One apple', '%d apples', 2)); // Output: Unas manzanas

Contextual Translations

Jed allows for contextual translations, which means you can provide different translations for the same word based on the context. In this example, 'apple' is translated differently when it is in the context of 'fruit'.

const Jed = require('jed');
const i18n = new Jed({
  locale_data: {
    messages: {
      '': {
        'domain': 'messages',
        'lang': 'en'
      },
      'apple': ['manzana'],
      'fruit|apple': ['manzana (fruta)']
    }
  }
});
console.log(i18n.pgettext('fruit', 'apple')); // Output: manzana (fruta)
console.log(i18n.gettext('apple')); // Output: manzana

Other packages similar to jed

Readme

Source

Build Status

Jed

Gettext Style i18n for Modern JavaScript Apps

For more info, please visit the docs site at http://slexaxton.github.com/Jed.

You sure you don't want something more modern?

Jed is feature complete in my opinion. I am happy to fix bugs, but generally am not interested in adding more to the library.

I also maintain messageformat.js. If you don't specifically need a gettext implementation, I might suggest using MessageFormat instead, as it has better support for plurals/gender and has built-in locale data.

Parsing Gettext Files

Jed doesn't include a Gettext file parser, but several third-party parsers exist that can have their output adapted for Jed.

Node

Just search the npm repository, there are several PO and MO file parsers available.

Browser

Jed Gettext Parser is the only known browser MO file parser, and it also works in Node, and outputs Jed-compatible data directly.

gettext.js and Pomo.js both include browser-compatible PO file parsers.

Todo

  • Build time generation of plural form functions
  • Web interface for building translation sets
  • Code introspection for default values

License

Jed is a member project of the jQuery Foundation

You may use this software under the MIT License.

You may contribute to this software under the jQuery Foundation CLA - https://contribute.jquery.org/CLA/

Author

Credits

A good chunk of sanity checking was done against the gettext.js tests. That was written by:

  • Joshua I. Miller

The sprintf implementation is from:

  • Alexandru Marasteanu <alexaholic [at) gmail (dot] com>

The name

The name jed.js is an homage to Jed Schmidt (https://github.com/jed) the JavaScript community member who is a japanese translator by day, and a "hobbyist" JavaScript programmer by night. Give your kids three character names and they'll probably get software named after them too.

Keywords

FAQs

Package last updated on 22 Jul 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc