@hebcal/hdate
    Preparing search index...

    Class Locale

    A locale in Hebcal is used for translations/transliterations of holidays. @hebcal/hdate supports four locales by default

    • en - default, Sephardic transliterations (e.g. "Shabbat")
    • ashkenazi - Ashkenazi transliterations (e.g. "Shabbos")
    • he - Hebrew (e.g. "שַׁבָּת")
    • he-x-NoNikud - Hebrew without nikud (e.g. "שבת")
    Index

    Constructors

    Methods

    • Register locale translations.

      Parameters

      • locale: string

        Locale name (i.e.: 'he', 'fr')

      • data: LocaleData

        parsed data from a .po file.

      Returns void

      import poFr from './fr.po';
      Locale.addLocale('fr', poFr);
      Locale.gettext('Shabbat', 'fr'); // 'Chabbat'
    • Adds a translation to locale, replacing any previous translation.

      Parameters

      • locale: string

        Locale name (i.e: 'he', 'fr').

      • id: string

        Message ID to translate

      • translation: string | string[]

        Translation text

      Returns void

      Locale.addTranslation('ashkenazi', 'Foobar', 'Quux');
      Locale.gettext('Foobar', 'ashkenazi'); // 'Quux'
    • Adds multiple translations to locale, replacing any previous translations.

      The locale must already be registered (typically via addLocale); to register a brand-new locale instead, call addLocale directly. Use this method to merge an additional .po file (e.g. holiday translations supplied by a separate @hebcal/* package) into an existing locale.

      Parameters

      • locale: string

        Locale name (i.e: 'he', 'fr').

      • data: LocaleData

        parsed data from a .po file.

      Returns void

    • Returns a new LocaleData derived from data with niqqud (vowel points) stripped from every translation value. The input is not modified.

      This is the helper used internally to build the he-x-NoNikud locale from he; call it when registering a derived "no nikud" variant of a custom Hebrew-script locale.

      Parameters

      Returns LocaleData

    • Returns the names of registered locales

      Returns string[]

      Locale.getLocaleNames(); // ['ashkenazi', 'en', 'he', 'he-x-nonikud']
      
    • By default, if no translation was found, returns id.

      Parameters

      • id: string

        Message ID to translate

      • Optionallocale: string

        Optional locale name (i.e: 'he', 'fr'). Defaults to no-op locale.

      Returns string

      Locale.gettext('Elul', 'he');          // 'אֱלוּל'
      Locale.gettext('Tevet', 'ashkenazi'); // 'Teves'
      Locale.gettext('Unknown', 'he'); // 'Unknown' (falls back to id)
    • Checks whether a locale has been registered

      Parameters

      • locale: string

        Locale name (i.e: 'he', 'fr').

      Returns boolean

      Locale.hasLocale('he'); // true
      Locale.hasLocale('fr'); // false
    • Removes nekudot from Hebrew string

      Parameters

      • str: string

      Returns string

      Locale.hebrewStripNikkud('אֱלוּל'); // 'אלול'
      
    • Returns true if locale is a Hebrew locale (i.e. he or he-x-NoNikud)

      Parameters

      • Optionallocale: string

      Returns boolean

      Locale.isHebrewLocale('he');           // true
      Locale.isHebrewLocale('he-x-NoNikud'); // true
      Locale.isHebrewLocale('en'); // false
    • Returns translation only if locale offers a non-empty translation for id. Otherwise, returns undefined.

      Parameters

      • id: string

        Message ID to translate

      • Optionallocale: string

        Optional locale name (i.e: 'he', 'fr'). Defaults to no-op locale.

      Returns string | undefined

      Locale.lookupTranslation('Adar II', 'he-x-NoNikud'); // 'אדר ב׳'
      Locale.lookupTranslation('Foobar', 'he-x-NoNikud'); // undefined
    • Renders a number in ordinal, such as 1st, 2nd or 3rd

      Parameters

      • n: number
      • Optionallocale: string

        Optional locale name (i.e: 'he', 'fr'). Defaults to no-op locale.

      Returns string

      Locale.ordinal(3, 'en'); // '3rd'
      Locale.ordinal(3, 'es'); // '3º'
      Locale.ordinal(3, 'fr'); // '3.'
      Locale.ordinal(3, 'he'); // '3'