`basic-l10n` example
import createL10ns from 'basic-l10n/dist/index.js' // dev version with debug warnings
import logger from './console'
const log = logger()
const debug = logger('(debug)')
const localizations = {
fr: {
'welcome': 'bienvenue', // default string localization
'date: %s/%s/%s': 'date: %1/%0/%2', // reorder substitutions
'you have %s new messages.': [ // pluralization
'vous n\'avez pas de nouveaux messages.', // 0
'vous avez un nouveau message.', // 1
'vous avez %0 nouveaux messages.' // 2
// not limited to 3 entries, could be any number
]
},
en: {
'welcome': 'welcome',
'date: %s/%s/%s': 'date: %0/%1/%2',
'you have %s new messages.': [
'you have no new messages.',
'you have one new message.',
'you have %0 new messages.'
]
}
}
const l10ns = createL10ns(localizations, { debug })
for (const lang of ['en', 'fr']) {
const t = l10ns[lang]
log(t('welcome')) // default string localization
log(t`date: ${1}/${7}/${1982}`) // reordering with template strings
for (const count of [0, 1, 5]) {
log(t`you have ${count} new messages.`) // pluralization with template strings
}
}
log(l10ns.en`unknown keys generate a warning`) // except in production