Monster. I18n

In this namespace you will find classes and methods for handling locale and localized texts.

Author
  • schukai GmbH

Classes

Formatter

Default values for the markers are ${ and }

.
Locale
Provider
Translations

Namespaces

Providers
In this namespace you will find classes and methods for handling locale and localized texts.

Members

(static, constant) localeStringSymbol :symbol

Type:
  • symbol

(static, constant) propertiesSymbol :symbol

Type:
  • symbol

Methods

(static) getDocumentTranslations(elementopt) → {Translations}

Returns the translations for the current document.

Returns the translations for the current document.

Parameters:
NameTypeAttributesDescription
elementHTMLElement | undefined<optional>

Element to search for translations. Default: element with objectlink @schukai/monster/i18n/translations@@link.

Throws:
  • Element is not an HTMLElement.

    Type
    Error
  • Cannot find element with translations. Add a translations object to the document.

    Type
    Error
  • This element has no translations.

    Type
    Error
  • Missing translations.

    Type
    Error
Returns:
Type: 
Translations

(static) parseLocale(locale) → {Locale}

Parse local according to rfc4646 standard

Limitations: The regex cannot handle multiple variants or private.

Parse local according to rfc4646 standard

Limitations: The regex cannot handle multiple variants or private.

You can call the method via this function individually:

import {createLocale} from '@schukai/monster/source/i18n/locale.mjs';
createLocale()

RFC

  The syntax of the language tag in ABNF [RFC4234] is:

  Language-Tag  = langtag
                / privateuse             ; private use tag
                / grandfathered          ; grandfathered registrations

  langtag       = (language
                   ["-" script]
                   ["-" region]
                   *("-" variant)
                   *("-" extension)
                   ["-" privateuse])

  language      = (2*3ALPHA [ extlang ]) ; shortest ISO 639 code
                / 4ALPHA                 ; reserved for future use
                / 5*8ALPHA               ; registered language subtag

  extlang       = *3("-" 3ALPHA)         ; reserved for future use

  script        = 4ALPHA                 ; ISO 15924 code

  region        = 2ALPHA                 ; ISO 3166 code
                / 3DIGIT                 ; UN M.49 code

  variant       = 5*8alphanum            ; registered variants
                / (DIGIT 3alphanum)

  extension     = singleton 1*("-" (2*8alphanum))

  singleton     = %x41-57 / %x59-5A / %x61-77 / %x79-7A / DIGIT
                ; "a"-"w" / "y"-"z" / "A"-"W" / "Y"-"Z" / "0"-"9"
                ; Single letters: x/X is reserved for private use

  privateuse    = ("x"/"X") 1*("-" (1*8alphanum))

  grandfathered = 1*3ALPHA 1*2("-" (2*8alphanum))
                  ; grandfathered registration
                  ; Note: i is the only singleton
                  ; that starts a grandfathered tag

  alphanum      = (ALPHA / DIGIT)       ; letters and numbers

                       Figure 1: Language Tag ABNF
Parameters:
NameTypeDescription
localestring
Since
  • 1.14.0
License
  • AGPLv3
Throws:
  • value is not a string

    Type
    TypeError
  • unsupported locale

    Type
    Error
Returns:
Type: 
Locale

Type Definitions

LocaleMap

Type:
  • Object
Properties
NameTypeDescription
languagestring
scriptstring
regionstring
variantsstring
extlangstring
privateUsestring