Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

@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

10

Version

0.1.15

License

MIT

Unpacked Size

25.3 kB

Total Files

23

Last publish

Collaborators

  • avatar
  • avatar
  • avatar