Skip to content

An npm package that provides you with a simple promise API, that fetches languages and translations from the OneSky REST API.

License

Notifications You must be signed in to change notification settings

rkretzschmar/onesky-fetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OneSky Fetch Build Status npm version

An npm package that provides you with a simple promise API, that fetches languages and translations from the OneSky REST API and can also upload files to it.

Installation

npm install --save onesky-fetch

Usage

Import

// ES5 syntax
var OneSkyFetch = require('onesky-fetch');

// ES6 syntax
import OneSkyFetch from 'onesky-fetch';

Configuration

Obtain the necessary settings from here:

https://<Your OneSky URL prefix>.oneskyapp.com/admin/site/settings

and here:

https://<Your OneSky URL prefix>.oneskyapp.com/admin/project/dashboard/project/<The ID of the currently open project>

// ES6 syntax
const oneSkyConfig = {
  secret: '<Your OneSky Secret Key>',
  apiKey: '<Your OneSky Public Key',
  projectId: '<Your OneSky project ID'
};

Instantiation

// ES6 syntax
const osf = OneSkyFetch(oneSkyConfig);

Fetching Languages

// in ES5 syntax
osf.fetchLanguages()
  .then(function(languages) {
    console.log(languages);
  });

// or ES6 syntax
osf.fetchLanguages()
  .then(languages => {
    console.log(languages);
  });

// or even async / await syntax
async function test() {
  const languages = await osf.fetchLanguages();
  console.log(languages);
}

Output

[ 
    { 
        code: 'it-IT',
        english_name: 'Italian (Italy)',
        local_name: 'Italiano (Italia)\u0000',
        custom_locale: null,
        locale: 'it',
        region: 'IT',
        is_base_language: false,
        is_ready_to_publish: false,
        translation_progress: '0.0%',
        last_updated_at: '#####',
        last_updated_at_timestamp: ##### 
    },
    // other languages
]

Fetching Translations

const languages = ['en','it-IT'];
const fileName = 'strings.json';

osf.fetchTranslations(languages, fileName)
  .then(function(translations) {
    console.log(translations);
  });

Output

[
  { language: 'en', text: '<Your english strings>' },
  { language: 'it-IT', text: '<Your italian strings>' }
]

Fetching all translations

A convenient function to fetch all translations:

const fileName = 'strings.json';

osf.fetchAllTranslations(fileName)
  .then(function(translations) {
    console.log(translations);
  });

This is just a chain of fetching languages and fetching their translations.

Feel free to contribute with additional functions.

Uploading Files

That isn't really a fetch, but it may be a useful extension to the existing features. The options paramter is optional and can be used to pass additional parameters, like for example locale to upload specific translations - see OneSky's API documentation for more information.

const content = '{"hello","Hallo"}';
const fileName = 'string.json';
const fileFormat = 'HIERARCHICAL_JSON';
const options = {locale: 'de'};

osf.uploadFile(content, fileName, fileFormat, options)
  .then(function(result) {
    console.log("Status Code:", result.status);
  });

Output

Status Code: 201

About

An npm package that provides you with a simple promise API, that fetches languages and translations from the OneSky REST API.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published