Nextcloud L10n helpers for apps and libraries.
npm i -S @nextcloud/l10n
You can use helpers in this package in order generate code that also works when it's not loaded on a Nextcloud page. This is primary useful for testing. The logic will just return the original string if the global variable OC
isn't found.
In order to not break the l10n string extraction scripts, make sure to alias the imported function to match the legacy syntax:
import { t, n } from '@nextcloud/l10n'
// Or
import { translate as t, translatePlural as n } from '@nextcloud/l10n'
t('myapp', 'Hello!')
n('myapp', '%n cloud', '%n clouds', 100)
See the localization docs for more info.
You can use this package to translate your app or library independent of Nextcloud. For that you need .po(t) files. These can be extracted with gettext-extractor.
import { getGettextBuilder } from '@nextcloud/l10n/gettext'
const lang = 'sv'
const po = ... // Use https://github.com/smhg/gettext-parser to read and convert your .po(t) file
const gt = getGettextBuilder()
.detectLocale()
.addTranslation('sv', po)
.build()
gt.gettext('my source string')
gt.gettext('this is a {placeholder}. and this is {key2}', {
placeholder: 'test',
key2: 'also a test',
})
See the developer docs for general guidelines.
gt.ngettext('%n Mississippi', '%n Mississippi', 3)