higher-level POEditor utilities for Node.js
- uses POEditor API v1 via poeditor-client
- API is still a subject to change
import * as utils from 'poeditor-utils'
import * as fs from 'fs'
const languageCodeOverrides = {
'pt-br': 'pt',
}
const translations = await utils.getTranslations('API token', [
'project A',
'project B',
])
const translationsByLanguage = utils.groupTranslations(translations, (translation) => translation.languageCode)
translationsByLanguage.forEach((translations, languageCode) => {
const language = languageCodeOverrides[languageCode] || languageCode
const data = utils.formatTranslationsAsJson(translations, {
indent: 2,
})
fs.writeFileSync(`./translations/${language}.json`, data)
})
projectName: string
languageCode: string
term: string
value: string
Translation of a single term to a single language.
apiToken: string
projectNames: string[]
options: Object
languageCodes: string[]
- returns
Promise<Translation[]>
Gets translations for multiple projects. Gets translations for all the project languages or only languages specified with options.languageCodes
.
translations: Translation[]
grouper: (translation: Translation) => string
- returns
Map<string, Translation[]>
Groups translations by keys produced by grouper
.
translations: Translation[]
options: Object
indent: number | string
- returns
string
Formats translations to string as stable sorted JSON.
apiToken: string
- POEditor API token
Exposes the poeditor-client Client
. See their docs for more.
apiToken: string
- POEditor API tokenprojectName: string
- POEditor project name
Returns a promise which resolves with a poeditor-client Project
representation of the project. See their docs for more.
apiToken: string
- POEditor API tokenprojectName: string
- POEditor project namegetPathCallback: (translation: Translation) => string
- produces destination file path for given translation
Gets translations for all the project languages and writes them to files by getPathCallback
as a stable sorted JSON. Returns a promise which resolves with an array of file paths written.
utils.pullTranslations('API token', 'project name', (translation) => {
return 'translations/' + translation.languageCode + '.json'
})
.then((paths) => {
console.log(paths) // ['translations/en.json', ...]
})