Package Exports
- mandarin
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mandarin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
mandarin
Automatic i18n markdown translation and i18n phrase translation using Google Translate
v2.0.0: We have integrated Redis as a requirement for caching Google Translate responses (to save you money)
v1.0.0: We now use the official Node.js Google Translate package
@google-cloud/translate
Table of Contents
Install
npm:
npm install mandarin
yarn:
yarn add mandarin
Requirements
You will need to have Redis installed.
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 youren.json
file translated to the localeses
(Spanish) andzh
(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
Name | Website |
---|---|
Nick Baugh | http://niftylettuce.com/ |