Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alexanderwallin/transifex-api-es6

A promise-based Transifex API client for node, written in es6
https://github.com/alexanderwallin/transifex-api-es6

Last synced: 4 days ago
JSON representation

A promise-based Transifex API client for node, written in es6

Awesome Lists containing this project

README

        

[![view on npm](http://img.shields.io/npm/v/transifex-api-es6.svg)](https://www.npmjs.org/package/transifex-api-es6)
[![Dependency Status](https://david-dm.org/alexanderwallin/transifex-api-es6.svg)](https://david-dm.org/alexanderwallin/transifex-api-es6)

# transifex-api-es6

A promise-based Transifex API client for node, written in es6. Promises are thenable using the [q library](https://github.com/kriskowal/q).

The motivation behind this API is that there are no modern, promise-based JS API for Transifex out there that I could find. If found those that exist being difficult to overview or understand, so I started building on a new one.

* [Installation](#Installation)
* [Usage](#Usage)
* [API Reference](#API_Reference)
* [Contributing](#Contributing)


## Installation

```bash
npm install [--save] [--save-dev] transifex-api-es6
```


## Usage

```javascript
var TransifexApi = require('transifex-api-es6');

var api = new TransifexApi({
user: 'username',
password: 'password',
projectName: 'my-project',
resourceName: 'customer-area' // optional
});

// Get resource translation
api.getResourceTranslation('en')
.then((contents) => {
// contents -> PO contents as a string
}, (err) => console.error(err));

// Get translation strings
api.getTranslationStrings('en', 'my_resource')
.then((strings) => {
// strings -> Set of string objects for 'my_resource'
}, (err) => console.error(err))
```


## API Reference

* [TransifexApi](#TransifexApi)
* [new TransifexApi(opts)](#new_TransifexApi_new)
* [.setResourceName(resourceName)](#TransifexApi+setResourceName)
* [.getProject()](#TransifexApi+getProject) ⇒ Object
* [.getProjectLanguages()](#TransifexApi+getProjectLanguages) ⇒ Object
* [.getResources()](#TransifexApi+getResources) ⇒ array
* [.getResource(resourceName)](#TransifexApi+getResource) ⇒ Object
* [.createResource(resource)](#TransifexApi+createResource) ⇒ Object
* [.deleteResource(resourceName)](#TransifexApi+deleteResource) ⇒ Object
* [.getResourceTranslation(langCode, resourceName)](#TransifexApi+getResourceTranslation) ⇒ string
* [.getTranslationStrings(langCode, resourceName)](#TransifexApi+getTranslationStrings) ⇒ string


#### new TransifexApi(opts)

| Param | Type | Description |
| --- | --- | --- |
| opts | Object | An object with required `projectName`, `user` and `password` fields. Optionally takes a `resourceName` which is stored as the default resource. |


#### transifexApi.setResourceName(resourceName)
Sets the default resource slug

| Param | Type | Description |
| --- | --- | --- |
| resourceName | string | A resource slug |


#### transifexApi.getProject() ⇒ Object
Returns information about the project

**Returns**: Object - A project instance (wrapped in a promise)

#### transifexApi.getProjectLanguages() ⇒ Object
Returns an list of languages that belong to the project

**Returns**: Object - A list of languages (wrapped in a promise)

#### transifexApi.getResources() ⇒ array
Returns a list of resources in the project

**Returns**: array - A list of the project's resources (wrapped in a promise)

#### transifexApi.getResource(resourceName) ⇒ Object
Returns a resource

| Param | Type | Description |
| --- | --- | --- |
| resourceName | string | (Optional) The slug of the requested resource. |

**Returns**: Object - A resource as JSON (wrapped in a promise)

#### transifexApi.createResource(resource) ⇒ Object
Creates a new resources in the project

| Param | Type | Description |
| --- | --- | --- |
| resource | Object | Dictionary with info about the resource |

**Returns**: Object - A q promise

#### transifexApi.deleteResource(resourceName) ⇒ Object
Deletes a resource

| Param | Type | Description |
| --- | --- | --- |
| resourceName | string | (Optional) The slug of the resource |

**Returns**: Object - A q promise

#### transifexApi.getResourceTranslation(langCode, resourceName) ⇒ string
Returns a translation of a given (or default) resource in a given language
as .po contents.

| Param | Type | Description |
| --- | --- | --- |
| langCode | string | A language code, e.g. en_US |
| resourceName | string | (Optional) A resource slug |

**Returns**: string - A PO file as a string (wrapped in a promise)

#### transifexApi.getTranslationStrings(langCode, resourceName) ⇒ string
Returns a set of translated strings of a given (or default) resource in a
given language.

| Param | Type | Description |
| --- | --- | --- |
| langCode | string | A language code, e.g. en_US |
| resourceName | string | (Optional) A resource slug |

**Returns**: string - A list of translation strings as JSON objects
(wrapped in a promise)


## Contributing

This project is in early development. Issues and pull requests are more than welcome!