2.0.2 • Published 3 months ago

project-translator v2.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
3 months ago

NPM Version

project-translator

A translator for web applications that uses AWS, GCP, or any custom provider.

Install

npx project-translator
npm i --save-dev project-translator

Setup

To configure your project to use the project-translator you only need .translaterc.json file in the root of your project. You can run project-translator init to auto generate this file.

Example .translaterc.json

{
  "provider": "aws", // aws | google | custom
  "translationDir": "lib/translations",
  "sourceLanguage": "en-US",
  "outputLanguages": [
    "fr-FR", "es-ES"
  ],
  "region": "us-east-1", // when using AWS
  "projectId": "my-project1", // when using Google
  "useIcuLabels": true // when using ICU labels
}

Google Setup

To use Google as your translate provider you will need to export your application credentials so that you can authenticate with Google's service.

export GOOGLE_APPLICATION_CREDENTIALS="./path-to/credentials.json"

AWS Setup

To use AWS as your translate provider, follow the aws-cli setup found here https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

File/File-Name Structure

Translation files shoud be in JSON format and use naming convention that beings with a two letter language code (e.g 'en.json' or 'en-US.json'). While translating the translations directory provided in the configuration file as translationsDir will be used to find, create or update translation files.

Example Source Translation File

// en-US.json
{
  "my-label": "My Label",
  "section-label": "Label for a section",
  "section-header": {
    "title": "A Title",
    "description": "A description"
  },
  "another.section.header": "Title"
}

Use Translator

npx project-translator translate

To start translating, ensure you have a source language file in your translations directory. This source file's language code should be configured in your .translaterc.json file. Now run npx project-translator translate or install and use in your package.json scripts.

Example package.json

{
 "scripts": {
   "translate": "project-translator translate"
 }
}

Custom Translate Provider

To use a customer provider you can provide these values in your .translaterc.json file.

{
 "provider": "custom",
 "translatorPath": "./path-to/custom-translator.js"
}

Example Custom Translator

export default function customTranslator() {
 return {
   translate:
     (sourceLanguage:string, targetLanguage:string) => async function(text:string) {
       // put you custom translate code here.
       const translatedText = await customProvider(text, sourceLanguage, targetLanguage);
       // Ensure it returns the translated text.
       return translatedText;
     }
 };
}