Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including @bbc/psammead-locales with all npm packages installed. Try it out:

@bbc/psammead-locales lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("@bbc/psammead-locales/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@bbc/psammead-locales v4.1.9

A collection of locale configs, used in BBC World Service sites

psammead-locales - Known Vulnerabilities Dependency Status peerDependencies Status GitHub license npm version PRs Welcome

This package provides a collection of locale configs, used in BBC World Service sites.


Moment locales

The following Moment.js locales have been added as they do not exist upstream:

  • /moment/am - locale override for Amharic
  • /moment/ha - locale for Hausa
  • /moment/ig - locale for Igbo
  • /moment/om - locale override for Afaan Oromoo
  • /moment/pcm - locale for Pidgin
  • /moment/ps - locale for Pashto
  • /moment/rw - locale for Gahuza
  • /moment/so - locale for Somali
  • /moment/ti - locale for Tigrinya

The following locales have overrides to meet BBC World Service requirements where these differ from the upstream locale. Note that importing them will also cause the upstream locale to be loaded.

  • /moment/ar - locale override for Arabic
  • /moment/az - locale override for Azeri
  • /moment/bn - locale override for Bengali
  • /moment/es - locale override for Spanish (Mundo)
  • /moment/gu - locale override for Gujarati
  • /moment/hi - locale override for Hindi
  • /moment/ky - locale override for Kyrgyz
  • /moment/mr - locale override for Marathi
  • /moment/ne - locale override for Nepali
  • /moment/pa-in - locale override for Punjabi
  • /moment/pt-br - locale override for Brasil
  • /moment/ru - locale override for Russian
  • /moment/si - locale override for Sinhala
  • /moment/sr - locale override for Serbian
  • /moment/sr-cyrl - locale override for Serbian Cyrillic
  • /moment/sw - locale override for Swahili
  • /moment/ta - locale override for Tamil
  • /moment/th - locale override for Thai
  • /moment/uk - locale override for Ukrainian
  • /moment/ur - locale override for Urdu
  • /moment/uz - locale override for Uzbek
  • /moment/yo - locale override for Yoruba


Numeral systems

/numerals - Numerals in several different number systems, e.g. Bengali, Burmese, Eastern Arabic, Western Arabic. This can be used for localised numbers for components. Returns arrays of the format ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];

These can either be imported and used directly or in conjunction with the makeNumeralTranslator helper function below.


makeNumeralTranslator is a small helper that returns a function that translates any 'Western' Arabic numerals in the input string into the specified numeral system.

It accepts one argument system which is an array of numeral system symbols such as one of the ones above, and returns a translator function. If the argument is omitted or an invalid numeral system is supplied then the translator returns input strings unchanged. Note that currently only the first 10 symbols from the array are used.

For an example see Usage, below.


npm install @bbc/psammead-locales --save


Moment locales

import moment from 'moment';
import '@bbc/psammead-locales/moment/ig';



import { Bengali, makeNumeralTranslator } from '@bbc/psammead-locales/numerals';

const translateNumerals = makeNumeralTranslator(Bengali);
const result = translateNumerals(someInput); // returns someInput with numbers translated to Bengali


Psammead is completely open source. We are grateful for any contributions, whether they be new components, bug fixes or general improvements. Please see our primary contributing guide which can be found at the root of the Psammead respository.

Code of Conduct

We welcome feedback and help on this work. By participating in this project, you agree to abide by the code of conduct. Please take a moment to read it.


Psammead is Apache 2.0 licensed.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free