Skip to content

Extend i18next to load translations as { namespace: { key: { lang1: value1, lang2: value2 } } }

License

Notifications You must be signed in to change notification settings

FCOO/i18next-phrases

Repository files navigation

i18next-phrases

Description

Extend i18next to load translations as { namespace: { key: { lang1: value1, lang2: value2 } } }

Using fcoo/promise-get to read json-data

Installation

bower

bower install https://github.com/FCOO/i18next-phrases.git --save

Demo

http://FCOO.github.io/i18next-phrases/demo/

Usage

Default 1-dim json-structure for i18next is lang->namespace->key:

{ 
    lang1: { 
        namespace1: { 
            key1: value1-1-1,
            key2: value1-1-2
         },
        namespace2: { 
            key1: value1-2-1,
            key2: value1-2-2
         }
    },
    lang2: { 
        namespace1: { 
            key1: value2-1-1,
            key2: value2-1-2
        },
        namespace2: { 
            key1: value2-2-1,
            key2: value2-2-2
         }
    }
}

To make adding translation easier two new formats are supported:

phrase: namespace->key->lang

{
    namespace1: {
        key1: {
            lang1: value1-1-1,
            lang2: value2-1-1
        },
        key2: {
            lang1: value1-1-2,
            lang2: value2-1-2
        }
    },
    namespace2: {
        key1: {
            lang1: value1-2-1,
            lang2: value2-2-1
        },
        key2: {
            lang1: value1-2-2,
            lang2: value2-2-2
        }
    }
}

key-phrase: key->namespace->lang

{
    key1: {
        namespace1: {
            lang1: value1-1-1,
            lang2: value2-1-1
        },
        namespace2: {
            lang1: value1-2-1,
            lang2: value2-2-1
        }
    },
    key2: {
        namespace1: {
            lang1: value1-1-2,
            lang2: value2-1-2
        },
        namespace2: {
            lang1: value1-2-2,
            lang2: value2-2-2
        }
    }
}

Methods

The following methods are added to i18next.

i18next.addPhrase( [namespace,] key, langValues)

key {string} can be a combined namespace:key string. langValues = { [lang: value]xN }

i18next.addPhrases( [namespace,] keyLangValues )

keyLangValues = { key: { [lang: value]xN }, key2: { [lang: value]xN } }

i18next.addBundlePhrases( namespaceKeyLangValues )

namespaceKeyLangValues = {
    namespace1: { 
        key1: { [lang: value]xN }, 
        key2: { [lang: value]xN }
    }, 
    namespace2:{
        ...
    }
}

i18next.loadPhrases( jsonFileName {(string|string[])} , options )

options contains functions to handle error and finish. See fcoo/promise-get

i18next.addKeyPhrase( key, namespace, langValues )

langValues = { [lang: value]xN }

i18next.addKeyPhrases( key, namespaceLangValues )

namespaceLangValues = { namespace1: { [lang: value]xN }, namespace2: { [lang: value]xN } }

i18next.addBundleKeyPhrases( keyNamespaceLangValues )

keyNamespaceLangValues = { 
    key1: { 
        namespace1: { [lang: value]xN }, 
        namespace2: { [lang: value]xN }
    }, 
    key2:{
        ...
    }
}`

i18next.loadKeyPhrases( jsonFileName {(string|string[])}, options )

options contains functions to handle error and finish. See fcoo/promise-get

i18next.sentence( langValues, options ) - return {string}

langValues = { {lang: value}xN }

A single translation of a phrase. No key used or added. E.g.

i18next.sentence({ da:'Dette er på dansk', en:'This is ín English'})

i18next.s( langValues, options ) - return {string}

Same as i18next.sentence

i18next.sentenceArray( []langValues, seperator, options ) - return {string}

langValues = { {lang: value}xN }

A join of translations phrases in and array. E.g.

i18next.sentenceArray([{ da:'Dette er på dansk', en:'This is ín English'}, 1234, { da:'Slut', en:'The end'}, '_')

Copyright and License

This plugin is licensed under the MIT license.

Copyright (c) 2017 FCOO

Contact information

Niels Holt nho@fcoo.dk

About

Extend i18next to load translations as { namespace: { key: { lang1: value1, lang2: value2 } } }

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors