poeditor-utils
TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published

poeditor-utils

higher-level POEditor utilities for Node.js

Usage

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)
})

utils.Translation

  • projectName: string
  • languageCode: string
  • term: string
  • value: string

Translation of a single term to a single language.

utils.getTranslations(apiToken, projectNames[, options])

  • 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.

utils.groupTranslations(translations, grouper)

  • translations: Translation[]
  • grouper: (translation: Translation) => string
  • returns Map<string, Translation[]>

Groups translations by keys produced by grouper.

utils.formatTranslationsAsJson(translations[, options])

  • translations: Translation[]
  • options: Object
    • indent: number | string
  • returns string

Formats translations to string as stable sorted JSON.

Obsolete API

utils.Client(apiToken) [DEPRECATED]

  • apiToken: string - POEditor API token

Exposes the poeditor-client Client. See their docs for more.

utils.getProject(apiToken, projectName) [DEPRECATED]

  • apiToken: string - POEditor API token
  • projectName: string - POEditor project name

Returns a promise which resolves with a poeditor-client Project representation of the project. See their docs for more.

utils.pullTranslations(apiToken, projectName, getPathCallback) [DEPRECATED]

  • apiToken: string - POEditor API token
  • projectName: string - POEditor project name
  • getPathCallback: (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', ...]
})

Package Sidebar

Install

npm i poeditor-utils

Weekly Downloads

53

Version

0.4.0

License

MIT

Unpacked Size

17.6 kB

Total Files

11

Last publish

Collaborators

  • smartlook.npm
  • c0mtru1se
  • samialdury
  • jakubpetriska
  • pjk
  • amertak
  • acro
  • janzal
  • millcek
  • joozty
  • klobinoid