Skip to content

Library for handling multi language support using JavaScript

License

Notifications You must be signed in to change notification settings

alexcambose/polylang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

polylang

Build Status

Library for handling multi language support using JavaScript

Installation

Install using npm

npm install --save polylang

Usage

const Polylang = require('polylang'); // or if you are using ES6 imports, import Polylang from 'polylang';

const polylang = new Polylang(); // create a new instance
polylang.add('en', {
    welcome: 'welcome',
    title: 'Someone is always watching us',
    errors: {
        invalid_email: '<<email>> is not a valid email because <<reason>>',
    }
});
polylang.add('ro', {
    welcome: 'salutare',
    title: 'Cineva ne urmareste in permanenta',
    errors: {
        invalid_email: '<<email>> nu este un email valid deoarece <<motiv>>',
    }
});

polylang.t('welcome'); // welcome
polylang.t('errors.invalid_email', { email: '[email protected]', reason: 'it is too short!' }); // [email protected] is not a valid email because it is too short!

polylang.lang = 'ro';

polylang.t('welcome'); // salutare
polylang.t('errors.invalid_email', { email: '[email protected]', motiv: 'este prea scurt!' }); // [email protected] nu este un email valid deoarece este prea scurt!

API

new Polylang({defaultLang, accessDelimiter, startInterpolationDelimiter, endInterpolationDelimiter})

Param Type Description
{defaultLang string the default language that will be used to translate the text
accessDelimiter string delimiter used to represent levels in the translation object (ex: 'errors.password.too_short')
startInterpolationDelimiter string delimiter used to interpolate custom string into the translation at the start of the word
endInterpolationDelimiter} string delimiter used to interpolate custom string into the translation at the start of the word

Example

polylang = new Polylang({
    defaultLang: 'en'
    accessDelimiter: '.',
    startInterpolationDelimiter: '<<',
    endInterpolationDelimiter: '>>'
});

polylang.add(language, data)

Add a translation

Kind: instance method of Polylang

Param Type Description
language string Language
data object Translation object

Example

polylang.add('en',{
            errors: {
                invalid_email: 'The email "<<email>>" is invalid',
                password: {
                    too_short: 'The password is too short',
                    one_digit: 'The passowrd must contain at least one digit'
                },
            }
        });

polylang.remove(language)

Remove a translation

Kind: instance method of Polylang

Param Type Description
language string Language name that will be removeed

Example

polylang.remove('en');

polylang.t(selector, interpolationValues)

Translate

Kind: instance method of Polylang

Param Type Description
selector string translation path
interpolationValues string | object value/s to be replaced between interpolation delimiters

Example

polylang.t('errors.invalid_email', '[email protected]');
polylang.t('errors.invalid_email', {email: '[email protected]', reason: 'it is taken!'}); //if invalid_email string would be 'The email "<<email>>" is invalid because <<reason>>'

polylang.translate(selector, language, interpolationValues)

Translate in a custom language

Kind: instance method of Polylang

Param Type Description
selector string translation path
language string translation language
interpolationValues string | object value/s to be replaced between interpolation delimiters

Example

polylang.t('errors.invalid_email', 'en', '[email protected]');

Test

npm test

License

MIT