pocket-i18n
v1.0.11
Published
Pocket is a **blazing fast** internationalization library that can fit in your pocket **(< 1KB)**
Downloads
3
Maintainers
Readme
Pocket i18n
Pocket is a blazing fast internationalization library that can fit in your pocket (< 1KB)
:white_check_mark: Fast translated string lookups (allows nesting!)
:white_check_mark: String template interpolation
:white_check_mark: Compatible with ALL browsers (yes, even IE 11)
:white_check_mark: Can load translation files from URL
:white_check_mark: Absolutely no dependencies
Getting started
npm i pocket-i18n
Import Pocket
You can use ES6 imports or (CommonJS require
).
import Pocket from 'pocket-i18n';
Or, just use a script tag:
<script src="node_modules/pocket-i18n/pocket-i18n.js"></script>
Load translations
Both Pocket.load
and Pocket.loadFromUrl
return an intl
object with a t
method for translation lookups.
From an object
const translations = {
homePage: {
footer: {
copyright: 'Copyright {companyName} 2019'
}
}
};
const intl = Pocket.load(translations);
intl.t('homePage.footer.copyright', {companyName: 'My Company'});
// Copyright My Company 2019
From URL
const intl = Pocket.loadFromUrl('translations/norwegian.json', function (intl) {
intl.t('homePage.footer.copyright', {companyName: 'My Company'});
// Opphavsrett My Company 2019
});
With async/await and promises (need polyfill for IE)
const intl = await new Promise(resolve => Pocket.loadFromUrl('translations/spanish.json', resolve));
intl.t('homePage.footer.copyright', {companyName: 'My Company'});
// Derechos de autor My Company 2019
Using t(lookupStr: string, fillers?: Object)
lookupStr
The translation lookup. Let's say translations object looks like this:
{
homePage: {
footer: {
copyright: 'Copyright My Company 2019'
}
}
}
To look up the copyright translation, we would pass 'homePage.footer.copyright'
.
fillers (optional)
The set of interpolation values. Let's say translations object looks like this:
{
homePage: {
footer: {
copyright: 'Copyright {companyName} 2019'
}
}
}
We would pass the fillers object to t
like so:
intl.t('homePage.footer.copyright', {companyName: 'My company'});
Advanced example
const translations = {
homePage: {
footer: {
copyright: 'Copyright {companyName} 2019',
companyName: 'Translated Company Name'
}
}
};
const intl = Pocket.load(translations);
intl.t('homePage.footer.copyright', {companyName: intl.t('homePage.footer.companyName')});
// Copyright Translated Company Name 2019