Nukem's Possible Manifestation

    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', ...]
    })

    Install

    npm i poeditor-utils

    DownloadsWeekly Downloads

    522

    Version

    0.4.0

    License

    MIT

    Unpacked Size

    17.6 kB

    Total Files

    11

    Last publish

    Collaborators

    • c0mtru1se
    • samialdury
    • jakubpetriska
    • pjk
    • amertak
    • acro
    • janzal
    • millcek
    • joozty
    • klobinoid