higher-level POEditor utilities for Node.js
- uses POEditor API v1 via poeditor-client
- API is still a subject to change
import*asutilsfrom'poeditor-utils'import*asfsfrom'fs'constlanguageCodeOverrides={'pt-br': 'pt',}consttranslations=awaitutils.getTranslations('API token',['project A','project B',])consttranslationsByLanguage=utils.groupTranslations(translations,(translation)=>translation.languageCode)translationsByLanguage.forEach((translations,languageCode)=>{constlanguage=languageCodeOverrides[languageCode]||languageCodeconstdata=utils.formatTranslationsAsJson(translations,{indent: 2,})fs.writeFileSync(`./translations/${language}.json`,data)})projectName: stringlanguageCode: stringterm: stringvalue: string
Translation of a single term to a single language.
apiToken: stringprojectNames: string[]options: ObjectlanguageCodes: 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: Objectindent: number | string
- returns
string
Formats translations to string as stable sorted JSON.
apiToken: string- POEditor API token
Exposes the poeditor-clientClient. See their docs for more.
apiToken: string- POEditor API tokenprojectName: string- POEditor project name
Returns a promise which resolves with a poeditor-clientProject 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', ...]})