New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

mandarin

Package Overview
Dependencies
Maintainers
3
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mandarin

Automatic i18n markdown translation and i18n phrase translation using Google Translate

latest
Source
npmnpm
Version
5.1.4
Version published
Weekly downloads
167
50.45%
Maintainers
3
Weekly downloads
 
Created
Source

mandarin

build status code style styled with prettier made with lass license

Automatic i18n markdown translation and i18n phrase translation using Google Translate

Table of Contents

Install

npm:

npm install mandarin

Requirements

Redis

You will need to have Redis installed in order for caching to work properly.

If you do not plan to use Redis, then set redis: false as an option.

Google Application Credentials

You will also need Google Application Credentials, and you will need to set them as environment variables (e.g. GOOGLE_APPLICATION_CREDENTIALS=/home/user/Downloads/service-account-file.json).

For more information on Google Application credentials, see https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable.

Usage

  • Implement Mandarin and pass it an instance of i18n

    const Mandarin = require('mandarin');
    const I18N = require('@ladjs/i18n');
    
    const i18n = new I18N();
    
    // you can also pass a custom `logger` option (it defaults to `console`)
    const mandarin = new Mandarin({
    
     // REQUIRED:
     i18n
    
     // OPTIONAL:
     // logger: console,
    
     // OPTIONAL (see index.js for defaults):
     // redis: ...
    
     // OPTIONAL (see index.js for defaults):
     // redisMonitor: ...
    
     // OPTIONAL:
     // see all commented options from this following link:
     // <https://googleapis.dev/nodejs/translate/5.0.1/v2_index.js.html>
     //
     // clientConfig: {},
    
     // OPTIONAL (see index.js for defaults):
     // Files to convert from `index.md` to `index-es.md`
     // Or `README.md` to `README-ZH.md` for example
     // <https://github.com/sindresorhus/globby>
     //
     // markdown: ... (note we expose `Mandarin.DEFAULT_PATTERNS` for you)
    });
    
    //
    // Translate Phrases
    //
    // with async/await
    (async () => {
      try {
        await mandarin.translate();
      } catch (err) {
        console.log(err);
      }
    })();
    
    // with promises and then/catch
    mandarin
      .translate()
      .then(() => {
        console.log('done');
      })
      .catch(console.error);
    
    // with callbacks
    mandarin.translate(err => {
      if (err) throw err;
      console.log('done');
    });
    
    //
    // Translate Markdown Files
    //
    // with async/await
    (async () => {
      try {
        await mandarin.markdown();
      } catch (err) {
        console.log(err);
      }
    })();
    
    // with promises and then/catch
    mandarin
      .markdown()
      .then(() => {
        console.log('done');
      })
      .catch(console.error);
    
    // with callbacks
    mandarin.markdown(err => {
      if (err) throw err;
      console.log('done');
    });
    
  • This assumes that you have locale files already and a default locale file (e.g. ./locales/en.json with phrases that need translated to other languages you support). Based off the defaults from i18n, you would automatically get your en.json file translated to the locales es (Spanish) and zh (Chinese).

  • Follow the "Before you begin" steps here https://cloud.google.com/translate/docs/basic/setup-basic (basically you download a JSON file after creating a Google Cloud Project with Cloud Translation API enabled).

  • Specify the path to the JSON file and run your script that uses mandarin:

GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json" node app.js

Contributors

NameWebsite
Nick Baughhttp://niftylettuce.com/

License

MIT © Nick Baugh

Keywords

agenda

FAQs

Package last updated on 28 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts