Neanderthal Pudding Mix

    @ambassify/language-object

    0.1.15 • Public • Published

    language-object

    CircleCI

    Installation

    npm install --save @ambassify/language-object
    

    Usage

    This package expose a parse-js parser, a method to test for multilingual objects and a method to cast objects.

    parser

    For more info on parse-js see the documentation.

    Example:

    const parser = require('@ambassify/language-object/parser');
    
    parse.register('languageObject', require())
    parse().json().languageObject().parse({
        nl: 'hallo',
        en: 'hello'
    });

    Returns

    {
        __type: 'multilingual',
        nl: 'hallo',
        en: 'hello'
    }

    isMultilingual

    isMultilingual will check if the __type property equals multilingual if set.

    • If the __type property is set, but does not equal multilingual it will return false.
    • If the __type property is undefined this method will check whether the only enumerable properties are valid languages as supplied by the second argument to isMultilingual.
    • If __type is missing and languages is not set or empty it will always return false.
    isMultilingual(languageObject, [languages])

    Example:

    const isMultilingual = require('@ambassify/language-object/ismultilingual');
    
    const obj = {
        nl: 'hallo',
        en: 'hello'
    };
    
    isMultilingual(obj, ['en','nl']); // true
    isMultilingual(obj, ['en']); // false

    cast

    Casts language-object to include __type and valid language keys.

    Unless force is set to true, it uses isMultilingual to validate objects first, if an object is not valid it will return null.

    cast(languageObject, [languages], [force=false])

    Example:

    const cast = require('@ambassify/language-object/cast');
    
    const obj = {
        nl: 'hallo',
        en: 'hello'
    };
    
    cast(obj, ['en','nl']);

    Returns

    {
        __type: 'multilingual',
        nl: 'hallo',
        en: 'hello'
    }

    translate

    Takes in an object an selects only the language key that you would like to have selected.

    cast(sourceObject, [selectLanguage], [availableLanguages])

    Example:

    const cast = require('@ambassify/language-object/translate');
    
    const obj = {
        hi_nl: 'hallo',
        hi_en: 'hello',
        nested: {
            regular: 'key',
            value_nl: 'in dutch',
            value_en: 'in english'
        }
    };
    
    translate(obj, 'en', ['en','nl']);

    Returns

    {
        hi: 'hello',
        nested: {
            regular: 'key',
            value: 'in english'
        }
    }

    Keywords

    none

    Install

    npm i @ambassify/language-object

    DownloadsWeekly Downloads

    34

    Version

    0.1.15

    License

    MIT

    Unpacked Size

    25.3 kB

    Total Files

    23

    Last publish

    Collaborators

    • ambassify
    • jorgenevens
    • sitebase