Skip to content

A node module to import the translations from the iCapps translations portal.

License

Notifications You must be signed in to change notification settings

icapps/tree-house-translations

Repository files navigation

Treehouse translations

Import and use translations from icapps translation service

npm version Dependencies Build Status Coverage Status Greenkeeper badge

Installation

Install via npm

npm install tree-house-translations

or via yarn

yarn add tree-house-translations

NodeJS

const translations = require('tree-house-translations');

translations.import(apiUrl, apiToken, {
  destination: __dirname + '/locales',  // Optional (defaults to ./src/locales)
  clean: false,                         // Optional (defaults to true)
  exportType: 'json' | 'plist',         // Defaults to json
  seperateCategories : true,            // Optional (defaults to false)
});

initTranslator

Initialise a translator object pointing to the .json files where are translations are being stored and set a default locale. This object contains all functions which you can use after initialisation.

This becomes a singleton instance which will cache your translations globally. It is not possible at the moment to store translations into different folders.

import { initTranslator } from 'tree-house-translations';

const translator = initTranslator('/locales', 'en');
translator.translate(...);

The name of the translation file needs to match the language name. For example: /locales/en.json -> en

.translate

After initialising the translator you can easily find a translation value by its key for the required language in your localisation files.

translator.translate('key_to_translate', 'nl');

You can also replace values by using {{}} in your string values in the translation files.

translator.translate('key_to_translate', 'en', { name: 'Brent' });

This is my new sentence from {{name}} -> This is my new sentence from Brent

CLI

Install globally:

npm install -g tree-house-translations

Now translations is available as a command. For instructions run:

$ translations help

  Usage: translations [options] [command]

  Commands:

    init            setup a cnofiguration file based on the project type
    import          import translations into this project
    help [cmd]      display help for [cmd]

Run from your project root in order to setup the translations configuration.

$ translations init

  Usage: translations-init [options]

  Options:

    -h, --help           output usage information
    -V, --version        output the version number
    --token [value]      Add apiToken
    --translations-path  Add translations path
    --verbose            get more detailed information on what is happening 

Run from your project root in order to import the translations into the matching .json files.

$ translations import

  Usage: translations-import [options]

  Options:

    -t, --token [value]    apiToken authentication token
    --api-url [value]      api url e.g. 'http://server/api'
    --seperate-categories  seperate translations in categories
    --destination [value]  translations destionation path
    --clean                clean import, delete all translations before writing new
    --verbose              get more detailed information on what is happening
    --export-type [value]  define export type. Options: (json, plist). Default: json

Build the module

$ npm run build

// build and keep watching
$ npm run build:dev

Bugs

When you find issues, please report them:

Be sure to include all of the output from the npm command that didn't work as expected. The npm-debug.log file is also helpful to provide.

Authors

See the list of contributors who participated in this project.

License

This project is licensed under the ISC License - see the LICENSE.md file for details

About

A node module to import the translations from the iCapps translations portal.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •